Sæt og Læs Cookies med Google Tag Manager

Del DETTE blogindlæg:

Del på facebook
Facebook
Del på twitter
Twitter
Del på linkedin
LinkedIn

Indholdsfortegnelse

Jeg har tidligere skrevet et blogindlæg, der introducerer og forklarer hvordan man opsætter Google Tag Manager.

Denne gang bliver det meget mere teknisk og avanceret.

Jeg kommer til at vise dig, hvordan du sætter dine egne 1st party cookies gennem GTM, sådan så du blandt andet kan affyre tags baseret på værdier over flere sidevisninger. Altså en form for “session-baseret regel”.

Hvorfor overhovedet bruge cookies?

Ved at sætte og læse cookies med Google Tag Manager, er du i stand til at bruge mere komplekse triggers til dine tags.

Du kan bruge eksisterende cookies til at aflæse værdier og dermed opstille triggers baseret på disse, men du kan også sætte dine egne cookies.

Ved at sætte dine egne cookies, kan du selv bestemme hvilken værdi der skal lagres, hvor længe, i hvilken domæne og mere til.

Det vigtigste er, at du ved hjælp af cookies kan gemme værdier på tværs af en række sidevisninger.

Du får blandt andet mulighed for at undgå at affyre en tag, hvis den tag er allerede blevet affyret under samme “session” eller undgå at affyre en tag, hvis brugeren for eksempel er logget-ind.

Hvordan sætter man en cookie?

For at sætte en cookie gennem GTM, skal du først oprette en custom HTML tag. Den skal indeholde noget JavaScript kode.

En cookie kræver kun et navn og et værdi (name-value pair), men du kan tilføje flere parametre som for eksempel en udløbsdato.

Hvis du ikke sætter en udløbsdato ville cookien automatisk slettes når browseren lukkes. Du kan læse mere om cookies lige her.

Nedenunder kan du se et meget simpelt eksempel af hvordan koden kan se ud, blot for at vise hvor nemt det er at lave en cookie selv.

<script>
  document.cookie = "username=Juan Smith; path=/";
</script> 

Her laver vi en cookie med navnet “username” med en tilhørende værdi af “Juan Smith”.  Her er udløbsdatoen ikke er specificeret, så den ville udløbe når brugeren lukker browser vinduet.

Hvordan aflæser man en cookies værdi med GTM?

Vi skal lære GTM at læse en cookie og lave det til en user-defined variabel.  I GTM menuen til venstre, finder du en folder med navnet Variables. Her kan du oprette dine egne tilpasset variabler. 

Under User-Defined Variables trykker du på knappen “ny”, navngiver din variabel og derefter vælger “1st-Party Cookie” under “variable type”.

Derefter sætter du en cookie name. Navnet skal matche den cookie, som du gerne vil aflæse med GTM. 

Nedenunder ser du et eksempel hvor jeg gerne vil bruge værdien af cookien ved navn “session”.  Selve variablen behøver ikke at hedde det samme som din cookie.

Nu har du en variabel som indeholder den samme værdi som din cookie. Du kan også se værdierne i preview & debug mode. Hvis cookien ikke er til stede hos din besøgende ville værdien være undefined.

Nedenunder ser du en Førstepartscookie variabel med navnet “Session alive” og en tilhørende værdi af “1”.  Cookien blev placeret i sidens Timer event, som betyder at cookien blev placeret af en timer trigger.

Hvordan bruger jeg cookies i mine tags?

Eksempel 1: Udeluk “logged-in” brugere fra at affyre dine GTM tags

Hvis vi tager vores eksempel med at undgå at affyre en tag for brugere som er logget ind, så kan du bruge cookies til at tjekke om hvorvidt en “logget-ind” cookie er til stede.

På WordPress hjemmesider bliver en cookie ved navn “wordpress_logged_in(efterfulgt af en række tal)” sat på browseren når en bruger logger ind.

Vi kan bruge GTM til at lave en variabel der tjekker om denne cookie er til stede.

Først opretter du en førstepartscookie variabel og giver den navnet på din cookie, i dette tilfælde ville det være  “wordpress_logged_in(efterfulgt af en række tal)”.

Husk at cookie name feltet skal matche det præcise navn på din cookie (selve variablen kan du kalde hvad du lyster).

Nu ville du kunne aflæse værdien af cookien med GTM, da den er lagret som en variabel.

Nu kan du placere din marketingscript eller lignende, i en tag hvor trigger er en sidevisning hvor “wordpress_logged_in(efterfulgt af en række tal)” er lig med undefined

På denne måde undgår du at affyre bestemte events eller scripts til personer som er logget ind (måske internt traffik), da cookien ikke findes i personens browser og derfor er værdien undefined. 

Eksempel 2: Affyr en GTM tag kun én gang per session med en IF funktion (shoutout til Simo Ahava)

Hvis du eksempelvis bruger et geolocation script gennem GTM, så har du ikke lyst til, at den bliver affyret flere gange i løbet af en session, og heller ikke hver gang siden bliver opdateret.

Din besøgendes lokation ændrer sig nok ikke i løbet af en session, så ved at begrænse dette får du blandt andet en hurtigere side (med færre kald til eksterne filer).

Det samme er gældende hvis du eksempelvis har en Facebook event, som kun skal affyres én gang per session.

Vi kan bruge en IF funktion til at tjekke om hvorvidt en cookie er til stede. Denne funktion tilføjer du i samme tag, som det script som du gerne vil begrænse er i (se koden længere nede).

Funktionen gør at hvis en cookie allerede findes i browseren, så bliver det script der er inde i funktionen ikke affyret, og så bliver cookiens levetid forlænget med 30 minutter fra affyringstidspunktet.

Hvis den cookien ikke er tilstede, så blokerer funktionen scriptet og placerer en cookien hvis levetid er 30 minutter fra tidspunktet, hvor den bliver affyret (på denne måde efterligner vi en simpel form for GA session).

Koden vil se sådan ud:

if (typeof {{DIN COOKIE VARIABEL NAVN}} === 'undefined') {
    Det script som du gerne vil bruge...
  }    
    
  // Gendan "session" cookie med 30 min til expiration
  var d = new Date();
  d.setTime(d.getTime()+1800000);
  var expires = "expires="+d.toGMTString();
  document.cookie = "cookieNavn=1; "+expires+"; path=/"; 

Hvis du er nået hertil og læser dette så er du formentlig nok lidt af en nørd, men forhåbentligt fandt du denne guide brugbar.

Lad mig endelige vide hvad du finder på ved hjælp af cookies og GTM. 

PS. Jeg har slet ikke omtalt ITP i denne guide, grunden til dette er, at jeg kun gør brug af førstepartcookies med en levetid på under 24 timer. Cookies har også sine begrænsninger, men det er trods alt stadig brugbart.

FLERE INDLÆG