SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Feed The Beast!
Running GA4 without gtag.js using ssGTM + walker.js
Markus Baersch
Why Not GTAG.JS?
gtag.js
some issues
Source: in client-side setup likely to
be blocked by modern browsers
Heavy: does is all: GA, Ads, Optimize,
Badges and whatever
Complexity: Much stuff you might
not want
Control: let me define what is
“engaged”!
Consent: Consent Mode is a joke!
What to use (when running your own
endpoint for more than just GA4)?
gtag.js
… is odd!
Session Handling & More:
● control over “first_visit” and
“session_start”
● browser knows what is a
conversion, a referral exclusion…
● no way to hide your
measurement id
● much “serverside-stuff” has to be
handled by the browser
● just “sending hits” is not enough
● GA4 Measurement Protocol is
no replacement
● tasks: knowing goals, send
created events, track time…
● ssGTM “sendPixelFromBrowser”
● (batching)
gtag.js
why replacing it is hard
⛪
🙏?
Options:
● ga4mp.dev by David Vallejo (->
ssGTM)
● Build your own format and send
to own endpoint
● Use existing tools like CDPs,
Tealium
But:
● Blocking might still be a
problem
● Costs?
● Control?
Alternatives exist!
A perfect fit?
GA4MP
✓ allows using own endpoint
(✓) creates gtag.js like events
❌similar “control level” to gtag.js
if used with GA4 standard
clients & tags on ssGTM
-> build your own client
Feeding GA4 with walker.js
Open source: walker.js is a maintained
repo on GitHub
(Can) have all data you need: there
are timestamps, timings, hit
numbers…
https://github.com/elbwalker/walker.js
elbwalker
open source event tracker
Tagging
uses a command / event queue called
“elbLayer” (per default)
scans DOM for data-elb attributes and
builds events and parameters
alternatively push events to elbLayer
manually via JavaScript
can send events to several destinations
Destinations are consent sensitive
(walker.js can handle consent)
https://github.com/elbwalker/sgtm-client-template/tree/main/example
events have an “open” structure to contain
default attributes, custom attributes, session
state, user information, references… or
whatever
Send example:
elb('page view',
{id: '/test/virtual/path1',
title: 'Virtual Page 1'},
'click',
{some_property: 14}
);
Events
Session Handling
GA4 wants session handling
(simple) example…
- is only active if consent is
present
- uses localStorage /
sessionStorage - which is only
possible on a single domain
AND host
elb("walker user",
{hash: sD.sessionId,
device: sD.clientId});
Sending Stuff (1): walker.js Destinations
Every destination can handle events individually. We use it to send data to a ssGTM endpoint
Sending Stuff (2): Some Tips
Try beacons, then AJAX, then
an image pixel as last fallback
…and make sure that your
endpoint looks for get
parameters.
send events incl. consent
information to a custom
endpoint and resolve consent
there
Endpoints
Use ssGTM and translate walker events to ssGTM event model
trigger / fire any tags as if gtag.js had sent the requests
or build your own in Node, PHP or whatever and forward events to GA4
- Remember: CNAME is not an option
- cloud edge endpoints actually are an option ;)
experimental: use worker for receiving walker events
forward (few data) to GA4 using GAMP V2
think: add full event to a D1 cloud database ;)
Or build your endpoint as
- AWS Lambda,
- GCP Cloud Function or
- Azure Function
- in your local cloud / CDN architecture
Cloudflare Worker
use custom client for walker events
basic example and (beta) client template
available on Github:
github.com/elbwalker/sgtm-client-template
-> fork and build what you need (if you like)
ssGTM Example
send data to GA4 using
standard tag
enrich server-side
dimensions
add debug flag for better
debugging (kill before
publishing ;))
ssGTM Example
… or send data
(additionally or exclusive)
to Piwik PRO, Matomo…
no GA consent = no
tracking (but still
measurement?)
-> send directly to
BigQuery as event-level
raw data
ssGTM Example
markus-baersch.de/walker2bq
Demo
sending events from demo
HTML page in a browser
to ssGTM + forwarding to
GA4
Final Tipps
send base64 coded payload
… or even build your own
coding (or just do rot13 :))
Keeping your own format
makes you (somewhat)
independent
remember: a tracking server
has to handle a lot of stuff. Do
not use your website server
(unless you have low traffic
like me ;))
Can you see it?
Done!
Questions?
Game On!
download and play:
Client and Example Code:
github.com/elbwalker
Order:
markus-baersch.de/gtmbook
markus-baersch.de/walker2bq

Contenu connexe

Tendances

Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...
Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...
Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...
Simplilearn
 

Tendances (20)

MeasureCamp 2022: Digital Analytics Solutions for 2022
MeasureCamp 2022: Digital Analytics Solutions for 2022MeasureCamp 2022: Digital Analytics Solutions for 2022
MeasureCamp 2022: Digital Analytics Solutions for 2022
 
First Party Conversion Tracking [SEAcamp]
First Party Conversion Tracking [SEAcamp]First Party Conversion Tracking [SEAcamp]
First Party Conversion Tracking [SEAcamp]
 
Server-Side Google Tag Manager: Was, wie und warum
Server-Side Google Tag Manager: Was, wie und warumServer-Side Google Tag Manager: Was, wie und warum
Server-Side Google Tag Manager: Was, wie und warum
 
Google Consent Mode / MC Europe 2021
Google Consent Mode / MC Europe 2021Google Consent Mode / MC Europe 2021
Google Consent Mode / MC Europe 2021
 
Getting Started with Google Analytics 4
Getting Started with Google Analytics 4Getting Started with Google Analytics 4
Getting Started with Google Analytics 4
 
Google Analytics Alternatives
Google Analytics AlternativesGoogle Analytics Alternatives
Google Analytics Alternatives
 
Is Consent Mode Working.pdf
Is Consent Mode Working.pdfIs Consent Mode Working.pdf
Is Consent Mode Working.pdf
 
digital advertising in a cookieless world.pdf
digital advertising in a cookieless world.pdfdigital advertising in a cookieless world.pdf
digital advertising in a cookieless world.pdf
 
7 Key Metrics In Measuring Content Effectiveness
7 Key Metrics In Measuring Content Effectiveness7 Key Metrics In Measuring Content Effectiveness
7 Key Metrics In Measuring Content Effectiveness
 
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
Minority Log Report (Analisis de LOGS para SEO) - ESHOW [CLINIC SEO 2018]
 
Measurefest - GA4 From Migration to Measurement - The Key To Success.pptx
Measurefest - GA4 From Migration to Measurement - The Key To Success.pptxMeasurefest - GA4 From Migration to Measurement - The Key To Success.pptx
Measurefest - GA4 From Migration to Measurement - The Key To Success.pptx
 
Generative AI and SEO
Generative AI and SEOGenerative AI and SEO
Generative AI and SEO
 
How SEO changes, as we say bye bye to cookies
How SEO changes, as we say bye bye to cookiesHow SEO changes, as we say bye bye to cookies
How SEO changes, as we say bye bye to cookies
 
GDO - Google Discover Optimization - (Congreso Web 2019)
GDO - Google Discover Optimization - (Congreso Web 2019)GDO - Google Discover Optimization - (Congreso Web 2019)
GDO - Google Discover Optimization - (Congreso Web 2019)
 
Server-side Tagging in Google Tag Manager - MeasureSummit 2020
Server-side Tagging in Google Tag Manager - MeasureSummit 2020Server-side Tagging in Google Tag Manager - MeasureSummit 2020
Server-side Tagging in Google Tag Manager - MeasureSummit 2020
 
Prezentace 13. PPC camp - GA4 tipy a triky pro PPCčkaře
Prezentace 13. PPC camp - GA4 tipy a triky pro PPCčkařePrezentace 13. PPC camp - GA4 tipy a triky pro PPCčkaře
Prezentace 13. PPC camp - GA4 tipy a triky pro PPCčkaře
 
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
BrightonSEO slide deck Oct 2022 - Levi Williams-Clucas - Review Generation an...
 
SEO, PPC and AI in 2023 and Beyond
SEO, PPC and AI in 2023 and BeyondSEO, PPC and AI in 2023 and Beyond
SEO, PPC and AI in 2023 and Beyond
 
Streaming all over the world Real life use cases with Kafka Streams
Streaming all over the world  Real life use cases with Kafka StreamsStreaming all over the world  Real life use cases with Kafka Streams
Streaming all over the world Real life use cases with Kafka Streams
 
Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...
Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...
Google Display Network Tutorial | Google Display Ads | Google Ads | Digital M...
 

Similaire à Running GA4 without gtag.js using ssGTM and elbwalker

SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON
 
When third parties stop being polite... and start getting real
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting real
Charles Vazac
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
Nicholas Jansma
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 

Similaire à Running GA4 without gtag.js using ssGTM and elbwalker (20)

Replacing gtag.js with walker.js
Replacing gtag.js with walker.jsReplacing gtag.js with walker.js
Replacing gtag.js with walker.js
 
GA4/GTAG Data Capture Alternatives
GA4/GTAG Data Capture AlternativesGA4/GTAG Data Capture Alternatives
GA4/GTAG Data Capture Alternatives
 
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
Matt Jarvis - Unravelling Logs: Log Processing with Logstash and Riemann
 
Год в Github bugbounty, опыт участия
Год в Github bugbounty, опыт участияГод в Github bugbounty, опыт участия
Год в Github bugbounty, опыт участия
 
SECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практикеSECON'2017, Цаль-Цалко Иван, Go на практике
SECON'2017, Цаль-Цалко Иван, Go на практике
 
When third parties stop being polite... and start getting real
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting real
 
Golang Project Layout and Practice
Golang Project Layout and PracticeGolang Project Layout and Practice
Golang Project Layout and Practice
 
Byte Sized Rust
Byte Sized RustByte Sized Rust
Byte Sized Rust
 
Fluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting real
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
 
Go bei der 4Com GmbH & Co. KG
Go bei der 4Com GmbH & Co. KGGo bei der 4Com GmbH & Co. KG
Go bei der 4Com GmbH & Co. KG
 
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.pptDevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
DevFest Kuala Lumpur - Implementing Google Analytics - 2011-09-29.ppt
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
JavaOne TS-5098 Groovy SwingBuilder
JavaOne TS-5098 Groovy SwingBuilderJavaOne TS-5098 Groovy SwingBuilder
JavaOne TS-5098 Groovy SwingBuilder
 
Grails and Ajax
Grails and AjaxGrails and Ajax
Grails and Ajax
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User Experience
 
GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11
 
SF Grails - Ratpack - Compact Groovy Webapps - James Williams
SF Grails - Ratpack - Compact Groovy Webapps - James WilliamsSF Grails - Ratpack - Compact Groovy Webapps - James Williams
SF Grails - Ratpack - Compact Groovy Webapps - James Williams
 
Session-4.pptx
Session-4.pptxSession-4.pptx
Session-4.pptx
 
Improving Apache Spark Downscaling
 Improving Apache Spark Downscaling Improving Apache Spark Downscaling
Improving Apache Spark Downscaling
 

Plus de 📊 Markus Baersch

Plus de 📊 Markus Baersch (20)

GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]
 
Consent & Tag Management - die ultimative Checkliste
Consent & Tag Management - die ultimative ChecklisteConsent & Tag Management - die ultimative Checkliste
Consent & Tag Management - die ultimative Checkliste
 
Custom Tag Manager Templates
Custom Tag Manager TemplatesCustom Tag Manager Templates
Custom Tag Manager Templates
 
Server-Side: Lösung für alles? [OMX]
Server-Side: Lösung für alles? [OMX] Server-Side: Lösung für alles? [OMX]
Server-Side: Lösung für alles? [OMX]
 
Google Ads Conversiontracking ohne Cookies -SEA CAMP
Google Ads Conversiontracking ohne Cookies -SEA CAMPGoogle Ads Conversiontracking ohne Cookies -SEA CAMP
Google Ads Conversiontracking ohne Cookies -SEA CAMP
 
Google Tag Manager Templates
Google Tag Manager TemplatesGoogle Tag Manager Templates
Google Tag Manager Templates
 
First Party Data Collection
First Party Data CollectionFirst Party Data Collection
First Party Data Collection
 
Tracking-Herausforderungen 2020
Tracking-Herausforderungen 2020Tracking-Herausforderungen 2020
Tracking-Herausforderungen 2020
 
Analytics Hacks II SEAcamp 2019
Analytics Hacks II SEAcamp 2019Analytics Hacks II SEAcamp 2019
Analytics Hacks II SEAcamp 2019
 
Rendering Bots erkennen
Rendering Bots erkennen Rendering Bots erkennen
Rendering Bots erkennen
 
Browser vs. Tracking
Browser vs. TrackingBrowser vs. Tracking
Browser vs. Tracking
 
Analytics Tippgewitter
Analytics TippgewitterAnalytics Tippgewitter
Analytics Tippgewitter
 
Google Analytics gezielt zur Optimierung einsetzen / Bessere Daten in Analyti...
Google Analytics gezielt zur Optimierung einsetzen / Bessere Daten in Analyti...Google Analytics gezielt zur Optimierung einsetzen / Bessere Daten in Analyti...
Google Analytics gezielt zur Optimierung einsetzen / Bessere Daten in Analyti...
 
Herausforderungen der Internationalisierung
Herausforderungen der InternationalisierungHerausforderungen der Internationalisierung
Herausforderungen der Internationalisierung
 
ITP 2.1 und Webanalyse
ITP 2.1 und WebanalyseITP 2.1 und Webanalyse
ITP 2.1 und Webanalyse
 
Analytics & GTM: Tipps für bessere Daten CAMPIXX 2019
Analytics & GTM: Tipps für bessere Daten CAMPIXX 2019Analytics & GTM: Tipps für bessere Daten CAMPIXX 2019
Analytics & GTM: Tipps für bessere Daten CAMPIXX 2019
 
Analytics & GTM Hacks für bessere Daten
Analytics & GTM Hacks für bessere DatenAnalytics & GTM Hacks für bessere Daten
Analytics & GTM Hacks für bessere Daten
 
Bounce Rate Demystified - Campixx 2018
Bounce Rate Demystified - Campixx 2018Bounce Rate Demystified - Campixx 2018
Bounce Rate Demystified - Campixx 2018
 
Anatomie von AdWords Scripts - Einführung
Anatomie von AdWords Scripts - Einführung Anatomie von AdWords Scripts - Einführung
Anatomie von AdWords Scripts - Einführung
 
State of Spam SEAcamp Hannover 2017
State of Spam SEAcamp Hannover 2017State of Spam SEAcamp Hannover 2017
State of Spam SEAcamp Hannover 2017
 

Dernier

FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
MarinCaroMartnezBerg
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
amitlee9823
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
AroojKhan71
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
amitlee9823
 
Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter Lessons
JoseMangaJr1
 
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
amitlee9823
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
Capstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramCapstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics Program
 
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter Lessons
 
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men  🔝Bangalore🔝   Esc...
➥🔝 7737669865 🔝▻ Bangalore Call-girls in Women Seeking Men 🔝Bangalore🔝 Esc...
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 

Running GA4 without gtag.js using ssGTM and elbwalker

  • 1. Feed The Beast! Running GA4 without gtag.js using ssGTM + walker.js Markus Baersch
  • 3. gtag.js some issues Source: in client-side setup likely to be blocked by modern browsers Heavy: does is all: GA, Ads, Optimize, Badges and whatever Complexity: Much stuff you might not want Control: let me define what is “engaged”! Consent: Consent Mode is a joke! What to use (when running your own endpoint for more than just GA4)?
  • 4. gtag.js … is odd! Session Handling & More: ● control over “first_visit” and “session_start” ● browser knows what is a conversion, a referral exclusion… ● no way to hide your measurement id ● much “serverside-stuff” has to be handled by the browser
  • 5. ● just “sending hits” is not enough ● GA4 Measurement Protocol is no replacement ● tasks: knowing goals, send created events, track time… ● ssGTM “sendPixelFromBrowser” ● (batching) gtag.js why replacing it is hard
  • 7. Options: ● ga4mp.dev by David Vallejo (-> ssGTM) ● Build your own format and send to own endpoint ● Use existing tools like CDPs, Tealium But: ● Blocking might still be a problem ● Costs? ● Control? Alternatives exist! A perfect fit?
  • 8. GA4MP ✓ allows using own endpoint (✓) creates gtag.js like events ❌similar “control level” to gtag.js if used with GA4 standard clients & tags on ssGTM -> build your own client
  • 9. Feeding GA4 with walker.js
  • 10. Open source: walker.js is a maintained repo on GitHub (Can) have all data you need: there are timestamps, timings, hit numbers… https://github.com/elbwalker/walker.js elbwalker open source event tracker
  • 11. Tagging uses a command / event queue called “elbLayer” (per default) scans DOM for data-elb attributes and builds events and parameters alternatively push events to elbLayer manually via JavaScript can send events to several destinations Destinations are consent sensitive (walker.js can handle consent) https://github.com/elbwalker/sgtm-client-template/tree/main/example
  • 12. events have an “open” structure to contain default attributes, custom attributes, session state, user information, references… or whatever Send example: elb('page view', {id: '/test/virtual/path1', title: 'Virtual Page 1'}, 'click', {some_property: 14} ); Events
  • 13. Session Handling GA4 wants session handling (simple) example… - is only active if consent is present - uses localStorage / sessionStorage - which is only possible on a single domain AND host elb("walker user", {hash: sD.sessionId, device: sD.clientId});
  • 14. Sending Stuff (1): walker.js Destinations Every destination can handle events individually. We use it to send data to a ssGTM endpoint
  • 15. Sending Stuff (2): Some Tips Try beacons, then AJAX, then an image pixel as last fallback …and make sure that your endpoint looks for get parameters. send events incl. consent information to a custom endpoint and resolve consent there
  • 16. Endpoints Use ssGTM and translate walker events to ssGTM event model trigger / fire any tags as if gtag.js had sent the requests or build your own in Node, PHP or whatever and forward events to GA4 - Remember: CNAME is not an option - cloud edge endpoints actually are an option ;)
  • 17. experimental: use worker for receiving walker events forward (few data) to GA4 using GAMP V2 think: add full event to a D1 cloud database ;) Or build your endpoint as - AWS Lambda, - GCP Cloud Function or - Azure Function - in your local cloud / CDN architecture Cloudflare Worker
  • 18. use custom client for walker events basic example and (beta) client template available on Github: github.com/elbwalker/sgtm-client-template -> fork and build what you need (if you like) ssGTM Example
  • 19. send data to GA4 using standard tag enrich server-side dimensions add debug flag for better debugging (kill before publishing ;)) ssGTM Example
  • 20. … or send data (additionally or exclusive) to Piwik PRO, Matomo… no GA consent = no tracking (but still measurement?) -> send directly to BigQuery as event-level raw data ssGTM Example markus-baersch.de/walker2bq
  • 21. Demo sending events from demo HTML page in a browser to ssGTM + forwarding to GA4
  • 22. Final Tipps send base64 coded payload … or even build your own coding (or just do rot13 :)) Keeping your own format makes you (somewhat) independent remember: a tracking server has to handle a lot of stuff. Do not use your website server (unless you have low traffic like me ;))
  • 23. Can you see it?
  • 25. Game On! download and play: Client and Example Code: github.com/elbwalker Order: markus-baersch.de/gtmbook markus-baersch.de/walker2bq

Notes de l'éditeur

  1. Some kind of a “gtag.js - rant”: Is gtag.js really the best way to collect events in the browser? Why is gtag.js in general odd and what are the features that are used to feed GA4 with data? We will take a look at what gtag.js does, what alternative ways for data capturing already exist and how an individual replacement can be built.
  2. https://www.flaticon.com/