Close

Duplicitní transakce v Google Analytics – jak se jich zbavit

Duplicitní transakce označují stav, kdy jednu objednávku na eshopu uvidíš v Google Analytics několikrát.

Zda se tvého eshopu tento problém týká zjistíš nejsnáze tak, že si do svého účtu přidáš vlastní přehled pro duplicitní transakce. Klikni na tento odkaz a vyber si své Google Analytics.

Pokud v přehledu uvidíš u jednotlivých ID transakce ve sloupci Transakce čísla vyšší než 1, máš problém.

Opakované transakce v Google Analytics
Opakované transakce v Google Analytics

Některé transakce se ti totiž započítávají opakovaně a to navyšuje jak reportovaný počet transakcí, tak tržby.

V rámci jedné návštěvy dokáží duplicitní transakce odhalit a eliminovat samotné GA. Avšak v případě ukončené návštěvy (vyprší časový limit, půlnoc, návrat z jiného zdroje) již ne. Proto musíš přijít na řadu ty a tento problém řešit.

Samotné řešení je však technicky náročnější a proto pokud je podíl duplicitních transakcí minimální, doporučuji ti se s tím radši smířit.

Pokud máš ale rád přesnost, mám pro tebe návod.

Jak se zbavit duplicitních transakcí v Google Analytics

Zcela ideální je zadat vývojáři eshopu, aby celou záležitost s několikanásobnými objednávkami vyřešil on.

Stačí totiž, aby děkovací stránka, která obsahuje konverzní kódy, nešla zobrazit vícekrát. Kreativitě se meze nekladou a tak je možné si informaci o odeslaných konverzních kódech uložit do databáze a při opakovém načtení stránky již konverzní kódy neposílat. Nebo ihned po odeslání konverzních kódů uživatele přesměrovat na jinou stránku.

My si ale dnes ukážeme postup pracující s cookie a GTM, který mi ve většině případů problém s opakovaným odesláním transakce vyřeší. V krátkosti spočívá v:

  1. po odeslání transakce se uloží cookie s číslem objednávky
  2. při každém odesílání transakce se nejprve kontroluje, zda již cookie s číslem objednávky neexistuje
  3. pokud cookie s číslem objednávky již existuje, transakce se znova nepošle

Nastavení krok po kroku

Jak už tomu při práci v Google Tag Manageru bývá, můžeš toho hodně pokazit. Proto tento postup na zabránění duplicitním transakcí řeší celý proces včetně testování.

1) Založ paralelní měření návštěvnosti a transakcí

Vytvoř si v GA novou službu pro testování. Služba musí mít identické nastavení jako ta hlavní a to především filtry, časové pásmo, aktivovaný elektronický obchod a seznam vyloučených odkazujících zdrojů.

V GTM vytvoř paralelní měření návštěvnosti a transakcí do nově založené služby v GA. Bude stačit:

  • nakopírovat proměnnou GA settings a změnit v ní UA id na službu, kterou jsi před chvíli založil,
  • vytvořit kopii značky GA – Pageview a změnit v ní GA settings na testovací,
  • vytvořit kopii značky GA – Transaction a také změnit GA settings.

Ostatní značky jako různé posílání eventů atp. kopírovat nemusíš. Nově vytvořené značky a proměnné jasně označ v názvu slovem TEST.

2) Ověř shodu dat

Po 5-7 dnech zkontroluj, že v původní službě i v tvé testovací máš nasbírané zcela stejné údaje. Sedět by měli především uživatelé, návštěvy, transakce a počty duplicitních transakcí.

Pokud se čísla shodují, můžeš pokračovat.

3) Vytvoř dataLayer proměnnou transactionId

Ze všeho nejdříve si v Google Tag Manageru založ proměnnou s názvem dl.transactionId. Ta bude odkazovat na proměnnou v dataLayeru, ve které se skrývá ID objednávky na stránce s poděkováním za nákup.

Nastavení dl.transactionId
Nastavení dl.transactionId

4) Založ cookie první strany

Obdobně vytvoř proměnnou cookie.userTransactionIds typu Soubor cookie první strany. Název samotné cookie bude user_transaction_ids.

Nastavení cookie.userTransactionIds
Nastavení cookie.userTransactionIds

5) Vytvoř vlastní JavaScript kód pro kontrolu cookie

Tato funkce ti vrátí true, pokud na dané stránce již existuje cookie a obsahuje ID transakce, kterou chceš odeslat. To využiješ tak, že pokud tato funce vrátí true, zablokuješ další odeslání transakce.

Vytvoř novou proměnnou, pojmenuj ji js.isTransactionIdInCookie, typ vyber Custom JavaScript a vlož do ní kód.

Pokud jsi proměnné v předchozích krocích pojmenoval jinak, tak uprav jejich název v kódu.

Nastavení js.isTransactionIdInCookie
Nastavení js.isTransactionIdInCookie

6) Založ vlastní JavaScript kód pro nastavení cookie

Poslední proměnnou je JavaScript s názvem js.hitcallbackSetTransactionCookie, který po úspěšném odeslání transakce vytvoří cookie s ID transakce.

Navíc budeš předpokládat, že uživatel může nakoupit na eshopu vícekrát a tak ID každé další transakce přidáš do cookie místo toho, abys zakládal cookie novou nebo ji přepsal.

Vytvoř proměnnou js.hitcallbackSetTransactionCookie typu Custom JavaScript a vlož do ní kód.

Názvy proměnných v kódu uprav, pokud jsi je pojmenoval jinak.

Nastavení js.hitcallbackSetTransactionCookie
Nastavení js.hitcallbackSetTransactionCookie

7) Vytvoř blokující pravidlo

Protože chceš zabránit odeslání transakce v případě, že cookie s ID transakce již existuje, vytvoř si blokující pravidlo.

Předpokládej, že stránka s poděkováním za objednávku se nachází na adrese /objednavka-odeslana. Vytvoř nový trigger s názvem Transakce již byla odeslána, typem Zobrazení stránky a přidej dvě podmínky

  1. Page URL contains /objednavka-odeslana
  2. js.isTransactionIdInCookie equals true

Trigger se tak spustí na děkovací stránce a jen pokud ID transakce již v cookie existuje.

Nastavení triggeru Transakce již byla odeslána
Nastavení triggeru Transakce již byla odeslána

8) Uprav spouštění značky s odesláním transakce

Nyní máš vše připraveno a již stačí pouze změnit podmínky pro spouštění značky odesílající transakci do GA. Pamatuj, že jako první vše nastavuješ jen u testovací značky.

Nejprve u značky v Další nastavení přidej nové pole k nastavení. Do pole hitCallback vyplň hodnotou {{js.hitcallbackSetTransactionCookie}}.

Čili po úspěšném odeslání transakce se spustí funkce js.hitcallbackSetTransactionCookie a ta vytvoří cookie.

Nastavení hitCallbacku
Nastavení hitCallbacku

U značky ještě přidej blokující trigger Transakce již byla odeslána.

Nastavení značky pro odeslání transakce
Nastavení značky pro odeslání transakce

9) Zkontroluj, že v testovací službě se duplicity neobjevují

Počkej dalších pár dní a zkontroluj, že v testovací službě se již duplicitní transakce neobjevují, ale jinak se počty návštěv a uživatelů shodují se službou hlavní.

Pokud tomu tak je, tak uprav i posílání transakcí do hlavní služby (krok 8).

Spočítej si, o kolik se liší počet transakcí v původní a testovací službě. Toto číslo udává, o kolik předtím Google Analytics transakce kvůli duplicitám nadhodnocovaly.

Do GA je pak o tom vhodné dát poznámku. Něco jako “Implementováno řešení duplicitních transakcí. Dle testu lze očekávat 11% propad v počtu transakcí a tržeb od dnešního dne.

10) Finální ověření a ukončení testu

Když za několik dní vše vypadá dobře a v hlavní službě se již duplicitní transakce neobjevují. Můžeš test ukončit. To spočívá v:

  • smazání testovací značky GA – Transaction
  • smazání testovací značky GA – Pageview
  • smazání testovací proměnné GA settings
  • smazání testovací služby v Analytics

Závěr

Ze zkušenosti mohu říci, že i při správné implementaci se ještě tu a tam duplicitní transakce objeví. Toto řešení totiž nepostihne situaci, kdy si děkovací stránku někdo otevře v jiném prohlížeči nebo smaže cookies. Avšak duplikovanost transakcí se výrazně sníží na nevýznamné hodnoty.

Celý tento postup na eliminaci duplicitních transakcí vychází ze článku #GTMTips: Prevent Repeat Transactions. Díky za inspiraci, Simo.