Cross-domain linking
Gebruik cross-domain linking wanneer een user journey zich uitstrekt over meerdere domeinen die geen cookie-basisdomein delen (bijvoorbeeld store.example → example-checkout.com). De d8a web tracker kan client- en session-continuïteit behouden door uitgaande URL's te decoreren met een kortlevende _dl-parameter.
Installatie
Cross-domain linking vereist dat de web tracker op zowel het brondomein als het bestemmingsdomein is geïnstalleerd.
Volg eerst de Web tracker-snelstart op elk domein en configureer daarna de linker.
Configuratie
Configureer de linker met set('linker', ...):
// Decorate links that point to these domains.
d8a('set', 'linker', {
domains: ['example-checkout.com'],
// Optional:
// decorate_forms: true,
// url_position: 'query', // default
// accept_incoming: true, // default when domains is non-empty
});
Opties:
domains(verplicht): Bestemmingsdomeinen die moeten worden gedecoreerd wanneer een link of formulier naar een overeenkomende hostnaam verzendt.decorate_forms(optioneel, standaard:false): Indien ingeschakeld, decoreert de tracker ook formulierinzendingen.url_position(optioneel, standaard:'query'): Waar_dlwordt geplaatst ('query'of'fragment').- Voorbeeld (
'query'):https://example-checkout.com/checkout?_dl=<payload> - Voorbeeld (
'fragment'):https://example-checkout.com/checkout#_dl=<payload>
- Voorbeeld (
accept_incoming(optioneel): Of de bestemmingssite inkomende_dlmoet accepteren.- Standaard: ingeschakeld wanneer
domainsniet leeg is. - Als je alleen
_dlwilt accepteren (maar geen uitgaande links wilt decoreren), stel dandomains: []enaccept_incoming: truein.
- Standaard: ingeschakeld wanneer
Het gedrag bij het overschrijven van cookies wordt bepaald door cookie_update (zie Configuratie):
- Als
cookie_update=false, worden bestaande cookies niet overschreven, maar ontbrekende cookies kunnen nog steeds worden aangemaakt.
Hoe het werkt (technisch overzicht)
Op hoofdlijnen:
- Uitgaand: Wanneer de gebruiker op een uitgaande
<a>klikt (en optioneel een formulier verzendt), controleert de tracker of de bestemmingshostnaam overeenkomt metlinker.domains. Zo ja, dan voegt hij een_dl-parameter toe.- Als er meerdere tracker-instanties (
d8a1,d8a2, …) op dezelfde pagina draaien, delen ze één linker en produceren ze toch één enkele_dl-waarde. De payload bevat cookies voor alle geconfigureerde properties / cookie-prefixes over die instanties. - Decoratie wordt lui uitgevoerd bij gebruikersinteractie door te luisteren naar
document-events:mousedownenkeyupvoor links, ensubmitvoor formulieren. Daarnaast worden programmatische formulierinzendingen afgehandeld doorHTMLFormElement.prototype.submitte patchen.
- Als er meerdere tracker-instanties (
- Payload:
_dldraagt een compacte, URL-veilige codering van de geserialiseerde d8a-cookies (client- + session-cookies). De payload is:- kortlevend (ongeveer 2 minuten), en
- beschermd door een niet-geheime fingerprint/hash (UA + tijdzone + taal + tijdvenster + payload) om accidentele corruptie te beperken.
- Inkomend: Op het bestemmingsdomein leest de tracker
_dluit de URL, valideert deze en verwijdert vervolgens_dluit de URL (methistory.replaceState) om de URL schoon te houden. Het verwijderen gebeurt ongeacht of de validatie slaagt. - Identiteit toepassen:
- Als de
analytics_storage-consent wordt geweigerd, schrijft de tracker geen cookies en bewaart hij de inkomende client id in het geheugen voor het verzenden van hits. - Als consent cookies toestaat, schrijft de tracker de inkomende cookies met de huidige cookie-instellingen (domein/pad/prefix/enz.) en respecteert hij
cookie_update. - Als er nog niet genoeg configuratie beschikbaar is om de cookies in
_dlte herkennen (bijvoorbeeld voordat de cookie-prefixes van properties bekend zijn), bewaart de tracker de inkomende payload en past hij cookies incrementeel toe naarmate er configuratie beschikbaar komt. - Wanneer een inkomende session-cookie wordt toegepast, seedt de tracker ook de in-memory session-status, zodat een onmiddellijke
page_viewniet per ongeluk een nieuwe session start.
- Als de