Why Your ChatGPT Ads Clicks Don't Match Google Analytics (and How to Fix It)
· 4 min read

On this page
- First: clicks and sessions are different things
- 1. Traffic shows up as "Direct" (missing UTMs)
- 2. Redirects strip parameters
- 3. Mobile in-app browsers
- 4. Consent banners and ad blockers
- 5. The analytics tag fires late
- 6. Different time zones and date ranges
- 7. Recent data is still processing
- 8. Invalid-click filtering and counting rules
- A quick diagnostic checklist
One of the most common complaints from early ChatGPT advertisers is that the numbers don't line up. One advertiser reported 120 clicks in their ChatGPT Ads dashboard but only 8 sessions in analytics. Others say most ChatGPT Ads traffic lands in Google Analytics as "Direct".
Some gap is normal on every ad platform. A large one usually has fixable causes. Here's a checklist.
First: clicks and sessions are different things
An ad click is counted by the ad platform when someone taps your ad. A session is counted by your analytics tool only when your page loads, the analytics script runs, and (in many regions) the visitor consents to tracking.
Anything that happens between those two moments, such as a slow page, a closed tab, a blocked script or a declined cookie banner, creates a gap. Every source below is a version of that.
1. Traffic shows up as "Direct" (missing UTMs)
If your landing page URLs don't carry UTM parameters, analytics may not know the visit came from ChatGPT Ads. Visits from in-app browsers often arrive without a referrer, so they're labeled Direct.
Fix: add UTM parameters to every ad's landing page URL, for example:
https://example.com/inspection?utm_source=chatgpt&utm_medium=paid&utm_campaign=basement_waterproofing&utm_content=ad_a
Use utm_medium=paid (or cpc) so the traffic is grouped with paid channels, not organic AI referrals.
2. Redirects strip parameters
If your landing page redirects (http → https, non-www → www, a tracking redirect or a geo redirect) and the redirect drops the query string, you lose both your UTMs and OpenAI's oppref click identifier.
Fix: use the final URL directly in your ads, and make sure every redirect preserves query parameters. Test by pasting your ad URL into a browser and checking the address bar after the page loads.
Want help launching ChatGPT Ads? Book a strategy call with Zagare Labs.
Book a strategy call3. Mobile in-app browsers
Much of ChatGPT's usage happens in its iOS and Android apps. Links opened from apps often load in an in-app browser, which can behave differently from Safari or Chrome. Cookies and sessions may not carry over, and some visitors close the page before it finishes loading.
Fix: make your landing page fast on mobile (aim for under ~2.5 seconds to show the main content), keep the page light, and check results by platform. ChatGPT Ads reporting can break delivery down by iOS app, Android app and web.
4. Consent banners and ad blockers
If a visitor declines analytics cookies, or a privacy extension blocks your analytics script, the click still happened but the session won't be recorded.
Fix: you can't (and shouldn't) override a visitor's choice. Do check that your consent banner loads correctly on mobile and isn't blocking the page for everyone. For conversion reporting, add the Conversions API, which records confirmed actions from your server.
5. The analytics tag fires late
If your Google Analytics tag loads late (at the bottom of the page or after a tag manager delay), visitors who leave quickly are never counted.
Fix: load analytics early in the <head>, and do the same for the ChatGPT Ads pixel, which OpenAI recommends placing near the top of the <head> "to ensure early conversions aren't lost."
6. Different time zones and date ranges
Ads Manager reports in your ad account's time zone. Your analytics property may use another. Comparing "yesterday" in both can mix different hours.
Fix: align time zones, or compare full weeks rather than single days.
7. Recent data is still processing
ChatGPT Ads impressions and clicks can appear within minutes, but spend and conversions update later. OpenAI says to allow at least one day for conversion data. Comparing today's numbers will often look off.
Fix: compare periods that ended at least 24–48 hours ago.
8. Invalid-click filtering and counting rules
Ad platforms filter invalid clicks and count clicks by their own rules. Analytics tools apply their own bot filtering and session rules. The numbers will never match exactly.
A quick diagnostic checklist
- Every ad URL has UTM parameters
- Final URLs don't redirect, or redirects keep the query string
opprefsurvives to the landing page (check the URL after clicking)- Landing page loads fast on mobile
- Analytics and the ChatGPT Ads pixel load early in the
<head> - The consent banner works on mobile and isn't blocking the page
- Time zones match, and you're comparing completed days
- Conversions API is set up for your key conversion
Note: Judge ChatGPT Ads on conversions you can verify, such as leads in your CRM or orders in your store, not on a perfect match between clicks and sessions.
If your numbers still don't add up, our setup service includes a full tracking audit and fix.
Related service: ChatGPT Ads Setup
Frequently asked questions
Is some mismatch between ad clicks and analytics sessions normal?
Yes. Clicks and sessions are measured differently on every ad platform, so a gap is normal. A very large gap usually points to a tracking or landing page problem worth fixing.
Should I add UTM parameters to ChatGPT Ads?
Yes. Adding UTM parameters to your landing page URLs is the simplest way to make ChatGPT Ads traffic identifiable in Google Analytics instead of showing up as Direct.

Michael Zagare
Founder of Zagare Labs and creator of PPC Entourage (acquired by Carbon6)
About Michael
