# Why GA4 and Google Ads Clicks Don't Match

Source: https://crawlcove.com/lessons/ga4-google-ads-clicks-dont-match
Published 2026-09-30 · By The Crawl Cove team

> GA4 sessions and Google Ads clicks measure different things, and GA4 can also count bots as paid traffic. How to tell which gap you have.

## Key takeaways
- Take ad clicks and spend from Google Ads, never from GA4 channels, and add engaged sessions to any GA4 traffic report before trusting it

## The short answer

Google Ads counts **clicks on your ad**. GA4 counts **sessions on your site**.
They are different events, so they never match exactly. The usual reasons GA4
shows fewer:

- The visitor clicked and left before the page, and the GA4 tag, loaded.
- The visitor blocked analytics or declined cookie consent.
- One visitor clicked the ad twice in one session: two clicks, one session.
- Auto-tagging is off or the click identifier was stripped, so GA4 filed the
  visit under another channel.

A gap in that direction, GA4 lower than Ads by some tens of percent, is normal.
**A gap in the other direction is not.** If GA4 shows more paid search sessions
than Google Ads shows clicks, something that is not an ad click is being
labelled as one. That is what happened to us.

## How this caught us

For 29 July to 25 August 2026, GA4 reported **105 Paid Search sessions** on
this site. Google Ads reported **4 clicks, lifetime**. GA4 was 26 times higher
than the number we actually paid for.

The sessions gave themselves away once we looked at the detail. **93** of the
105 had country `(not set)`, campaign `(not set)` and landing page `/`, and
they were bunched into five days, 29 July to 2 August. Only about **12**
carried a real campaign name or ID. The rest was automated traffic that
happened to carry paid parameters, and GA4 filed it faithfully under Paid
Search.

Had we read the GA4 channel report as ad performance, we would have concluded
the ads were sending 26 times the traffic they were, and made budget decisions
on it.

## The column that tells real from fake

The same property had a second problem: some of what GA4 called organic
search was our own team visiting admin pages. Both problems yield to the same
free check. Ask GA4 for `engagedSessions` and `userEngagementDuration` alongside
`sessions`.

- Google organic, 90 days to 30 August 2026: **29 of 44 sessions engaged**.
- Bing, same window: **5 sessions, 0 engaged, 0 seconds, exactly 1 page
  per session.**

Real people engage. Bots load one page and leave with no engagement at all.
That one column settles most "is this traffic real?" questions in a minute.

**Tip:**
Exclude your own team's traffic with an internal traffic filter in GA4 Admin
before reading any channel report. Logins and admin screens are not demand.

## What to do

1. **Take ad numbers from Google Ads.** Clicks, impressions, cost and
   conversions tracked in Ads come from the system that bills you.
2. **Use GA4 for behaviour after the click**, restricted to engaged sessions.
3. **If GA4 paid sessions exceed Ads clicks,** break them down by country,
   campaign and landing page. Blank campaigns on one landing page, bunched
   into a few days, are the signature of bot traffic.
4. **Compare like with like.** Same dates, same time zone, and remember
   [Search Console's own delay](https://crawlcove.com/lessons/search-console-data-delay) if you bring
   organic data into the same report.

## The lesson

Two tools that measure different events will disagree, and that is fine. What
matters is knowing which one counts the thing you are deciding about. For the
same reason, [Crawl Cove](https://crawlcove.com/features) reports what a crawl actually fetched,
URL by URL, so you can check its numbers against your own before you act.

## FAQ

### Why does GA4 show fewer sessions than Google Ads clicks?
A click is counted when someone clicks the ad; a session only when the GA4 tag loads and is allowed to run. Visitors who leave before the page loads, block analytics or decline consent produce a click with no session. Several clicks in one session also count once in GA4.

### Why does GA4 show more paid sessions than Google Ads clicks?
Something other than real ad clicks is being labelled paid search. Bot traffic carrying paid parameters is a common cause. Check the country, campaign and landing page of those sessions, and whether any of them engaged.

### Which number should I trust for ad performance?
Google Ads for clicks, impressions and spend, because it counts the thing you pay for. Use GA4 for what visitors did after they arrived, filtered to engaged sessions.

### How do I spot bot sessions in GA4?
Add engaged sessions and user engagement duration to the report. Real visitors engage; bot sessions typically show zero engaged sessions, zero seconds and exactly one page per session, often with country and campaign set to (not set).
