SlideShare a Scribd company logo
Markus Baersch
Replacing gtag.js with walker.js
Why? How?
Demo: Running GA4 Using ssGTM
Why Not GTAG.JS?
(yes, same old song - but only a very brief summary. And a new color! Yay!)
gtag.js
some issues
(shortened version)
Source: likely to be blocked
Heavy: UA, GA4, GAds, Optimize,
partner badges + stuff
Not a “Stream To Rule Them All”:
no data without consent.
Consent Mode is not an option!
gtag.js
… is odd!
(also shortened version)
GA4 Session Handling & More:
● “first_visit” and “session_start”
● Conversions
● referral exclusion
● public measurement id
Options:
● ga4mp.dev by David Vallejo (->
ssGTM)
● Build your own format and send
to own endpoint Or use existing
tools like CDPs, Tealium (see
slides from MC Berlin 2022)
But:
● Blocking might still be a problem
● Costs?
● Control?
Alternatives exist!
perfect fit?
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 Basics
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
Sending Stuff: walker.js Destinations
Every destination can handle events individually. We use it to send data to a ssGTM endpoint
GA4 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
- Can be part of destination
init block (see example code
for ssGTM tag)
elb("walker user",
{hash: sD.sessionId,
device: sD.clientId});
Tagging: GTM Tag Template
github.com/elbwalker/gtm-tag-template
Custom Templates for walker,js
Configuration
and walker,js Events to migrate
GTM setups
- destinations
- GA4 session data
- ecom item conversion
- use your existing variables
Endpoints
● use ssGTM and translate walker events to ssGTM event model
○ trigger / fire any tags as if gtag.js did generate all requests
● or build your own in Node, PHP or whatever and forward events to
GA4
○ cloud edge endpoints actually are an option ;)
● Remember: CNAME is not an option to avoid browser tracking
protection issues
ssGTM Example
use custom client for walker events
basic example and client template
available on Github:
github.com/elbwalker/
sgtm-client-template
-> fork and build what you need
(contribute if you like!)
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
exclusively) to Piwik
PRO, Matomo…
… or send directly to
BigQuery as
event-level raw data
ssGTM Example
Demo
sending events…
… from client-side GTM…
-> to ssGTM
-> to GA4
Medium article:
mbaersch.medium.com/
A-better-solution-for-ga4-
Data-capturing-replacing-
gtag-js-with-walker-js-
2b9fd291d919
No ssGTM? Use: worker for walker events
forward (few data) to GA4 using GAMP V2
think: add event to D1 cloud database ;)
Or build your endpoint as
- AWS Lambda
- GCP Cloud Function
- Azure Function
Cloud Functions & Workers
Can you see it?
Done!
Questions?
Game On!
download and play:
Walker | GTM Tags | Client | BQ:
github.com/elbwalker
Order:
markus-baersch.de/gtmbook

More Related Content

Similar to Replacing gtag.js with walker.js

Info gdal 20150915
Info gdal 20150915Info gdal 20150915
Info gdal 20150915
GeoMedeelel
 
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-13Fred Sauer
 
GTM container positions: a summary of best & worst
GTM container positions: a summary of best & worstGTM container positions: a summary of best & worst
GTM container positions: a summary of best & worst
Phil Pearce
 
Troubleshooting real production problems
Troubleshooting real production problemsTroubleshooting real production problems
Troubleshooting real production problems
Tier1 app
 
All about google tag manager - Basics
All about google tag manager - Basics All about google tag manager - Basics
All about google tag manager - Basics
Rob Levish
 
(Live) build and run golang web server on android.avi
(Live) build and run golang web server on android.avi(Live) build and run golang web server on android.avi
(Live) build and run golang web server on android.avi
SeongJae Park
 
Andriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tipsAndriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tips
OWASP Kyiv
 
Grooscript greach
Grooscript greachGrooscript greach
Grooscript greach
Jorge Franco Leza
 
Anatomy of ROCgdb presentation at gcc cauldron 2022
Anatomy of ROCgdb presentation at gcc cauldron 2022Anatomy of ROCgdb presentation at gcc cauldron 2022
Anatomy of ROCgdb presentation at gcc cauldron 2022
ssuser866937
 
Gopher in performance_tales_ms_go_cracow
Gopher in performance_tales_ms_go_cracowGopher in performance_tales_ms_go_cracow
Gopher in performance_tales_ms_go_cracow
MateuszSzczyrzyca
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails intro
Miguel Pastor
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)Sejong Park
 
Web Performance Madness - brightonSEO 2018
Web Performance Madness - brightonSEO 2018Web Performance Madness - brightonSEO 2018
Web Performance Madness - brightonSEO 2018
Bastian Grimm
 
Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
Peter Ledbrook
 
Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.
gjdevos
 
Security of go modules and vulnerability scanning in GoCenter
Security of go modules and vulnerability scanning in GoCenterSecurity of go modules and vulnerability scanning in GoCenter
Security of go modules and vulnerability scanning in GoCenter
Deep Datta
 
Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史
Simon Su
 
Google app engine (gae) 演進史
Google app engine (gae) 演進史Google app engine (gae) 演進史
Google app engine (gae) 演進史
KAI CHU CHUNG
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingAnil Kumar Pugalia
 
Go Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii ShapovalGo Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii Shapoval
GlobalLogic Ukraine
 

Similar to Replacing gtag.js with walker.js (20)

Info gdal 20150915
Info gdal 20150915Info gdal 20150915
Info gdal 20150915
 
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
 
GTM container positions: a summary of best & worst
GTM container positions: a summary of best & worstGTM container positions: a summary of best & worst
GTM container positions: a summary of best & worst
 
Troubleshooting real production problems
Troubleshooting real production problemsTroubleshooting real production problems
Troubleshooting real production problems
 
All about google tag manager - Basics
All about google tag manager - Basics All about google tag manager - Basics
All about google tag manager - Basics
 
(Live) build and run golang web server on android.avi
(Live) build and run golang web server on android.avi(Live) build and run golang web server on android.avi
(Live) build and run golang web server on android.avi
 
Andriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tipsAndriy Shalaenko - GO security tips
Andriy Shalaenko - GO security tips
 
Grooscript greach
Grooscript greachGrooscript greach
Grooscript greach
 
Anatomy of ROCgdb presentation at gcc cauldron 2022
Anatomy of ROCgdb presentation at gcc cauldron 2022Anatomy of ROCgdb presentation at gcc cauldron 2022
Anatomy of ROCgdb presentation at gcc cauldron 2022
 
Gopher in performance_tales_ms_go_cracow
Gopher in performance_tales_ms_go_cracowGopher in performance_tales_ms_go_cracow
Gopher in performance_tales_ms_go_cracow
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails intro
 
Gradle(the innovation continues)
Gradle(the innovation continues)Gradle(the innovation continues)
Gradle(the innovation continues)
 
Web Performance Madness - brightonSEO 2018
Web Performance Madness - brightonSEO 2018Web Performance Madness - brightonSEO 2018
Web Performance Madness - brightonSEO 2018
 
Why Gradle?
Why Gradle?Why Gradle?
Why Gradle?
 
Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.Serverless? How (not) to develop, deploy and operate serverless applications.
Serverless? How (not) to develop, deploy and operate serverless applications.
 
Security of go modules and vulnerability scanning in GoCenter
Security of go modules and vulnerability scanning in GoCenterSecurity of go modules and vulnerability scanning in GoCenter
Security of go modules and vulnerability scanning in GoCenter
 
Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史Google App Engine (GAE) 演進史
Google App Engine (GAE) 演進史
 
Google app engine (gae) 演進史
Google app engine (gae) 演進史Google app engine (gae) 演進史
Google app engine (gae) 演進史
 
Linux User Space Debugging & Profiling
Linux User Space Debugging & ProfilingLinux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
 
Go Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii ShapovalGo Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii Shapoval
 

More from 📊 Markus Baersch

GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]
📊 Markus Baersch
 
Consent & Tag Management - die ultimative Checkliste
Consent & Tag Management - die ultimative ChecklisteConsent & Tag Management - die ultimative Checkliste
Consent & Tag Management - die ultimative Checkliste
📊 Markus Baersch
 
Conversion Tracking Optionen im Vergleich
Conversion Tracking Optionen im VergleichConversion Tracking Optionen im Vergleich
Conversion Tracking Optionen im Vergleich
📊 Markus Baersch
 
First Party Conversion Tracking [SEAcamp]
First Party Conversion Tracking [SEAcamp]First Party Conversion Tracking [SEAcamp]
First Party Conversion Tracking [SEAcamp]
📊 Markus Baersch
 
Ist Google Analytics noch zu retten?
Ist Google Analytics noch zu retten?Ist Google Analytics noch zu retten?
Ist Google Analytics noch zu retten?
📊 Markus Baersch
 
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]
📊 Markus Baersch
 
Google Analytics 4 - OMT
Google Analytics 4 - OMTGoogle Analytics 4 - OMT
Google Analytics 4 - OMT
📊 Markus Baersch
 
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
📊 Markus Baersch
 
Google Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...
Google Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...Google Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...
Google Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...
📊 Markus Baersch
 
Google Tag Manager Templates
Google Tag Manager TemplatesGoogle Tag Manager Templates
Google Tag Manager Templates
📊 Markus Baersch
 
Tracking ist nicht kaputt!
Tracking ist nicht kaputt!Tracking ist nicht kaputt!
Tracking ist nicht kaputt!
📊 Markus Baersch
 
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
📊 Markus Baersch
 
Google Consent Mode / MC Europe 2021
Google Consent Mode / MC Europe 2021Google Consent Mode / MC Europe 2021
Google Consent Mode / MC Europe 2021
📊 Markus Baersch
 
First Party Data Collection
First Party Data CollectionFirst Party Data Collection
First Party Data Collection
📊 Markus Baersch
 
Tracking-Herausforderungen 2020
Tracking-Herausforderungen 2020Tracking-Herausforderungen 2020
Tracking-Herausforderungen 2020
📊 Markus Baersch
 
Analytics Hacks II SEAcamp 2019
Analytics Hacks II SEAcamp 2019Analytics Hacks II SEAcamp 2019
Analytics Hacks II SEAcamp 2019
📊 Markus Baersch
 
Rendering Bots erkennen
Rendering Bots erkennen Rendering Bots erkennen
Rendering Bots erkennen
📊 Markus Baersch
 
Browser vs. Tracking
Browser vs. TrackingBrowser vs. Tracking
Browser vs. Tracking
📊 Markus Baersch
 
Analytics Tippgewitter
Analytics TippgewitterAnalytics Tippgewitter
Analytics Tippgewitter
📊 Markus Baersch
 
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...
📊 Markus Baersch
 

More from 📊 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
 
Conversion Tracking Optionen im Vergleich
Conversion Tracking Optionen im VergleichConversion Tracking Optionen im Vergleich
Conversion Tracking Optionen im Vergleich
 
First Party Conversion Tracking [SEAcamp]
First Party Conversion Tracking [SEAcamp]First Party Conversion Tracking [SEAcamp]
First Party Conversion Tracking [SEAcamp]
 
Ist Google Analytics noch zu retten?
Ist Google Analytics noch zu retten?Ist Google Analytics noch zu retten?
Ist Google Analytics noch zu retten?
 
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 Analytics 4 - OMT
Google Analytics 4 - OMTGoogle Analytics 4 - OMT
Google Analytics 4 - OMT
 
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 Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...
Google Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...Google Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...
Google Analytics 4 : 10 Stolperfallen, 10 Verbesserungen + 5 Tipps [Campixx 2...
 
Google Tag Manager Templates
Google Tag Manager TemplatesGoogle Tag Manager Templates
Google Tag Manager Templates
 
Tracking ist nicht kaputt!
Tracking ist nicht kaputt!Tracking ist nicht kaputt!
Tracking ist nicht kaputt!
 
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
 
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...
 

Recently uploaded

原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样
原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样
原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样
u86oixdj
 
Machine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptxMachine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptx
balafet
 
一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理
一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理
一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理
mzpolocfi
 
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
slg6lamcq
 
【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】
【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】
【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】
NABLAS株式会社
 
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
ahzuo
 
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
ahzuo
 
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
g4dpvqap0
 
一比一原版(UofS毕业证书)萨省大学毕业证如何办理
一比一原版(UofS毕业证书)萨省大学毕业证如何办理一比一原版(UofS毕业证书)萨省大学毕业证如何办理
一比一原版(UofS毕业证书)萨省大学毕业证如何办理
v3tuleee
 
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
axoqas
 
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
slg6lamcq
 
My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.
rwarrenll
 
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
oz8q3jxlp
 
Nanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdfNanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdf
eddie19851
 
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdf
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdfEnhanced Enterprise Intelligence with your personal AI Data Copilot.pdf
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdf
GetInData
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
Subhajit Sahu
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
axoqas
 
Influence of Marketing Strategy and Market Competition on Business Plan
Influence of Marketing Strategy and Market Competition on Business PlanInfluence of Marketing Strategy and Market Competition on Business Plan
Influence of Marketing Strategy and Market Competition on Business Plan
jerlynmaetalle
 
Everything you wanted to know about LIHTC
Everything you wanted to know about LIHTCEverything you wanted to know about LIHTC
Everything you wanted to know about LIHTC
Roger Valdez
 
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
74nqk8xf
 

Recently uploaded (20)

原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样
原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样
原版制作(swinburne毕业证书)斯威本科技大学毕业证毕业完成信一模一样
 
Machine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptxMachine learning and optimization techniques for electrical drives.pptx
Machine learning and optimization techniques for electrical drives.pptx
 
一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理
一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理
一比一原版(Dalhousie毕业证书)达尔豪斯大学毕业证如何办理
 
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
一比一原版(Adelaide毕业证书)阿德莱德大学毕业证如何办理
 
【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】
【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】
【社内勉強会資料_Octo: An Open-Source Generalist Robot Policy】
 
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
一比一原版(CBU毕业证)卡普顿大学毕业证如何办理
 
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
一比一原版(UIUC毕业证)伊利诺伊大学|厄巴纳-香槟分校毕业证如何办理
 
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
一比一原版(爱大毕业证书)爱丁堡大学毕业证如何办理
 
一比一原版(UofS毕业证书)萨省大学毕业证如何办理
一比一原版(UofS毕业证书)萨省大学毕业证如何办理一比一原版(UofS毕业证书)萨省大学毕业证如何办理
一比一原版(UofS毕业证书)萨省大学毕业证如何办理
 
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
做(mqu毕业证书)麦考瑞大学毕业证硕士文凭证书学费发票原版一模一样
 
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
一比一原版(UniSA毕业证书)南澳大学毕业证如何办理
 
My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.My burning issue is homelessness K.C.M.O.
My burning issue is homelessness K.C.M.O.
 
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
一比一原版(Deakin毕业证书)迪肯大学毕业证如何办理
 
Nanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdfNanandann Nilekani's ppt On India's .pdf
Nanandann Nilekani's ppt On India's .pdf
 
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdf
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdfEnhanced Enterprise Intelligence with your personal AI Data Copilot.pdf
Enhanced Enterprise Intelligence with your personal AI Data Copilot.pdf
 
Adjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTESAdjusting primitives for graph : SHORT REPORT / NOTES
Adjusting primitives for graph : SHORT REPORT / NOTES
 
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
哪里卖(usq毕业证书)南昆士兰大学毕业证研究生文凭证书托福证书原版一模一样
 
Influence of Marketing Strategy and Market Competition on Business Plan
Influence of Marketing Strategy and Market Competition on Business PlanInfluence of Marketing Strategy and Market Competition on Business Plan
Influence of Marketing Strategy and Market Competition on Business Plan
 
Everything you wanted to know about LIHTC
Everything you wanted to know about LIHTCEverything you wanted to know about LIHTC
Everything you wanted to know about LIHTC
 
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
一比一原版(Coventry毕业证书)考文垂大学毕业证如何办理
 

Replacing gtag.js with walker.js

  • 1. Markus Baersch Replacing gtag.js with walker.js Why? How? Demo: Running GA4 Using ssGTM
  • 2.
  • 3. Why Not GTAG.JS? (yes, same old song - but only a very brief summary. And a new color! Yay!)
  • 4. gtag.js some issues (shortened version) Source: likely to be blocked Heavy: UA, GA4, GAds, Optimize, partner badges + stuff Not a “Stream To Rule Them All”: no data without consent. Consent Mode is not an option!
  • 5. gtag.js … is odd! (also shortened version) GA4 Session Handling & More: ● “first_visit” and “session_start” ● Conversions ● referral exclusion ● public measurement id
  • 6. Options: ● ga4mp.dev by David Vallejo (-> ssGTM) ● Build your own format and send to own endpoint Or use existing tools like CDPs, Tealium (see slides from MC Berlin 2022) But: ● Blocking might still be a problem ● Costs? ● Control? Alternatives exist! perfect fit?
  • 7. Feeding GA4 with walker.js
  • 8. 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
  • 9. Tagging Basics 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
  • 10. 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
  • 11. Sending Stuff: walker.js Destinations Every destination can handle events individually. We use it to send data to a ssGTM endpoint
  • 12. GA4 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 - Can be part of destination init block (see example code for ssGTM tag) elb("walker user", {hash: sD.sessionId, device: sD.clientId});
  • 13. Tagging: GTM Tag Template github.com/elbwalker/gtm-tag-template Custom Templates for walker,js Configuration and walker,js Events to migrate GTM setups - destinations - GA4 session data - ecom item conversion - use your existing variables
  • 14. Endpoints ● use ssGTM and translate walker events to ssGTM event model ○ trigger / fire any tags as if gtag.js did generate all requests ● or build your own in Node, PHP or whatever and forward events to GA4 ○ cloud edge endpoints actually are an option ;) ● Remember: CNAME is not an option to avoid browser tracking protection issues
  • 15. ssGTM Example use custom client for walker events basic example and client template available on Github: github.com/elbwalker/ sgtm-client-template -> fork and build what you need (contribute if you like!)
  • 16. send data to GA4 using standard tag enrich server-side dimensions add debug flag for better debugging (kill before publishing ;)) ssGTM Example
  • 17. … or send data (additionally or exclusively) to Piwik PRO, Matomo… … or send directly to BigQuery as event-level raw data ssGTM Example
  • 18. Demo sending events… … from client-side GTM… -> to ssGTM -> to GA4 Medium article: mbaersch.medium.com/ A-better-solution-for-ga4- Data-capturing-replacing- gtag-js-with-walker-js- 2b9fd291d919
  • 19. No ssGTM? Use: worker for walker events forward (few data) to GA4 using GAMP V2 think: add event to D1 cloud database ;) Or build your endpoint as - AWS Lambda - GCP Cloud Function - Azure Function Cloud Functions & Workers
  • 20. Can you see it?
  • 22. Game On! download and play: Walker | GTM Tags | Client | BQ: github.com/elbwalker Order: markus-baersch.de/gtmbook