Guider

transaction_id i GA4: vad det gör och hur du får det rätt

transaction_id är ordernumret som du skickar med köphändelsen i GA4. GA4 använder det för att ta bort ett andra köp med samma ID i webbströmmar och för att koppla returer till ordrar. Skicka ditt riktiga, unika ordernummer på varje köp: aldrig tomt, aldrig ett fast värde och aldrig något som identifierar kunden.

Kontrollera din egen sajt: den gratis skanningen visar på ungefär en minut om problemet finns på din sida. Rapporten är på engelska.

Det här gör GA4 med det

Googles dokumentation för e-handel ber om ett transaktions-ID på varje e-handelshändelse, av två skäl: för att deduplicera köp och för att hantera returer. I praktiken betyder det:

  • När två köp kommer in med samma transaction_id behåller GA4 ett. Det gäller bara webbströmmar, inte appströmmar.
  • En returhändelse med samma transaction_id kopplas tillbaka till ordern.
  • Alla köp med samma ID räknas som samma order. Ett värde som aldrig ändras, eller en tom sträng, gör alltså att GA4 behandlar alla dina ordrar som en och slänger resten.

Google Ads bygger på samma idé: ordernumret som transaction_id på konverteringen hindrar att en omladdning av tacksidan räknas två gånger.

Här finns det i anropet

I dataLayer ligger det inuti ecommerce, bredvid värde och valuta:

dataLayer.push({ ecommerce: null });
dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: '10045',
    value: 1299.00,
    currency: 'SEK',
    items: [{ item_id: 'SKU-123', item_name: 'Ullhalsduk', price: 1299.00, quantity: 1 }]
  }
});

I anropet till GA4 (DevTools, fliken Network, filtrera på collect) syns det som ep.transaction_id på anropet med en=purchase:

…/g/collect?v=2&tid=G-AB12CD34EF&en=purchase&cu=SEK&epn.value=1299&ep.transaction_id=10045…

Skickas flera händelser i samma anrop ligger de i anropets kropp i stället för i adressen. Öppna fliken Payload och leta efter raden med en=purchase.

Fem sätt det går fel på

  • Det saknas. Varje gång en kund laddar om eller bokmärker tacksidan, eller kommer tillbaka dit från bekräftelsemejlet, registrerar GA4 ett nytt köp. Intäkter och antal konverteringar hamnar över dina verkliga ordrar.
  • "undefined", "null" eller en platshållare från mallen. En variabel i Tag Manager som inte får något värde skickar samma text på varje order, och GA4 räknar då bara en av dem. Symptomet är det motsatta mot ovan: betydligt färre köp i GA4 än i butiken.
  • En tom sträng. Samma problem. Googles dokumentation varnar uttryckligen för att skicka "".
  • Det gamla formatet från Universal Analytics. Butiker som har gått över från Universal Analytics skickar ibland fortfarande ordernumret som ecommerce.purchase.actionField.id. GA4 förväntar sig ecommerce.transaction_id.
  • Kunddata i ID:t. Ett ID som bygger på en e-postadress eller ett namn skickar personuppgifter till Google, vilket villkoren inte tillåter. Använd ordernumret som butiken redan tilldelar.

Hitta problemet i dina rapporter

  1. Öppna Explore i GA4 och starta en tom utforskning av typen Free form.
  2. Lägg till dimensionen Transaction ID och måtten Ecommerce purchases och Purchase revenue, och välj ett datumintervall på några veckor.
  3. En rad som heter (not set) är köp utan transaktions-ID. Några få rader med väldigt höga antal (ett ID som undefined, 0 eller din platshållartext) tyder på en variabel som inte får något värde.
  4. Jämför antalet unika transaktions-ID:n med antalet ordrar i butiken för samma dagar. Stora skillnader åt något håll kommer från något av de fem problemen ovan.

Testa åtgärden

  1. Lägg en testorder med DevTools öppet på fliken Network och filtrera på collect.
  2. På orderbekräftelsen ska anropet med en=purchase innehålla ep.transaction_id med det riktiga ordernumret från ditt bekräftelsemejl.
  3. Ladda om orderbekräftelsen. I bästa fall skickas inget andra köpanrop. Annars måste det ha samma ID, så att GA4 tar bort det.
  4. I GA4 visar DebugView (med felsökningsläget i Tag Assistant påslaget) köphändelsen med parametern transaction_id inom några sekunder.

Skannar du orderbekräftelsen med Plumfinch kontrolleras samma sak: rapporten visar "Google Analytics 4 purchase has no transaction_id" när det saknas.

Källor

Bygger på plattformarnas offentliga dokumentation (oftast på engelska). Menyer och namn ändras, så kontrollera de länkade sidorna om ett steg ser annorlunda ut.