DEBUGOVÁNÍ GA4 V APLIKACÍCH
RNDr. Stanislav Račinský, CSc
SPECIFIKA ANALYTIKY APLIKACÍ
• Pro debugování nelze využívat rozšíření z prohlížeče
• Cookies nejsou využitelné, uložení dat na klientovi musí řídit vývojář
• Windows/Mac
• Measurement protocol
• knihovny Firebase SDK
• Android
• Firebase SDK je Googlem preferovaná možnost
• samotná SDK je zdarma , platí se využívání databáze.
• umožňuje integraci mobilních kontejnerů Google Tag Manageru
MEASUREMENT PROTOCOL
• Standardy
• Možnosti zjišťování chyb
• Session control parametry
• Testování Windows
• Testování Mac
• GTM kontejner
• GTM proměnné
• Parametry eventů
• GTM pastičky
• Zjišťování chyb
FIREBASE SDK - ANDROID
STANDARDY MEASUREMENT PROTOKOLU PRO GA4
1. Web+App: verze 2 která je běžně využívaná pro měření webových stránek.
• A protože aplikace využívá stejné webové proměnné (lze využívat virtuální URL) je mnohem jednodušší udržet
konzistentní sledování aplikací a webů.
• David Valejo napsal výborný článek https://www.thyngster.com/app-web-google-analytics-measurement-
protocol-version-2 a zejména v něm popsal příklad jak sestavit požadavek a poslat jej na sběrné servery pro
validaci.
2. Measurement Protocol pro GA4
• je aktuálně popisovaný v Google dokumentaci:
https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference
• je ve skutečnosti již verze 3, ačkoli není takto označována
SESSION CONTROL PARAMETRY
• cid, sid,_s, sct, seg jsou
odesílány URL query stringu
• _fv, _ss parametry jsou
odesílány v POST datech jako
parametry page_view eventu
• _fv a _ss parametry musí být z
dat vyjmuty pokud nemají
hodnotu 1
TESTOVACÍ DATA LZE ODESLAT Z CONSOLE
BROWSERU
• Dlouhé diskuze s vývojáři ohledně
pořadí parametrů
• Je potřebný důkaz, zda daný
parametr je na sběrném serveru
přijatý a následně viditelný v
Debug view
• _et parametr je povinný
• Možnost poslat POST data z
javasriptu
• A nebo lze využít aplikaci
Postman
• navigator.sendBeacon("https://www.google-
analytics.com/g/collect?v=2&tid=G-
7SZ8HCLFFF&_dbg=1&_p=138462673&ul=en_en&
cid=8437012214.1690447502
&dl=https://www.test.com/device-rename
&dr=https://www.test.com/devicedetails&dt=rename
&sid=1690447502&s=1",
"en=page_view&_ss=1&_fv=1&_et=2&ep.page_id=unique_id
&ep.page_name=screenName&ep.page_category=primaryCategory
&ep.app_version=5.1.490.0&ep.environment=development
&ep.platform=widget_win&ep.country_market_iso=CZ");
PŘÍPRAVA TESTOVÁNÍ WINDOWS APLIKACE
• Žádné speciální požadavky
• PC s Windows
• Build aplikace s debug parametry přímo od
vývojáře
• Stáhnout
• Nainstalovat
• Spustit
MOŽNOSTI ZJIŠŤOVÁNÍ CHYB
Je celkem mále neplacených debugovacích nástrojů pro Aplikace s measurement protokolem
1. GA4 reporty v reálném čase – 15 minutové okno
1. Vhodné pro sledování dat z více zařízení najednou
2. Prakticky nemožné vybrat jedno jediné konkrétní zařízení sledovat na něm jednotlivé interakce
2. debug view v Google Admin nastavení property:
1. Posílat „_dbg=1“ URL parametr nebo „debug_mode=true“ event parametr
2. Je třeba mít speciální build aplikace, který využívá některého z uvedených parametrů
3. Nesnadný výběr, které zařízení sledovat
4. Ale když se zařízení vybere, tak již lze sledovat data pouze z tohoto zařízení
5. Snadno viditelné eventy parametry jednotlivých eventů
6. Snadné sledování odeslaných eventů a jejich parametrů po každé interakci
DEBUG VIEW
• Administrátorská práva
• Nastavení Property
• 30 minutové okno
• Copy a paste obsah
oranžového obdélníku
do Excelu
ULOŽENÍ DAT V EXCELU
• Ručně zkopírovaná data vložíte do Excelu
• Každý den na nový List
• Jednotlivé eventy vkládat jako neformátovaný
text do sloupců
• Později doformátovat parametry tak, aby na
jednom řádku byly parametry stejného jména
• Snadno uvidíte, které parametry jsou v jaké
eventu odesílány
• K datům se můžete kdykoli vrátit
VÝJIMKY
• https://developers.google.com/analytics/devgui
des/collection/ga4/exceptions#exception_para
meters
• Description není defaultní parametr
• Je to pouze příklad v dokumentaci
TESTOVÁNÍ NA APPLE
• Samostatný paramter rozlišující
Window a MAC platformu
• Porovnávání Event count metriky pro
hodnoty jednotlivých parametrů
• Např. Upload X Uploaded
• Nebo Device reset X Device reseted
• Chybějící hodnota parametru
Selected option pro Mac (fialový box)
ANDROID - FIREBASE SDK
TESTOVÁNÍ NA ANDROIDU
• Windows PC
• Android studio
• Mobilní telefon s Androidem
• Aktivovaný developer mode
• USB kabel do PC
• Build aplikace s debug parametry přímo od
vývojáře
• Stáhnout
• Nainstalovat
• Spustit
ODESÍLÁNÍ DAT DO FIREBASE
Definované funkce SDK zajišťující formátování event parametrů, nastavení session control parametrů a
generování automatických eventů
logEvent("deviceReseted",parameters: [
"deviceModel": “XXXXX",
"devicePlatform": "P1",
"deviceSerial": "123456789"])
setUserProperty(
"user_affiliation": "Anonymous", // or "Registered"
"environment": produkce, // or vyvoj, staging
"country": "CH", // 2 znakový kód )
PRVNÍ MOŽNOST : ANDROID STUDIO
PASTIČKY U MODIFIKACÍ EVENT PARAMETRŮ
1. User parametry
a. Pouze funkce Firebase SDK
setUserPropertyString
b. Nelze modifikovat v GTM kontejneru
2. Parametry defaultních Firebase eventů
a. screen_view event
• je generovaný by default z SDK
• Ale jeho spouštění je vázáno na další procedury Android API a není spolehlivé
• Je lepší zakázat defaultní event a generovat jej z kódu aplikace
• Ani v tomto případě není screen_view posílání do GTM
(https://infotrust.com/articles/firebase-analytics-google-tag-manager-mobile-
app-measurements/ )
b. Hit scope parametry nedefaultních eventů mohou být modifikovány,
přidány nebo smazány u každého spuštěného tagu samostatně
GTM PREVIEW MODE
• Každé spuštění nového preview vyžaduje
vytvoření nové verze kontejneru
• Nová verze ale nebude publikována jako Live
• U přehledu verzí si dropdown menu vyberete
možnost Preview
• Otevře se okno, kam vložíte identifikátor Firebase
application id
• Po odeslání formuláře tlačítkem „Generate….“ se
objeví QR kód pro naskenování na testovacím
zařízení
• Nebo získáte adb command, který zajistí ve
spuštěné aplikaci nahrazení live GTM kontejneru
jeho testovací verzí
GA GTM TAGY
1. Universal analytics
1. Nastavení konfigurace Tagu je umožněno konfigurační
proměnnou
2. Díky tomu je možné v rámci GTM parametricky měnit
cílovou UA property
2. GA4
1. Jde o nativní Firebase tag
2. Property je volená při konfiguraci projektu ve Firebase,
nikoli v GTM
3. Hit level parametry mohou být přidány, přejmenovány,
změněny jejich hodnoty nebo odstraněny.
NASTAVENÍ SPOJENÍ GA4 PROPERTY A FIREBASE
• Každou GA4 property je možné propojit s
jednim FireBase projektem
• V jednom projektu může být více aplikací
• Takže každá země, pokud chce mít data v
samostatné property, musí mít svůj
Firebase projekt.
• And configure links between Firebase
project and GA4 property at Firebase user
interface
PROMĚNNÉ MOBILNÍCH GTM
KONTEJNERŮ
1. Všechny proměnné jsou pouze verze 1
a. Nelze je dědit z předchozích eventů
b. Nejdou uložit
2. Nelze používat regular expressions v lookup
tabulkách
3. Nejsou javascript variables/code
NEDEFINOVANÉ HODNOTY
• V webovém kontejneru nedefinovaná hodnota
parameteru způsobí, že tento parametr není odeslán
do GA
• V mobilním kontejneru ve Firebase nedefinovaná
hodnota parametru způsobí výjimku ve Firebase SDK
a tím dojde k ukončení vykonávání kódu celého tagu
• Je třeba vždy definovat default hodnoty, aby se
předešlo pádům tagů
AUTOMATICKÁ KONVERZE TEXTU NA ČÍSLA
• Číselné texty parametrů v logEvent funkci jsou
konvertovány na číselné parametry v GTM
• Což vede třeba k tomu že v lookup tabulkách nikdy
nemohou dojít shody (oranžový box). Je třeba
nahradit nuly písmenem o nebo použít desetinná
čísla
DEBUG TAG
• U rozsáhlých změn parametrů je důležité porovnávat
parametry poslané do logEvent funkce s výstupními
parametry předávanými do GA
• Stačí zadefinovat Firebase tag, který nemění žádné
hodnoty a jenom si přidá parametr, který umožní
jeho identifikaci mezi ostatními parametry
• Zdvojnásobí se tím počet hitů, tak je třeba jej
používat pouze v testovacích verzích kontejneru
DEBUG VIEW
• Stejné místo pro sledování analytiky jako u
Measurement protokolu
• Může být navíc využito přímo ve Firebase projektu
• Nebo lze využít tradiční GA4 Debug view
• Raději ještě jednou: pokud není u některého z
parametrů definována jeho defaultní hodnota, tak se
celý tag neodešle do GA a tudíž zde není celý event
vidět
CHYBY FIREBASE
• https://firebase.google.com/docs/analytics/errors
• Dva páry event paramterů:
• firebase_error
• error_value
• Celý event není uložen do GA
• Tyto chyb je možné sledovat pouze v Debugview
DALŠÍ PŘÍKLADY CHYB
ZÁVĚRY
• Nemůžete věřit vývojářům, že zadaný kód zpracují bez chyb
• Je třeba vždy po nových implementacích provádět kompletní otestování celého měření analytiky
• Kopírování dat z Debug View do Excelu vám umožní se vždy ke zjištěným datům vrátit
• Formátování aby jeden řádek obsahoval hodnoty pro jeden parametr přináší rychlý přehled
• Barevně si vyznačte zjištěné chyby
• Testování v debugview by mělo být doprovázeno tabulkami v Exploration nebo BQ aby se ověřili i
méně časté scénáře nebo případy, který nebyly testovány
• Dobře provedené otestování při implementaci vám ušetří hodně pozdějších problémů s nesprávnými
nebo chybnými či chybějícími daty

Data Restart 2023: Stanislav Račinský - Debugování Google Analytics 4 v aplikacích

  • 1.
    DEBUGOVÁNÍ GA4 VAPLIKACÍCH RNDr. Stanislav Račinský, CSc
  • 2.
    SPECIFIKA ANALYTIKY APLIKACÍ •Pro debugování nelze využívat rozšíření z prohlížeče • Cookies nejsou využitelné, uložení dat na klientovi musí řídit vývojář • Windows/Mac • Measurement protocol • knihovny Firebase SDK • Android • Firebase SDK je Googlem preferovaná možnost • samotná SDK je zdarma , platí se využívání databáze. • umožňuje integraci mobilních kontejnerů Google Tag Manageru
  • 3.
    MEASUREMENT PROTOCOL • Standardy •Možnosti zjišťování chyb • Session control parametry • Testování Windows • Testování Mac • GTM kontejner • GTM proměnné • Parametry eventů • GTM pastičky • Zjišťování chyb FIREBASE SDK - ANDROID
  • 4.
    STANDARDY MEASUREMENT PROTOKOLUPRO GA4 1. Web+App: verze 2 která je běžně využívaná pro měření webových stránek. • A protože aplikace využívá stejné webové proměnné (lze využívat virtuální URL) je mnohem jednodušší udržet konzistentní sledování aplikací a webů. • David Valejo napsal výborný článek https://www.thyngster.com/app-web-google-analytics-measurement- protocol-version-2 a zejména v něm popsal příklad jak sestavit požadavek a poslat jej na sběrné servery pro validaci. 2. Measurement Protocol pro GA4 • je aktuálně popisovaný v Google dokumentaci: https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference • je ve skutečnosti již verze 3, ačkoli není takto označována
  • 5.
    SESSION CONTROL PARAMETRY •cid, sid,_s, sct, seg jsou odesílány URL query stringu • _fv, _ss parametry jsou odesílány v POST datech jako parametry page_view eventu • _fv a _ss parametry musí být z dat vyjmuty pokud nemají hodnotu 1
  • 6.
    TESTOVACÍ DATA LZEODESLAT Z CONSOLE BROWSERU • Dlouhé diskuze s vývojáři ohledně pořadí parametrů • Je potřebný důkaz, zda daný parametr je na sběrném serveru přijatý a následně viditelný v Debug view • _et parametr je povinný • Možnost poslat POST data z javasriptu • A nebo lze využít aplikaci Postman • navigator.sendBeacon("https://www.google- analytics.com/g/collect?v=2&tid=G- 7SZ8HCLFFF&_dbg=1&_p=138462673&ul=en_en& cid=8437012214.1690447502 &dl=https://www.test.com/device-rename &dr=https://www.test.com/devicedetails&dt=rename &sid=1690447502&s=1", "en=page_view&_ss=1&_fv=1&_et=2&ep.page_id=unique_id &ep.page_name=screenName&ep.page_category=primaryCategory &ep.app_version=5.1.490.0&ep.environment=development &ep.platform=widget_win&ep.country_market_iso=CZ");
  • 7.
    PŘÍPRAVA TESTOVÁNÍ WINDOWSAPLIKACE • Žádné speciální požadavky • PC s Windows • Build aplikace s debug parametry přímo od vývojáře • Stáhnout • Nainstalovat • Spustit
  • 8.
    MOŽNOSTI ZJIŠŤOVÁNÍ CHYB Jecelkem mále neplacených debugovacích nástrojů pro Aplikace s measurement protokolem 1. GA4 reporty v reálném čase – 15 minutové okno 1. Vhodné pro sledování dat z více zařízení najednou 2. Prakticky nemožné vybrat jedno jediné konkrétní zařízení sledovat na něm jednotlivé interakce 2. debug view v Google Admin nastavení property: 1. Posílat „_dbg=1“ URL parametr nebo „debug_mode=true“ event parametr 2. Je třeba mít speciální build aplikace, který využívá některého z uvedených parametrů 3. Nesnadný výběr, které zařízení sledovat 4. Ale když se zařízení vybere, tak již lze sledovat data pouze z tohoto zařízení 5. Snadno viditelné eventy parametry jednotlivých eventů 6. Snadné sledování odeslaných eventů a jejich parametrů po každé interakci
  • 9.
    DEBUG VIEW • Administrátorskápráva • Nastavení Property • 30 minutové okno • Copy a paste obsah oranžového obdélníku do Excelu
  • 10.
    ULOŽENÍ DAT VEXCELU • Ručně zkopírovaná data vložíte do Excelu • Každý den na nový List • Jednotlivé eventy vkládat jako neformátovaný text do sloupců • Později doformátovat parametry tak, aby na jednom řádku byly parametry stejného jména • Snadno uvidíte, které parametry jsou v jaké eventu odesílány • K datům se můžete kdykoli vrátit
  • 11.
  • 12.
    TESTOVÁNÍ NA APPLE •Samostatný paramter rozlišující Window a MAC platformu • Porovnávání Event count metriky pro hodnoty jednotlivých parametrů • Např. Upload X Uploaded • Nebo Device reset X Device reseted • Chybějící hodnota parametru Selected option pro Mac (fialový box)
  • 13.
  • 14.
    TESTOVÁNÍ NA ANDROIDU •Windows PC • Android studio • Mobilní telefon s Androidem • Aktivovaný developer mode • USB kabel do PC • Build aplikace s debug parametry přímo od vývojáře • Stáhnout • Nainstalovat • Spustit
  • 15.
    ODESÍLÁNÍ DAT DOFIREBASE Definované funkce SDK zajišťující formátování event parametrů, nastavení session control parametrů a generování automatických eventů logEvent("deviceReseted",parameters: [ "deviceModel": “XXXXX", "devicePlatform": "P1", "deviceSerial": "123456789"]) setUserProperty( "user_affiliation": "Anonymous", // or "Registered" "environment": produkce, // or vyvoj, staging "country": "CH", // 2 znakový kód )
  • 16.
    PRVNÍ MOŽNOST :ANDROID STUDIO
  • 17.
    PASTIČKY U MODIFIKACÍEVENT PARAMETRŮ 1. User parametry a. Pouze funkce Firebase SDK setUserPropertyString b. Nelze modifikovat v GTM kontejneru 2. Parametry defaultních Firebase eventů a. screen_view event • je generovaný by default z SDK • Ale jeho spouštění je vázáno na další procedury Android API a není spolehlivé • Je lepší zakázat defaultní event a generovat jej z kódu aplikace • Ani v tomto případě není screen_view posílání do GTM (https://infotrust.com/articles/firebase-analytics-google-tag-manager-mobile- app-measurements/ ) b. Hit scope parametry nedefaultních eventů mohou být modifikovány, přidány nebo smazány u každého spuštěného tagu samostatně
  • 18.
    GTM PREVIEW MODE •Každé spuštění nového preview vyžaduje vytvoření nové verze kontejneru • Nová verze ale nebude publikována jako Live • U přehledu verzí si dropdown menu vyberete možnost Preview • Otevře se okno, kam vložíte identifikátor Firebase application id • Po odeslání formuláře tlačítkem „Generate….“ se objeví QR kód pro naskenování na testovacím zařízení • Nebo získáte adb command, který zajistí ve spuštěné aplikaci nahrazení live GTM kontejneru jeho testovací verzí
  • 19.
    GA GTM TAGY 1.Universal analytics 1. Nastavení konfigurace Tagu je umožněno konfigurační proměnnou 2. Díky tomu je možné v rámci GTM parametricky měnit cílovou UA property 2. GA4 1. Jde o nativní Firebase tag 2. Property je volená při konfiguraci projektu ve Firebase, nikoli v GTM 3. Hit level parametry mohou být přidány, přejmenovány, změněny jejich hodnoty nebo odstraněny.
  • 20.
    NASTAVENÍ SPOJENÍ GA4PROPERTY A FIREBASE • Každou GA4 property je možné propojit s jednim FireBase projektem • V jednom projektu může být více aplikací • Takže každá země, pokud chce mít data v samostatné property, musí mít svůj Firebase projekt. • And configure links between Firebase project and GA4 property at Firebase user interface
  • 21.
    PROMĚNNÉ MOBILNÍCH GTM KONTEJNERŮ 1.Všechny proměnné jsou pouze verze 1 a. Nelze je dědit z předchozích eventů b. Nejdou uložit 2. Nelze používat regular expressions v lookup tabulkách 3. Nejsou javascript variables/code
  • 22.
    NEDEFINOVANÉ HODNOTY • Vwebovém kontejneru nedefinovaná hodnota parameteru způsobí, že tento parametr není odeslán do GA • V mobilním kontejneru ve Firebase nedefinovaná hodnota parametru způsobí výjimku ve Firebase SDK a tím dojde k ukončení vykonávání kódu celého tagu • Je třeba vždy definovat default hodnoty, aby se předešlo pádům tagů
  • 23.
    AUTOMATICKÁ KONVERZE TEXTUNA ČÍSLA • Číselné texty parametrů v logEvent funkci jsou konvertovány na číselné parametry v GTM • Což vede třeba k tomu že v lookup tabulkách nikdy nemohou dojít shody (oranžový box). Je třeba nahradit nuly písmenem o nebo použít desetinná čísla
  • 24.
    DEBUG TAG • Urozsáhlých změn parametrů je důležité porovnávat parametry poslané do logEvent funkce s výstupními parametry předávanými do GA • Stačí zadefinovat Firebase tag, který nemění žádné hodnoty a jenom si přidá parametr, který umožní jeho identifikaci mezi ostatními parametry • Zdvojnásobí se tím počet hitů, tak je třeba jej používat pouze v testovacích verzích kontejneru
  • 25.
    DEBUG VIEW • Stejnémísto pro sledování analytiky jako u Measurement protokolu • Může být navíc využito přímo ve Firebase projektu • Nebo lze využít tradiční GA4 Debug view • Raději ještě jednou: pokud není u některého z parametrů definována jeho defaultní hodnota, tak se celý tag neodešle do GA a tudíž zde není celý event vidět
  • 26.
    CHYBY FIREBASE • https://firebase.google.com/docs/analytics/errors •Dva páry event paramterů: • firebase_error • error_value • Celý event není uložen do GA • Tyto chyb je možné sledovat pouze v Debugview
  • 27.
  • 28.
    ZÁVĚRY • Nemůžete věřitvývojářům, že zadaný kód zpracují bez chyb • Je třeba vždy po nových implementacích provádět kompletní otestování celého měření analytiky • Kopírování dat z Debug View do Excelu vám umožní se vždy ke zjištěným datům vrátit • Formátování aby jeden řádek obsahoval hodnoty pro jeden parametr přináší rychlý přehled • Barevně si vyznačte zjištěné chyby • Testování v debugview by mělo být doprovázeno tabulkami v Exploration nebo BQ aby se ověřili i méně časté scénáře nebo případy, který nebyly testovány • Dobře provedené otestování při implementaci vám ušetří hodně pozdějších problémů s nesprávnými nebo chybnými či chybějícími daty