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

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:

Test ordren i Ecommerce overview.

Test ordren i Ecommerce overview.

Den specfikke ordre ser således ud:

De detaljerede tal for ordren.

De detaljerede tal for ordren.

Og produkterne ser således ud:

Produkterne i test ordren.

Produkterne i test ordren.

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:

Ordre med negativ omsætning og antal produkter.

Ordre med negativ omsætning og antal produkter.

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.

Produktoversigt med de negative produkter samt de normale købte produkter.

Produktoversigt med de negative produkter samt de normale købte produkter.

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.

Resultatet af begge ordre er at omsætning, moms, fragt og antal går i 0.

Resultatet af begge ordre er at omsætning, moms, fragt og antal går i 0.

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.

Den negative ordre tæller som en ny ordre og dermed er der nu to ordre.

Den negative ordre tæller som en ny ordre og dermed er der nu to ordre.

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 Refundaction 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.

Conversions -> E-commerce -> Sales performance

Conversions -> E-commerce -> Sales performance

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.

Omsætning og produktsalg er uændret.

Omsætning og produktsalg er uændret.

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.

Produkter har fået registreret et refunderet beløb.

Produkter har fået registreret et refunderet beløb.

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.

Dagen hvor ordren blev lagt.

Dagen hvor ordren blev lagt.

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.

Dagen hvor returneringen blev registreret.

Dagen hvor returneringen blev registreret.

Hvis du istedet vælger hele tidsperioden, hvor både ordren og returneringen blev registreret, vil du se de rigtige tal.

Tal for hele perioden.

Tal for hele perioden.

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,-.

Med delvis returnering har ordren en omsætning på 1050,- og returvarer for 700,-.

Med delvis returnering har ordren en omsætning på 1050,- og returvarer for 700,-.

Under Product performance er der købt to produkter, hvor den ene er refunderet.

Der er købt to produkter hvoraf det ene er refunderet.

Der er købt to produkter hvoraf det 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.

Measurement Protocol Refund eksempel.

Measurement Protocol Refund eksempel.

Lige under koden er der et link, som tager dig over til Hit Builder, hvor du kan bygge videre på eksemplet.

Hit Builder med koden til et Refund.

Hit Builder med koden til et Refund.

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:

Validér at requestet er korrekt.

Validér at requestet er korrekt.

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.

Admin > Property Settings > Data import

Admin > Property Settings > Data import

Klik på den røde knap.

Opret en ny Data Import.

Opret en ny Data Import.

Vælg “Refund” som type.

Vælg "Refund" som type.

Vælg “Refund” som type.

Giv den et godt navn.

Giv den et godt navn.

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.

Transaction ID er det eneste påkrævede felt.

Transaction ID er 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.

Delvise returneringer har nogle flere mulige felter.

Delvise returneringer har nogle flere mulige felter.

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.

Hent templaten.

Hent 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.

CSV fil der skal uploades.

CSV fil der skal uploades.

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.

Brug separate Data Imports til delvise og komplette returneringer for at holde det adskilt.

Brug separate Data Imports til delvise og komplette returneringer for at holde det adskilt.

Upload CSV filen.

Upload CSV filen.

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.

CSV fil som ikke validerer.

CSV fil som ikke validerer.

Med fejlen rettet, bliver filen nu godkendt.

Godkendt CSV fil.

Godkendt CSV fil.

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.

Custom Report med overblik over refunds.

Custom Report med overblik over refunds.

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.

Calculated Metrics findes under View settings.

Calculated Metrics findes under View settings.

Her kan du indtaste Revenue i feltet og derefter minus og så Refund Amount.

Justeret omsætning udregnes som omsætning minus retur beløb.

Justeret omsætning udregnes som omsætning minus retur beløb.

Jeg udregner også lige antal ordre.

Udregning af det rigtige antal ordre.

Udregning af det rigtige antal ordre.

De to nye Calculated Metrics tilføjes til Custom Report’en.

Calculated Metrics tilføjes til Custom report.

Calculated Metrics tilføjes til Custom report.

Og dermed har jeg en custom report med de endelige ordre og omsætning.

Custom report med justeret ordre og omsætning.

Custom report med justeret 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.

Calculated Metric: Product Refund Rate

Calculated Metric: Product Refund Rate

Derefter laver du følgende Custom Report.

Custom Report til at finde hyppige returvarer.

Custom Report til at finde hyppige returvarer.

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.

De mest returnerede produkter.

De mest returnerede produkter.

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.

Pas på når du analyserer på trafikkilder!

Pas på når du analyserer på trafikkilder!

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!