We are facing an issue while analyzing GA4 data exported to Google BigQuery, where the total users count does not match when segmented by marketing channels. We have already verified deduplication using user_pseudo_id and checked date logic in our queries. We would like to understand whether this behavior is expected due to GA4 attribution or channel grouping logic, and what the recommended approach is to minimize this data discrepancy when reporting channel-wise users from BigQuery.
Hi @Sanchit_Jaswal Yes, this is expected behavior and a very common source of confusion when using GA4 data exported to BigQuery. The total users metric in GA4 does not necessarily match the sum of users segmented by marketing channel because the GA4 interface applies attribution logic, identity stitching, and reporting-layer processing that are not fully replicated in the raw BigQuery export. In BigQuery you are working with event-level data, and when you group by source, medium, or channel, the same user can appear in multiple channels within the selected date range, which leads to discrepancies. Additionally, differences between user-scoped fields such as traffic_source and session-scoped fields such as session_traffic_source can significantly affect results depending on how you structure the query. To reduce discrepancies, clearly define whether you are reporting first-touch users or session-based users, consistently use the appropriate attribution scope, count distinct user_pseudo_id over a fixed date range, and avoid mixing attribution levels in the same aggregation. If exact alignment with the GA4 UI is required, you would need to replicate the attribution model and identity resolution logic used in the reporting interface, but in practice it is more reliable to document your attribution definition and maintain consistency in BigQuery reporting.