In this session, Helena and Christopher from Bergzeit describe two possible solutions to rebuild custom session level channel groups with GA4 raw data, using the dbt framework. The goal of the contained code is to bring the GA4 raw data as close as possible to the session level custom channel groups displayed in the GA4 UI.
If you see shortcomings in the custom channel groups in the GA4 UI, or if you are in need of session level channel groups in your GA4 raw data for reporting or other purposes this repository may be for you. If you use dbt you can use the documented code blocks with some minor adjustments. If you do not use dbt the code may still give you some inspiration on the process. The accompanying code repository can be found here: https://github.com/hellste/dbt_ga4_custom_channelgroups
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
MeasureCamp_Custom GA4 Channel Groups with dbt
1. Custom GA4 Channel Groups
- How to close gaps with dbt
Helena Steurer | Bergzeit
Christopher Gutknecht | Bergzeit
2. About Helena & Chris
Master in Consumer
Science
Bergzeit
Helena
1995 2019 2022
Online store for Mountain gear
14 Countries, 5 languages
2 analysts, 1 Measure Dev, 0,5 Data
Engineer + Teamlead, no PM
(+2,5 performance experts)
Performance
Analytics
Climber
1997 2008 2012 2023
Dad of 2
3. Our Agenda for GA4 Custom Channel Groups
Bergzeit
Next
Steps
3.
Take
aways
4.
Intro
Channel
Groups
1.
Custom
dbt model
demo
2.
5. GA3 Channel Groupings & GA4 Groups Compared
# GA3 (UA) GA4
1 Official Name Default Channel Grouping Custom Channel Groups
2 Maximum amount 50 25
3 Applicable date range From date of change Entire data history
4 Exists in BigQuery Export? Yes Only in GA360 Enterprise Alpha?
5 Session Traffic Source exists? Yes Only manual_*
6 Applicable Dimensions 25 + custom session-scope 6
6. Our Channel Group Structure at Bergzeit
# 💰 Performance
3 Generic Paid Search Google
4 Generic Paid Shopping Google
5 Generic Paid Search Bing
6 Social Paid
7 PSM
8 Affiliate
9 Display
# 🧲 Retention
10 Organic Search Home
11 Brand Paid Search
12 Direct
# 🌱 SEO
1 Organic Search Non-Home
2 Organic Search Magazin
# 📧 CRM
13 Triggermail
14 Newsletter
# Other
15 Hersteller Links
16 Social Organic
17 Branding
18 Referral
7. Our Current Issues with GA4 Channel Groups
UI data not reliable
GA4 Default channel
groups useless
No split by Landing
page
source, medium, campaign
differentiation (Details later)
1. Business Requirements 2. Raw Data Requirements
No channel in raw data
8. The Role of Channel Group(ing)s at Bergzeit
Actual Sales
Metrics
Business
Plan
Target vs
Actual
Model
100%
Backend
Sales
GA Raw
Data
All Cost
Data
GA Sales Plan
Channel Targets
GA Consent
Gap to 100%
Markov
Attributed
Channel Data
11. Cloud agnostic
The dbt vs Dataform debate: Why we chose dbt
Scheduling needed
(dbt cloud, Airflow etc)
Google
Dataform
Tightly integrated into GCP
SQLx, Javascript (ES6), JSON
Free & huge potential
Jinja SQL, YAML, Python
Small ecosystem
Huge ecosystem
12. Choose between dbt Core and Cloud UI
open source easier transition
completely self-managed less technical
13. Our Bergzeit Channel Group Model Repository
Google Ads BigQuery
Data Transfer
Data Sources To Configure
GA4 BigQuery Export
https://github.com/hellste/dbt_ga4_custom_channelgroups
14. A Good Place to Start for GA4 Data Modelling
https://github.com/Velir/dbt-ga4/tree/3.2.1/
16. Differences between GA3 and GA4 Sessions
user_id session_key hit source medium campaign gclid
1 1 pageview google cpc de_perf_brand_aw 9452ß435
94rofjew
user_id session_key hit source medium campaign gclid
1 2 pageview facebook cpc de_aw_meta
user_id session_key hit source medium campaign gclid
1 3 pageview google (organic) (organic)
user_id session_key event_name source medium campaign gclid
1 1 page_view google cpc de_perf_brand_aw 9452ß435
94rofjew
1 1 page_view facebook cpc de_aw_meta
1 1 page_view google (organic) (organic)
Universal Analytics
GA4
🥇One traffic source per session
🌛Session breaks at midnight
🔢 Multiple traffic sources per
session at the event level
🌛Session does not break at
midnight
🔎 No session level traffic source
information
17. Challenges and Approached Solutions
Raw Data Problems in a Nutshell Tried Approaches
Bergzeit specific tracking
limitations
No source, medium, campaign
for Google Ads Traffic (broken
auto-tagging)
No session level traffic
source information
Google Ads Transfer Data Matching
Table (clickstats, campaign)
Custom URL Parameter
Reporting API
19. Our New Ads Transfer-Enhanced Approach
Gads Transfer Data GA4 Raw Data
event_name event_params.key event_params.value.string_value
page_view source google
medium (organic)
gclid af3298759032q33lj
campaign (organic)
session_gadscampaign brand_paid_search
gclid gads_campaign
af3298759032q33lj de_perf_brand_aw
af39tq493ß3ß043jfal nl_pmax_……
Join the campaign name from the Google Ads Transfer Data to the GA4 raw data via the gclid.
21. Let’s Jump into the DEMO Part!
https://github.com/hellste/dbt_ga4_custom_channelgroups
22. The Results: GA4 Raw Data vs GA4 UI Sessions
our final
approach
The chart show, how much the raw data sessions differ from the GA4 UI sessions
For example: In our final approach we assign 1,4% less sessions to the direct channel than the
GA4 UI does.
23. Status Quo: Bergzeit’s Current Rollout of GA4
Juni (6) Juli (7) August (8) September (9)
GA3
- Official source
- Attribution base
- Base for sales plan
Tolerated Transition now! No more data
GA4
Usable, no YoY data
- All events validated
- 70% reports moved
- 80% UI setup complete
- Move to 100% ssGTM
(on June 26th)
- 12 months of data
- All report migrations complete
- UI Setup complete
- Move to GA4 attribution
- Move GA based sales plan with custom channels
> Official "GA4 First"
- 2 months you data
- All GA4 reports migrated
> GA4 Only!
25. Your Takeaways from this Session
GA4’s Channel groups are less powerful - define what you need
You need data modeling to re-create a granular channel structure
Consider source/medium, campaign, gclid and campaign data
Choose dbt or dataform, but don’t solely on BigQuery
Don’t forget to add automated testing!
26. Thanks For Your Time!
Looking Forward to Questions.
Helena Steurer | Bergzeit
Christopher Gutknecht | Bergzeit