Tracker du returvarer i Google Analytics? Nej? Bare rolig, du er ikke den eneste.
Jeg har arbejdet med Google Analytics for mere end 100 webshops, og jeg kender mindre end 5 webshops der tracker returvarer i Google Analytics.
Og når returvarer i nogle brancher udgør 25% eller mere er det ofte den største årsag til forskellen mellem tallene i Google Analytics og de rigtige tal i ERP systemet.
Så hvis du arbejder med Google Analytics på en webshop, bør du overveje at implementere det. Og her viser jeg dig hvordan du gør, samt hvordan det påvirker dine data – det er nemlig ikke helt som man forventer, men mere om det senere.
Indhold
- Track ordre med negativ omsætning og antal
- Enhanced Ecommerce refunds
- Tracking af returneringen
- Analyse af Refund data
- Opsummering
Lad os først kigge på hvordan du sætter det op.
Jeg vil gennemgå fire forskellige måder at gøre det på, samt vise fordele/ulemper ved dem.
Eksempler med Google Tag Manager
Herunder bruger jeg Google Tag Manager og et dataLayer
til eksemplerne, men alle eksemplerne er også mulige, hvis du har Google Analytics hardcoded på sitet.
Du kan finde de tilsvarende hardcodede kode eksempler i Google Analytics dokumentationen her.
Først skal vi have en ordre der kan returneres
Som gennemgående eksempel bruger jeg denne ordre.
- To produkter til i alt 1000,- kroner
- Fragt på 50,- kroner
- En totalomsætning på 1050,- kroner
- Og til sidst moms af hele balladen på 210,- kroner (der er moms på fragt)
dataLayer.push({
'event': 'purchase',
'ecommerce': {
'purchase': {
'actionField': {
'id': '12345',
'affiliation': '',
'revenue': '1050',
'tax':'210',
'shipping': '50',
'coupon': ''
},
'products': [{
'name': 'T-Shirt',
'id': '123',
'price': '300',
'brand': '',
'category': '',
'variant': '',
'quantity': 1
},
{
'name': 'Jeans',
'id': '456',
'price': '700',
'brand': '',
'category': '',
'variant': '',
'quantity': 1
}]
}
}
});
Dermed har vi disse tal i ecommerce overview:
Den specfikke ordre ser således ud:
Og produkterne ser således ud:
Track ordren med negativ omsætning og antal
Det her er faktisk et gammelt trick fra før Enhanced Ecommerce blev introduceret tilbage i 2014.
Det er ikke muligt at fjerne en ordre fra Google Analytics, men man kan fjerne omsætningen, ved at tracke den samme ordre igen, bare med negativ omsætning.
Dvs. hvis der er blevet returneret en ordre på 1050,- kroner, så tracker du en ny ordre hvor omsætningen er -1050,- kroner. Smart ik?
Produkterne bliver tracket med deres normale positive pris, men derimod er mængden -1. Dermed fjernes både mængden og produktomsætningen, fordi mængden ganges med prisen og dermed bliver prisen negativ.
dataLayer.push({
'event': 'purchase',
'ecommerce': {
'purchase': {
'actionField': {
'id': '12345',
'affiliation': '',
'revenue': '-1050', // negativt beløb
'tax':'-210', // negativt beløb
'shipping': '-50', // negativt beløb
'coupon': ''
},
'products': [{
'name': 'T-Shirt',
'id': '123',
'price': '300',
'brand': '',
'category': '',
'variant': '',
'quantity': -1 // negativ mængde
},
{
'name': 'Jeans',
'id': '456',
'price': '700',
'brand': '',
'category': '',
'variant': '',
'quantity': -1 // negativ mængde
}]
}
}
});
Ordren med negativ omsætning ser sådan ud i Google Analytics – bemærk negativ omsætning og negativ mængde:
Hvis man kigger på hele perioden hvor både den normale ordre blev lavet, samt 4 dage senere hvor den negative ordre blev registreret, ser produkterne ud som herunder.
Bemærk at Product Revenue
bliver negativ, når mængden er negativ. Resultatet af de to ordre tilsammen ses i øverste linje hvor den totale Product Revenue
er 0,00 og den totale købte mængde er 0.
Derimod er Unique Purchases
nu blevet til 4, fordi produkterne tæller med her selvom de er negative, fordi den blot tæller hvor mange ordre der findes med de pågældende produkter – også selvom mængden har været negativ.
Og når man ser resultatet af både den første ordre og den negative ordre, ser det således ud, dvs. der er nu 2 ordre, men omsætningen er korrekt.
Ulempen ved denne metode er altså at man tracker en ordre mere, så antal ordre bliver for højt, hvilket påvirker konverteringsraten. Især hvis der returneres mange ordre.
Men omsætningen kommer til at passe. Så det er en vurdering man er nødt til at lave.
Enhanced Ecommerce refunds
Med Enhanced Ecommerce kom også muligheden for at tracke returneringer. Både hele ordren, men også enkelte ordrelinjer.
Returnering af hele ordren
For at tracke en returnering af en komplet ordre skal der blot sendes en Refund action med ordrenummeret. Mega simpelt.
dataLayer.push({
'event': 'refund',
'ecommerce': {
'refund': {
'actionField': {'id': '12345'}
}
}
});
Men det der sker med dine data er ikke så simpelt.
Man forventer måske at den pågældende ordre nu blot bliver slettet i datasættet og dermed ikke findes mere. Men det gør den ikke. Den originale ordre bliver liggende i datasættet.
Sådan fungerer Google Analytics i øvrigt altid. Når først data er sendt og behandlet kan de ikke ændres.
Det der istedet sker er at der bliver registreret en returnering af den ordre, hvor Google Analytics bruger det ordrenummer der er sendt med i ovenstående Refund
action til at finde alle informationerne om ordren og registerer en returnering med dem.
Bemærk! Google Analytics kigger kun på ordre de sidste 6 måneder tilbage. Hvis der ikke findes en ordre med det pågældende ordre ID indenfor de sidste 6 måneder, bliver der ikke tracket en returnering.
Returneringen kan du derefter finde under Conversions -> E-commerce -> Sales performance hvor det returnerede beløb fremgår ud for ordren i kolonnen Refund Amount
.
Her er Refund Amount
nu sat til 1050,-
Bemærk at omsætningen stadig er den samme.
Bemærk! Hvis der er flere ordre med samme transaktions ID, så vil Google Analytics tage beløbet og produkterne fra den seneste ordre.
Omsætningen er også uændret i dit E-commerce overview, både for ordren og produkterne. Det samme gælder alle andre steder i Google Analytics rapporter, hvor du kigger på omsætningen, fx trafikkilder og landingpages.
Det samme gælder hvis man kigger på de enkelte produkter under Product Performance
men det returnerede beløb fremgår i Product Refund Amount
.
Bemærk! Google Analytics registrerer det fulde beløb for ordren som returneret. Dette gælder også fragten, som kunden typisk ikke får refunderet.
Hvornår registreres returneringer?
Både ordre og returneringer bliver registreret på det tidspunkt de bliver sendt til Google Analytics. Dvs. hvis man kigger på den dag ordren blev lavet vil man kun se omsætningen.
Og hvis man kigger på dagen hvor returneringen blev sendt til Google Analytics, som fx kan være 7 dage senere, så vil man kun se det returnerede beløb.
Hvis du istedet vælger hele tidsperioden, hvor både ordren og returneringen blev registreret, vil du se de rigtige tal.
Det er især vigtigt når der skal analyseres på perioder med høj omsætning, fx Black Friday og december. Varerne bliver måske først sendt retur i januar, så derfor er det nødvendigt at se på data for både december og januar, for at se det rigtige billede af hvor meget der blev solgt og sendt tilbage.
Returnering af dele af ordren
Enhanced Ecommerce understøtter også at kunden returnerer noget af ordren. Hvis kunden kun sender de købte jeans tilbage (som kostede 700,-) skal man blot sende ordrenummeret som ovenfor, samt produkt ID’et og antal for de varer der er returneret.
dataLayer.push({
'event': 'refund',
'ecommerce': {
'refund': {
'actionField': {'id': '12345'},
'products': [
{'id': '456', 'quantity': 1}
]
}
}
});
Under Sales performance
kan man nu se at ordren har haft en omsætning på 1050,- samt returvarer for 700,-.
Under Product performance
er der købt to produkter, hvor den ene er refunderet.
Pro tip! Som vist ovenfor vil en fuld returnering også registrere at fragten er refunderet. Hvis du istedet laver en delvis returnering hvor du registrerer at alle produkterne er sendt retur, men ikke fragten, så vil returneringen passe med det beløb kunden rent faktisk har fået retur.
Tracking af returneringen
Okay, nu ved du hvordan returneringer påvirker dine data i Google Analytics. Lad os se på forskellige måder at sende det til Google.
Til sidst i indlægget viser jeg dig en masse tips og faldgrupper når der skal analyseres på dataene, men mere om det senere.
Der findes flere forskellige måder at sende returneringen til Google Analytics afhængigt af:
- Hvilket system der skal sende det til Google Analytics
- Om det sker når kunden anmoder om at sende pakken retur eller når butikken modtager returpakken
- Om det skal gøres automatisk eller manuelt
Track returneringen med JavaScript
Negative ordre og Enhanced Ecommerce refunds bruger begge JavaScript til at sende returneringen til Google Analytics.
Det involverer typisk et website.
Dvs. det kræver at returneringen sker på et website. Det kan være at kunderne skal registrere returneringen på websitet og fx få mulighed for at printe en returlabel. I den situation kan du tracke returneringen på det tidspunkt. Det giver dog risiko for forkerte data, hvis kunderne ombestemmer sig og vælger at beholde varen alligevel.
Det kan også være du sender en returlabel med i pakken og dermed kan kunderne bare sende pakken retur uden videre. I det tilfælde kan du tracke returneringen, når du modtager pakken fra kunden. Hvis det sker på et website, så kan du formentlig bruge den normale JavaScript tracking, som jeg har brugt herover.
Send data med Measurement Protocol
Hvis returneringen bliver registreret i et ERP system eller lignende, er det formentlig ikke muligt at afvikle JavaScript og dermed bruge ovenstående metoder til at sende data til Google Analytics.
Løsningen er derfor at bruge Google Analyics’ API – Measurement Protocol – som kan bruges af alle systemer der kan sende et HTTP request, hvilket er stort set alle systemer der har adgang til internettet.
Et HTTP request er praktisk talt bare en URL der skal kaldes. Og URL’en har en masse paramtere, som indeholder alle de data der sendes til Google Analytics.
Dokumentationen for Google Analytics Measurement Protocol indeholder en masse gode eksempler, herunder Refunds.
Lige under koden er der et link, som tager dig over til Hit Builder, hvor du kan bygge videre på eksemplet.
Bemærk feltet cid
hvor du kan angive kundens cookie ID og dermed vil returneringen blive koblet sammen med brugerens øvrig data i Google Analytics, som fx brugerens oprindelige trafikkilde da ordren blev lagt.
Test derefter din request URL:
Den endelige URL som skal kaldes fåes ved at sætte https://www.google-analytics.com/collect?
foran den URL (Hit Payload) som Hit Builder genererer.
Dermed fås denne URL:
https://www.google-analytics.com/collect?v=1&t=event&tid=UA-12345-1&cid=1843026860.1552990676&ec=Ecommerce&ea=Refund&ni=1&ti=T12345&pa=refund
Denne URL kan du nu få dit “offline” system til at lave en POST request til og derefter bliver det sendt til Google Analytics.
Upload returneringer med Data Import
Hvis du kun har ganske få returneringer, kan det måske ikke betale sig at kode en automatisk løsning til det. I det tilfælde kan du også uploade en CSV fil med de ordre ID’er der er returneret via data import
inde i Google Analytics interfacet.
Det er en meget simpel og hurtig løsning, hvis det er tilstrækkeligt at returneringer kun bliver importeret fx en gang ugentligt.
Bare husk på at returneringerne vil optræde den dag de er importeret i Google Analytics, så hvis du kun uploader dem ugentligt eller månedligt, så vil alle returneringerne bliver registreret den ene dag.
Først går du ind under Admin
-> Property Settings
-> Data import
.
Klik på den røde knap.
Vælg “Refund” som type.
Giv den et godt navn.
Derefter kan du se de felter der skal uploades. Hvis du bare vil returnere hele ordren, så er Transaction ID
som set ovenfor det eneste påkrævede felt.
Du kan også lave Partial Refunds
med Data import
hvor der kan angives nogle flere værdier, fx de produkter der er sendt tilbage.
Product SKU
og Quantity Refunded
er de samme felter som vi har kigget på tidligere. Men med Data Import
er der flere muligheder.
Hvis en kunde sender et produkt tilbage som er brugt lidt og han derfor ikke skal have det fulde beløb tilbage, kan du angive det beløb kunden får tilbage i Product Price
.
Hvis du ikke vil lave en delvis returnering, dvs. sende specifikke produkt ID’er med, men stadig gerne vil tracke et andet beløb end den oprindelige omsætning på ordren, så kan du bruge Revenue
-feltet. Som tidligere nævnt, så vil Google Analytics nemlig selv finde omsætningen, hvis du blot indsender et ordre ID.
Data Import template
Derefter klikker du “Get Schema” for at hente templaten.
Det er kun ga:transactionId
der er obligatorisk, så de andre felter kan du bare lade være tomme. Hver ordre der skal returneres placeres på sin egen række i filen.
Det er dog ikke muligt at blande Partial Refunds
med komplette Refunds
i samme fil, så det skal uploades i hver sin fil.
Jeg plejer derfor at oprette to Data Imports
for at holde det helt adskilt.
Upload CSV filen.
Hvis filen fejler, kan du klikke på linket og få en forklaring. Typisk skyldes det formattering af CSV filen. Her er det vigtigt at der bruges komma og ikke semikolon som separator. Læs mere om hvordan filen skal formatteres her.
Med fejlen rettet, bliver filen nu godkendt.
Derefter er det blot at vente. Data Imports
tager typisk noget længere end almindelige data om at blive behandlet og vist i rapporterne, men de plejer at være synlige indenfor 24 timer.
Analyse af Refund data
Okay, nu har vi fået sendt data til Googles servere. Lad os kigge på hvordan vi kan analysere de nye data.
Udregn de rigtige tal med Calculated Metrics
For at få et godt overblik over antal returneringer og den omsætning der er sendt retur, kan man lave en Custom Report.
Det kunne være fedt hvis Google Analytics automatisk trak returvarer fra omsætningen i Analytics. Men omvendt giver det nogle gode muligheder at have salg og retur særskilt, herunder et godt indblik i hvor meget der bliver sendt retur, fordelt på varer og kategorier. Det ville ikke være muligt hvis Google Analytics blot justerede omsætningen.
Men den rigtige omsætning, er heldigvis nem at udregne.
Calculated Metrics
i Google Analytics giver mulighed for at udregne nye metrics på baggrund af andre eksisterende metrics.
Du finder Calculated Metrics under View settings.
Her kan du indtaste Revenue
i feltet og derefter minus
og så Refund Amount
.
Jeg udregner også lige antal ordre.
De to nye Calculated Metrics tilføjes til Custom Report’en.
Og dermed har jeg en custom report med de endelige ordre og omsætning.
Pro tip! De fleste ændringer på data i Google Analytics virker kun fremadrettet, fx filtre, mål og Content Grouping. Men Calculated Metrics virker også på historiske data.
Den korrekte konverteringsrate
Skal ordre som returneres regnes med i din konverteringsrate? Eller skal den kun indeholde endelige ordre?
På samme måde som med ordre, kan vi lave en Calculcated Metric som udregner konverteringsraten for returneringer. Dvs. hvor stor en andel af dine besøgende der returnerer ordre igen.
Derefter kan du lave endnu en Calculated Metric, hvor du trækker konverteringsraten for returneringer fra den normale konverteringsrate og dermed får du konverteringsraten for de ordre der ikke bliver returneret, dvs. de ordre du faktisk ender med at tjene penge på.
Find produkter der ofte bliver sendt retur
Returvarer kan kvæle en webshop, både fordi det er mistet omsætning, men også fordi det kræver en masse tid at håndtere.
Sælger du tøj, kan du fx risikere at få den samme vare retur, fordi størrelsesangivelsen er misvisende. Justerer du teksten på dit site til folks forventninger, nedsætter du mængden af returvarer (og dermed tid og penge) betragteligt.Morten Vadskær i Help Marketing Podcast
Der er stor værdi i at identificere de produkter som oftest bliver sendt retur, og justere produktbeskrivelsen på websitet.
Du laver en ny Calculated Metric, som viser forholdet mellem solgte og returnerede produkter i procent.
Derefter laver du følgende Custom Report.
Med den kan du både sortere på Product Refunds
for at finde de produkter der er returneret mest, samt sortere på Refund Rate
for at se hvilke produkter der oftest bliver sendt retur i forhold til hvor tit de bliver købt.
Pas på med trafikkilder!
En anden lidt mærkelig ting med Refunds er at de bliver attribueret til den sidste trafikkilde brugeren har haft – ikke den trafikkilde som brugeren havde da ordren blev lagt.
Se eksemplet herunder hvor brugeren kom fra google / cpc
da ordren blev lagt og efterfølgende havde et besøg fra facebook / social
inden returneringer blev registreret. Dermed bliver ordren attribueret til google / cpc
mens returneringen bliver attribueret til facebook / social
.
Man kan derfor ikke konkludere at det er trafik fra facebook der ofte sender produkter retur, selvom det umiddelbart ser sådan ud – man er nødt til at kigge på trafikkilde for den oprindelige ordre. Det er ikke så logisk.
Opsummering
For at det er muligt at bruge data fra Google Analytics til at styre forretningen præcist er det altafgørende at Google Analytics afspejler virkeligheden. Filtrering af intern trafik og trafik fra udviklingsdomæner, import af cost data fra facebook, konsistent brug af UTM koder og lignende er altsammen med til at sikre at Google Analytics data er så korrekte som muligt. Tracking af returvarer er oplagt at tilføje til den liste for alle webshops og dermed komme tættere på at have sandheden i Google Analytics.
Hvad tænker du? Skal du igang med at tracke returvarer?
Er der noget jeg kunne beskrive bedre?
Skriv en kommentar herunder!
6 kommentarer
Klasse indlæg, Jacob! 👏🏻
Mange tak Christian! Det varmer!
Meget detaljeret og brugbart, tak for det! 😌
Hej Kasper
Mange tak for de pæne ord, det er jeg glad for at høre!
Detaljeret som bare pokker! :-D Jeg har tidligere ‘blot’ (det var et kæmpe arbejde) – kørt data ud fra GA, indlæst i excel – og tilføjet returtallene. Det gav også et fint indblik, men når det kan automatiseres bør det jo næsten det.
… og hvor er det skønt at det også virker historisk. Lad os håbe at ex. filtre også får den feature fremadrettet :-)
Tak for tippet.
Mange tak Christoffer!
Ja, det er et kæmpe manuelt arbejde, så det skal helt sikkert automatiseres.
I forhold til at det gælder bagudrettet, så det er vigtigt at sige at Refunds kan laves op til 6 måneder efter ordren er lavet, derefter er det ikke længere muligt. Og Refund’en kommer stadig til at ligge på den dato hvor den blev sendt til GA og ikke datoen for ordren – så det er bedst at få gjort det så hurtigt som muligt, så det skal automatiseres.
Calculated Metrics gælder dog på alt historisk data, så det er fedt!