This article addresses data discrepancies you might experience when using the Google Analytics 4 Audiences or Google Analytics 4 Events integrations with Contentsquare. It explains why these discrepancies can occur and gives guidance on when further investigation is required.
Understanding data discrepancies
Why am I seeing different numbers in GA4 and Contentsquare?
Data discrepancies between GA4 and Contentsquare can occur. The two platforms use different methodologies, definitions, and data collection approaches. The differences don't indicate a problem, they reflect how each platform measures and calculates data.
Common reasons for differences include:
- Different session definitions
- Tag implementation differences
- Sampling in GA4
- Different metric calculation methods
- Browser and device detection differences
- Timezone and perimeter settings
Should I compare data at the session-level or pageview-level?
Always compare data at the pageview-level, not the session-level. While the definition of pageview is somewhat consistent across analytics tools, definitions of session can vary signficantly between platforms. The main differences at a pageview level usually come from artificial pageviews that may be tracked in one tool but not the other.
When do data discrepancies require further investigation?
You can open a Support ticket to have discrepancies investigated if:
- The data gap observed at the pageview-level is > 10%, and/or
- The data gap observed at the session-level is > 20%
Small discrepancies under these thresholds are expected and normal.
Sessions and user behavior
Why are the session counts different between GA4 and Contentsquare?
GA4 and Contentsquare define sessions differently.
Contentsquare:
- A session ends after 30 minutes of inactivity after the last event/user action
Google Analytics 4:
- By default, a session ends after 30 minutes of inactivity, but this timeout can be customized in your GA4 property settings (from a few seconds to several hours)
- GA4 starts a new session at midnight in the property's timezone, regardless of the 30-minute rule. For example: A session starting at 11:00 PM and ending at 1:00 AM counts as 2 sessions in GA4, but 1 session in Contentsquare
- GA4 starts a new session when the campaign source changes. If a user arrives via one campaign, then leaves and returns via another campaign, GA4 will count this as 2 sessions, while Contentsquare counts it as 1 session
These definition differences will lead to different session counts.
Why is my bounce rate different in GA4 compared to Contentsquare?
GA4 and Contentsquare calculate bounce rate differently.
Contentsquare: Defines bounce rate as the percentage of visits with only one pageview.
Google Analytics 4: A bounce occurs when a session is not an engaged session. In GA4, an engaged session is one that:
- Lasts longer than 10 seconds, OR
- Has a conversion event, OR
- Has at least 2 pageviews or screen views
Because of these differences, the bounce rates won't be the same in each platform.
Why is session duration different?
Session duration is calculated differently.
Contentsquare: Collects all interactions on a page. The end of the session corresponds to the timestamp of the last event sent.
Google Analytics 4: Uses an event-based model. Session duration is calculated based on the time between the first and last engagement event in a session. Time spent depends on which engagement events are triggered.
These different methods result in different session duration values.
Sampling and data availability
How does data sampling affect my GA4 integration?
When GA4 samples data, you won't get absolutely precise figures for your GA4 audiences in Contentsquare. The integration is still valuable for understanding trends and analyzing percentage-based metrics like bounce rate, conversion rate, and scroll rate.
To reduce GA4 sampling:
- Create smaller, more focused properties in GA4
- Use date ranges with fewer events
- Consider upgrading to GA4 360 if sampling is a persistent issue
How fresh is the data from my GA4 integration?
GA4 data freshness: 24 hours
Synchronization frequency: Once a day (12 hours after the start of the day in your timezone)
Note: Sometimes GA4 reports aren't ready after 12 hours. When this happens, Contentsquare retries the query every 4 hours until the full data is received.
Tag implementation and data collection
Why might the Contentsquare tag miss some data that GA4 captures?
The Contentsquare tag runs on the client side, so factors outside our control can affect data collection.
- Adblockers: Browser extensions or privacy tools that block tracking scripts
- Network issues: Connection problems prevent the tag from loading
- Incomplete deployment: The Contentsquare tag might not be on all pages (for example: some subdomains or 404 pages) while GA4 is loading across the entire site
- Cookie consent: Cookie policies that require end-user consent before the tag loads
Any of these factors can create discrepancies between what Contentsquare and GA4 collect.
Can tag loading order affect data discrepancies?
Yes, the order and timing of how tags load can create small discrepancies.
- Loading sequence: If the Contentsquare tag loads before or after the GA4 tag, even a few seconds of difference can create a data gap
- Tag type: Synchronous versus asynchronous tags load differently and may capture data at slightly different moments
- Cookie acceptance timing: If one tag fires before cookie acceptance while the other fires after, this creates discrepancies. Ideally, both tags should fire at the same time in relation to cookie consent
Metrics and calculations
Why are my transaction counts different?
Transaction counting differs between platforms.
Contentsquare: Counts the number of visits with a transaction at the session-level
Google Analytics 4: Counts the number of transactions at the event-level
For example: If a user completes 3 transactions in one session:
- Contentsquare counts this as 1 visit with transactions
- GA4 counts this as 3 transactions
Why is revenue different between GA4 and Contentsquare?
Revenue discrepancies can occur due to:
Currency conversion
- Contentsquare: A transaction made in a different currency than the one configured in Contentsquare is not automatically converted
- GA4: Handles currency conversion based on your property settings
Transaction counting
- Contentsquare counts visits with transactions (session-level) while GA4 counts individual transaction events (event-level)
Why is page load time different?
Load time is measured differently.
Contentsquare: Calculates load time from when the DOM first becomes interactive
Google Analytics 4: Includes the entire timeline for page load, encompassing steps beyond DOM ready
Perimeter and configuration
How can timezone settings affect my data?
Different timezone settings can impact daily data, especially transaction counts.
Contentsquare: Data is saved in UTC time
Google Analytics 4: Uses the timezone configured in your property settings
Impact: The same transaction might be attributed to different dates in each platform, depending on when it occurred relative to midnight in each timezone.
Can IP filters or bot exclusion cause discrepancies?
Yes, if your filter settings differ between platforms.
- IP address filters: If you're filtering out internal traffic in one platform but not the other, this creates discrepancies
- Bot exclusion: GA4 and Contentsquare use different bot detection methods and exclusion rules. Bots filtered out in one platform might be counted in the other
GA4-specific questions
Does my GA4 property type (Standard versus 360) affect the integration?
Yes, GA4 360 provides less sampling and faster data freshness, which can result in more accurate data synchronization with Contentsquare.