Analyzing active users across BigQuery and GA4 might not always have a perfect match due to several reasons. First, Google Analytics and BigQuery measure things slightly differently. GA might filter certain bot traffic or adjust for known issues. Also, understand that The BigQuery export for GA4 only includes raw, hit-level data (not processed) and summarizes them differently.
Secondly, user_pseudo_id in GA isn’t always consistent. For example, when a user clears cookies or accesses your site from a different device, a new user_pseudo_id is created. BigQuery would consider each as a separate user, thus showing a higher number of active users.
Lastly, timezone differences could be a reason. Be sure to check if GA4 and BigQuery are set to the same time zone.
To match Bigquery and GA4 data, adjust your BigQuery logic to filter similar to GA4, be mindful of user_pseudo_id inconsistencies across devices and cookie clears, and confirm data is compared in the same time zone.