Collect raw, non-sampled session data from your website to Google BigQuery instead of using standard Google Analytics session data.
So, let's see how it works.
Sessions are being formed by the same algorithm used by Google Analytics. However, they are being calculated by the OWOX BI algorithm based on the
timestamp parameters from the last user interaction.
Session expiration triggers
A session is closed and a new session begins:
- at the end of each day (12 AM) in the linked Google Analytics view timezone;
- when a user gets to the website from another domain listed in the referral exclusion list;
- after a predefined period of inactivity (the default timeout of 30 minutes can be changed in the OWOX BI interface);
- when a user returns to your website via another ad that contains utm tags different from the first hit in the session.
Filters and exceptions
- Sessions will contain raw unfiltered data. That's why we recommend that you select an unfiltered Google Analytics view when setting up data collection to Google BigQuery.
- By default, your domain is automatically added to the referral exclusion list: as the result, traffic from subdomains won't appear in the reports.
User ID data collection
All User ID data is being sent in the &uid parameter — you don't need to create custom dimensions. Using the OWOX BI algorithm, you also can and update historical data on the collected User IDs. Read more in Collecting and updating User ID data.
Identifying traffic sources
The OWOX BI algorithm attributes sessions to traffic sources by applying the Last Non-Direct Click attribution model, the same as in Google Analytics.
The Last Non-Direct model ignores all direct traffic and attributes sessions to the last non-direct traffic mediums: referral, cpc, organic, and others.
To track the actual traffic source, we have added the
trafficSource.isTrueDirect field of your owoxbi_sessions table. The field indicates if the source of the session started as a direct site visit, or is it follows the session generated by an ad source.
To determine the session number (visitNumber), OWOX BI counts all the sessions of a specific clientId over the last six months from the session collection date. This can be expressed by the formula:
visitNumber of a session = (total number of sessions of a specific clientId over the last six months) + 1
Let’s imagine we have the following statistics for a specific clientId:
May 18 — one session
May 19 — one session
May 20 — one session
November 16 — one session
November 17 — two sessions
- When collecting sessions for November 16, OWOX BI will count sessions of the clientId from May 18 to November 16 (six months from the session collection date). According to the given statistics, the clientId made 3 sessions before November 16. Therefore, the session on November 16 will be assigned the visitNumber=4.
- When collecting sessions for November 17, OWOX BI will count sessions of the clientId from May 19 to November 17 (six months from the session collection date). According to the given statistics, the clientId made 3 sessions before November 17. And since on November 17 two more sessions were recorded, the first of them will be assigned visitNumber=4, the second — visitNumber=5.
Google Ads auto-tagging
In the cases of Google Ads auto-tagging, the trafficSource. fields, providing information about the traffic source from which the session originated, are retrieved from AdWords data tables uploaded to Google BigQuery using the Google Ads API.
There are several ways to set up automatic uploads of Google Ads reporting data into Google BigQuery. For more information about how to collect Google Ads data in BigQuery, read our article on it.
Please note: Make sure you have configured automatic uploads of Google Ads data into Google BigQuery. Otherwise, the auto-tagging won't be available.
Session calculation when sending data via Measurement Protocol
Hits sent via Measurement Protocol with the value of the &qt parameter up to 30 days will retrospectively get to the session data table (bi_sessions) for the corresponding date and will be assigned to the correct session.
The hits will get to a hit data table in BigQuery regardless of the &qt parameter's value.
If the &qt parameter is not specified and the hit doesn't fall into the closest session timeout for a specific user, then this hit will create a new session in the "owoxbi_sessions" table.
Note Sending the &qt parameter with a value of more than 4 hours will cause the hit to not get to Google Analytics. This will lead to data discrepancy: OWOX BI will get more data than Google Analytics.
Set the &qt parameter value to more than 4 hours only if you need the events sent via Measurement Protocol to get to the sessions during which they've happened.
Data collection and update times
The first session data table will be available within 48 hours after the data collection setup. The following tables will be formed within 12 hours after the end of the day according to your Google Analytics view time zone.
|Type of data
|When the data is updated in session data tables in Google BigQuery
All session data computed based on hit data tables, except cost data (adCost, attributedAdCost) and Google Ads campaigns data with auto-tagging (gclid).
Daily update within 12 hours after the start of the next day.
Cost data (adCost, attributedAdCost). This includes all advertising cost data imported into Google Analytics.
Daily update of the session data table collected during the previous day:
Cost data (adCost, attributedAdCost). This includes all advertising cost data imported into Google BigQuery via the connected Ad Service → Google BigQuery pipelines.
Сhanges in cost data will be reflected in the adCost and attributed AdCost fields within 6 hours after this data is updated in the CostData_ tables.
Google Ads data about campaigns with auto-tagging enabled (gclid values).
Two checking periods a day for the session data table collected during the previous day: after 6 a.m. and after 6 p.m.
See the structure of the session data table in this article.