GA4 Session-Scoped Traffic Dimensions to BigQuery Mapping
Last Updated: December 28, 2024
Here’s a breakdown of GA4 Session-Scoped Traffic Dimensions and their corresponding BigQuery fields:
GA4 Session-Scoped Traffic Dimensions What it is BigQuery Field Name (Formula) Session campaign The campaign associated with the beginning of a session. SELECT traffic_source.campaign AS session_campaign FROM your_dataset.your_table_name
Session campaign ID The ID of the campaign associated with the start of a session. SELECT traffic_source.campaign_id AS session_campaign_id FROM your_dataset.your_table_name
Session default channel group The default channel group linked to the start of a session. SELECT CASE WHEN traffic_source.medium = 'organic' THEN 'Organic Search' WHEN traffic_source.medium = 'none' THEN 'Direct' ELSE 'Other' END AS session_default_channel_group FROM your_dataset.your_table_name
Session manual ad content The ad content tied to the session’s start. SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'ad_content') AS session_manual_ad_content FROM your_dataset.your_table_name
Session manual campaign ID The ID of the campaign associated with the session’s start. SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'campaign_id') AS session_manual_campaign_id FROM your_dataset.your_table_name
Session manual campaign name The campaign name associated with the session’s start. SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'campaign') AS session_manual_campaign_name FROM your_dataset.your_table_name
Session manual medium The medium associated with the session’s start. SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'medium') AS session_manual_medium FROM your_dataset.your_table_name
Session manual source The source tied to the session’s start. SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'source') AS session_manual_source FROM your_dataset.your_table_name
Session manual source / medium The source and medium associated with the session’s start. SELECT CONCAT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'source'), ' / ', (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'medium')) AS session_manual_source_medium FROM your_dataset.your_table_name
Session manual source platform The platform responsible for the session’s start. SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'source_platform') AS session_manual_source_platform FROM your_dataset.your_table_name
Session manual term The term associated with the session’s start. SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'term') AS session_manual_term FROM your_dataset.your_table_name
Session medium The medium associated with the session’s start. SELECT traffic_source.medium AS session_medium FROM your_dataset.your_table_name
Adjust the dataset and table references (your_dataset.your_table_name
) based on your specific setup.
Points to consider
BigQuery exports of GA4 data primarily handle traffic dimensions at the user and event levels rather than session levels.
For now, if you need to analyze data at the session level in BigQuery, you might consider the following:
Custom Implementations: Tagging each event with session-specific parameters using Google Tag Manager. These parameters could include session ID, timestamp, or any relevant details about the session.
Using Start of Session Events: Identifying the start of new sessions using ‘session_start’ events and associating custom parameters with these events to simulate session-scoped dimensions. This method is limited to data captured at the session start. You won’t have information about user behaviour throughout the session.
Session manual ad content, session_manual_campaign_name, session_manual_source, session_manual_medium, session_manual_source_medium, session_manual_term:
These fields all utilize UNNEST to extract values from event_params.
This approach is accurate, but remember that these parameters might not be present in every session event within GA4.
Their presence depends on whether the specific details (ad content, campaign name, etc.) were included in the initial user acquisition event.
Related Article: How to Analyze Peak Website Visits in GA4 BigQuery.
Last Updated: December 28, 2024
Here’s a breakdown of GA4 Session-Scoped Traffic Dimensions and their corresponding BigQuery fields:
GA4 Session-Scoped Traffic Dimensions | What it is | BigQuery Field Name (Formula) |
---|---|---|
Session campaign | The campaign associated with the beginning of a session. | SELECT traffic_source.campaign AS session_campaign FROM your_dataset.your_table_name |
Session campaign ID | The ID of the campaign associated with the start of a session. | SELECT traffic_source.campaign_id AS session_campaign_id FROM your_dataset.your_table_name |
Session default channel group | The default channel group linked to the start of a session. | SELECT CASE WHEN traffic_source.medium = 'organic' THEN 'Organic Search' WHEN traffic_source.medium = 'none' THEN 'Direct' ELSE 'Other' END AS session_default_channel_group FROM your_dataset.your_table_name |
Session manual ad content | The ad content tied to the session’s start. | SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'ad_content') AS session_manual_ad_content FROM your_dataset.your_table_name |
Session manual campaign ID | The ID of the campaign associated with the session’s start. | SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'campaign_id') AS session_manual_campaign_id FROM your_dataset.your_table_name |
Session manual campaign name | The campaign name associated with the session’s start. | SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'campaign') AS session_manual_campaign_name FROM your_dataset.your_table_name |
Session manual medium | The medium associated with the session’s start. | SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'medium') AS session_manual_medium FROM your_dataset.your_table_name |
Session manual source | The source tied to the session’s start. | SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'source') AS session_manual_source FROM your_dataset.your_table_name |
Session manual source / medium | The source and medium associated with the session’s start. | SELECT CONCAT((SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'source'), ' / ', (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'medium')) AS session_manual_source_medium FROM your_dataset.your_table_name |
Session manual source platform | The platform responsible for the session’s start. | SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'source_platform') AS session_manual_source_platform FROM your_dataset.your_table_name |
Session manual term | The term associated with the session’s start. | SELECT (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'term') AS session_manual_term FROM your_dataset.your_table_name |
Session medium | The medium associated with the session’s start. | SELECT traffic_source.medium AS session_medium FROM your_dataset.your_table_name |
Adjust the dataset and table references (your_dataset.your_table_name
) based on your specific setup.
Points to consider
BigQuery exports of GA4 data primarily handle traffic dimensions at the user and event levels rather than session levels.
For now, if you need to analyze data at the session level in BigQuery, you might consider the following:
Custom Implementations: Tagging each event with session-specific parameters using Google Tag Manager. These parameters could include session ID, timestamp, or any relevant details about the session.
Using Start of Session Events: Identifying the start of new sessions using ‘session_start’ events and associating custom parameters with these events to simulate session-scoped dimensions. This method is limited to data captured at the session start. You won’t have information about user behaviour throughout the session.
Session manual ad content, session_manual_campaign_name, session_manual_source, session_manual_medium, session_manual_source_medium, session_manual_term:
These fields all utilize UNNEST to extract values from event_params.
This approach is accurate, but remember that these parameters might not be present in every session event within GA4.
Their presence depends on whether the specific details (ad content, campaign name, etc.) were included in the initial user acquisition event.
Related Article: How to Analyze Peak Website Visits in GA4 BigQuery.
My best selling books on Digital Analytics and Conversion Optimization
Maths and Stats for Web Analytics and Conversion Optimization
This expert guide will teach you how to leverage the knowledge of maths and statistics in order to accurately interpret data and take actions, which can quickly improve the bottom-line of your online business.
Master the Essentials of Email Marketing Analytics
This book focuses solely on the ‘analytics’ that power your email marketing optimization program and will help you dramatically reduce your cost per acquisition and increase marketing ROI by tracking the performance of the various KPIs and metrics used for email marketing.
Attribution Modelling in Google Analytics and BeyondSECOND EDITION OUT NOW!
Attribution modelling is the process of determining the most effective marketing channels for investment. This book has been written to help you implement attribution modelling. It will teach you how to leverage the knowledge of attribution modelling in order to allocate marketing budget and understand buying behaviour.
Attribution Modelling in Google Ads and Facebook
This book has been written to help you implement attribution modelling in Google Ads (Google AdWords) and Facebook. It will teach you, how to leverage the knowledge of attribution modelling in order to understand the customer purchasing journey and determine the most effective marketing channels for investment.