In-App-Navigation (SPA)

Hier hilft der Referrer nicht: document.referrer ist auf den Referrer des Dokuments eingefroren — bei Anzeigen-Traffic https://www.google.com/, ein fremder Origin ohne gclid. Das Widget merkt sich deshalb die Zuordnung, die die API beim ersten save_traffic geliefert hat, und schickt sie bei jedem Routenwechsel wieder mit.

Schritt 1. Seite mit Merkmalen betreten:
Schritt 2. Eine Route unten anklicken. Das ist history.pushState — kein Neuladen, dasselbe Dokument.
Schritt 3. Im Kasten ablesen: der erste Aufruf hat attribution_carry: null und wird über url zugeordnet, jeder weitere schickt den gemerkten Satz und wird über carry zugeordnet.

Die Routen sind erfunden — ein Neuladen darauf endet in einem 404. Genau darum geht es: Es gibt keine zweite Seite, nur eine geänderte URL. Ein Wechsel, der nur die Query ändert, zählt nicht — isSignificantUrlChange vergleicht Origin und Pfad.

Kaufen

Bid wählen: ?default=<id> (oder ?bid=), dazu optional banner_id und lng — sie überleben jeden Schritt dieser Testseiten.

Was die API sieht

Der Gegentest

Die Seite ohne Merkmale betreten („ohne Merkmale (Kontrolle)" oben) und dann eine Route wechseln: Der zweite Aufruf schickt attribution_carry: {} — nicht null. Daran erkennt die API, dass dieses Dokument schon beantwortet ist, und liest den Referrer kein zweites Mal.

Warum das nötig ist, zeigt der Weg über Seite 1: von attribution-mpa.html mit Merkmalen hierher wechseln und dann eine Route klicken. document.referrer bleibt für die ganze Lebensdauer des Dokuments auf Seite 1 stehen. Ohne die Schranke würde jeder Routenwechsel den Referrer erneut auswerten — und sobald die Einstiegsseite selbst Merkmale trug, gewönne die ältere Kampagne aus dem Referrer gegen die neuere aus der URL. Genau das verbietet Regel 1 im Ticket.

→ Der andere Fall: echter Seitenwechsel

Testtraffic, weil Maven360-Host (promo_widget_traffic.TEST = 1).