ITP / First Party Cookies

Introductie

ITP, oftewel Intelligent Tracking Prevention, is een preventiemethode van Safari om bezoekers op websites langdurig te tracken. De praktische gevolgen zijn:

  • Third party cookies worden in Safari volledig geblokkeerd.

  • First party cookies aangemaakt via browser scripts worden in Safari opgeslagen tot 7 dagen na de laatste interactie.

  • Localstorage waardes verdwijnen in Safari na 7 dagen geen interactie met de website.

Andere browsers hebben minder strenge restricties. Voor meer gedetailleerde informatie kan je op Cookiestatus voor elke browser de maatregelen voor elk type cookie bekijken.

Impact op Spotler Activate data

Dit heeft een aantal gevolgen op het correct meten van je bezoekers, voorlopig alleen Safari bezoekers maar in de toekomst mogelijk meer browsers. Voor alle bezoekers waarbij je geen userid meestuurt (vaak het merendeel) zal de cookie verwijderd worden na 7 dagen geen interactie met je website. Komen deze bezoekers na 7 dagen op je website, krijgen ze een nieuwe cookie.

Door het opsplitsen van gebruikers per 7 dagen verlies je uiteraard veel individuele data en persoonlijke recommandaties, maar is ook het algoritme in zijn geheel minder accuraat en zullen de items you may like en recommended for you productsets niet optimaal functioneren.

Bovendien is het zo dat we in cookies ook bijhouden welke personalisaties iemand al heeft gezien: dit zodat ze niet meermaals een personalisatie zien die slechts eenmalig bedoeld is.

Het marktaandeel van Safari op desktops is niet al te groot, maar op mobiel is deze vanwege iPhones vrij significant. Ook Firefox maakt gebruik van een preventiemethode, hoewel deze minder strict is kan in de toekomst mogelijk een gelijkaardige impact gemeten worden.

Oplossing - cookie op serverniveau herschrijven

De belangrijkste regel uit ITP voor Spotler Activate is:

For cookies set with document.cookie, deletion happens after 7 days of browser use without user interaction on the site.

Dit houdt in dat als je een cookie zet los van de browser, op serverniveau dus, dat deze regel niet geldt. Zodoende kan je een lange termijn expiratiedatum nemen en zal ITP deze niet overschrijven. Dit wilt zeggen dat je de door ons aangemaakte cookie moet ophalen, en dan op serverniveau schrijven met een nieuwe expiratiedatum, bijvoorbeeld twee jaar. De desbetreffende cookies zijn:

  • sqzllocal (het unieke ID van de bezoeker waarmee we hem in Spotler Activate identificeren)

  • sqzl_vw (informatie over welke personalisatie wanneer is gezien door de bezoeker)

Voorbeeldcode

Let op: deze code zal je niet kunnen kopiƫren en is afhankelijk van je eigen omgeving, het is slechts ter illustratie bedoeld.

Ā 

app.get('/', (req, res) => { // Haal bestaande cookies op let sqzllocal = req.cookies['sqzllocal']; let sqzlvw = req.cookies['sqzl_vw']; // Check of de cookie bestaat, zoja, overschrijf de cookie vanuit de server if (sqzllocal) { res.cookie('sqzllocal', sqzllocal, {domain: 'jouwdomein.nl', path: '/', secure: true, expires: new Date(Date.now() + 1000*60*60*24*365*2), }); } if (sqzlvw) { res.cookie('sqzl_vw', sqzlvw, {domain: 'jouwdomein.nl', path: '/', secure: true, expires: new Date(Date.now() + 1000*60*60*24*365*2), }); } res.render('index'); });