In digital analytics, many of us trust our tools to collect data accurately and report it faithfully. But as I've emphasized many times in my previous posts, true confidence comes not from trust, but from verification. And for Google Analytics 4, the ultimate godlike tool is BigQuery.
The Discovery: A Paid Click Posing as Direct Traffic
Recently, I stumbled upon a critical misattribution issue for a client that was completely invisible in the standard GA4 interface. It was quietly eroding the perceived value of our Google Ads campaigns, and it's a problem that could be affecting you right now.
Nowadays, Google Sign-in and Social media sign-in functionality are increasingly being implemented on websites. Which is great, as we motivate the user to log in and get their user_id as soon as possible. But there is a problem.
The investigation began with a specific user flow test. We wanted to analyze the journey for users who arrive from a Google Ad and then use the "Sign in with Google" functionality on our client's website.
I simulated the exact scenario: I clicked a paid ad, landed on the site (noting the gclid parameter in the URL), browsed a bit, and clicked on a Google sign-in functionality. Everything on the front end worked without issues.
The story changed when I went into BigQuery the next day to inspect the raw event data:
The page_location (URL) field clearly shows the gclid from my click, confirming the visit originated from a Google Ad. Yet, in that very same row, the session_traffic_source_last_click record is labeled as "Direct" for the component_click event, which is an important micro conversion event followed by a key event later.
It was a fundamental misrepresentation of what happened on the frontend. At least we confirmed that the user_id is implemented correctly, and the consent mode v2 is present in every event from that session.
Why BigQuery Is the Only Place to Find The Truth
This misattribution likely happens due to the redirect mechanism of the Google Sign-in flow. When a user clicks to sign in, they are momentarily sent to Google's authentication page and then redirected back.
This redirect can effectively break the chain of attribution in GA4's sessionization logic. When the user lands back on the site, GA4 sees it as a new session, but because there's no immediate referrer, it defaults to "Direct," despite the gclid still lingering in the URL.
How to fix the major GA4 BigQuery export misattribution
For a fix, I recommend using an open-source solution from the GA4 Dataform.com team to unlock your GA4 export data’s full potential within minutes, or using this super simple query and a Looker Studio BigQuery integration to analyse further.
select * from `abcd.analytics_12345.events_*`//replace with your ga4 export
WHERE user_id = "u12345" // use your user_id or user_pseudo_id
AND _TABLE_SUFFIX BETWEEN '20250901' AND '20250901'
Summary
If you only use the GA4 interface, you'll never catch this. You'll see a conversion from "Direct" and optimize accordingly, completely unaware that your Google Ads budget generated that result. You'd be cutting the budget of a high-performing campaign because the data in the UI is not telling you the whole story.







