Attrifast
ProductAI visibilityPricingDocsBlog
Log inStart free trial
ProductAI visibilityPricingDocsBlogLog in
From traffic to revenue

See which channels bring customers—not just visits.

Install one lightweight script and connect Stripe or Shopify when you are ready.

Start free trialSee live demo
Product
  • Track Website Traffic
  • Website Visitor Tracking
  • Attribution Software
  • AI Revenue Attribution
  • Revenue by Source
  • SEO Dashboard
  • Pricing
AI traffic
  • Track ChatGPT Traffic
  • Track Perplexity Traffic
  • Track Claude Traffic
  • Track Gemini Traffic
  • Track AI Overviews
  • All AI Search Guides
Use cases
  • Stripe Analytics
  • Shopify Analytics
  • Analytics for SaaS
  • For Bootstrapped SaaS
  • Privacy-First Analytics
Compare
  • Attrifast vs Cometly
  • Attrifast vs GA4
  • Attrifast vs Mixpanel
  • Attrifast vs DataFast
  • All Comparisons
Resources
  • Blog
  • Research
  • Documentation
  • Free Tools
  • GEO Hub
  • AI Crawler Directory
  • AI Instructions
  • Live Demo
© 2026 Attrifast · built by Vincent Ruan & Jessica Huang
AboutContactTermsPrivacy
Blog / Attribution

ChatGPT Ads Attribution: How to Track Paid Clicks to Real Revenue Without Polluting Your Organic ChatGPT Data

14 min readPublished Sep 26, 2026
Vincent Ruan
Vincent RuanFounder, Attrifast · September 26, 2026 · 14 min read

ChatGPT ads have run since February and been self-serve since May. Measuring them is harder than it looks, because organic ChatGPT links already arrive tagged. Here is the tagging, the pixel setup, why the numbers never match, and how to check whether the ads earn anything the answers were not already earning.

Bar chart of default click lookback windows: GA4 other key events 90 days, ChatGPT Ads Manager 30 days, Google Ads 30 days, Meta Ads 7 days, Attrifast 7 days.
Four tools, four clocks. ChatGPT Ads Manager also reports a separate one-day view-through window on top of its 30-day click window.

TL;DR

  • Direct answer: measure ChatGPT ads in three layers. Tag every ad with your own UTM template (utm_source=chatgpt-ads&utm_medium=cpc), install OpenAI's Measurement Pixel or Conversions API so Ads Manager can report and optimise, and join the tagged click to the payment it produced. Only the third layer is revenue.
  • The trap: ChatGPT already appends utm_source=chatgpt.com to the links it cites organically[12]. All 894 cited links in our September test carried it. Tag your ads with anything that looks like that, or leave them untagged, and paid and organic ChatGPT merge into one number.
  • The numbers will not match. Ads Manager defaults to a 30-day click window, reports one-day view-throughs separately, dates each conversion to the ad click, and values it at whatever amount your pixel sent[11]. Your analytics does none of those things the same way.
  • Test incrementality before you call it profit. Ads sit at the bottom of answers that may already recommend you[1]. A regional holdout is the only way to see what the ads add.
  • Context: CPMs fell from $60 at the 9 February launch to as low as $25 ten weeks later[2]. Average CTR was 0.68% in May and 0.50% in June[6][7].

If you are reading this, you have probably launched a ChatGPT campaign, or you are about to, and you want to know whether it makes money. The honest answer is that it is measurable, but the default setup misleads you in two directions at once. It can hide paid clicks inside your organic ChatGPT numbers, and it can hand the ads credit for customers that ChatGPT's answers had already won.

This is not a case study. It is the measurement plan I would use, built from OpenAI's developer documentation, the market data published so far, and what we see in our own logs of organic ChatGPT clicks. I build attribution software, so I am biased toward joining clicks to payments. I will say where that bias matters.

What you are measuring, as of September 2026

ChatGPT ads went from announcement to self-serve in about four months. Most of the measurement tooling arrived after the first advertisers had already spent money, which is why so much early reporting is unreliable.

When (2026)What changedWhy it matters for measurement
JanuaryOpenAI says ads will appear at the bottom of answers, labelled and separate from the organic answer, for Free and Go users. Paid tiers such as Pro, Business and Enterprise stay ad-free[1]Your organic recommendation and your ad can sit in the same answer
9 FebruaryPilot launches in the US at a $60 CPM with a $250,000 minimum[2]Early results come from large brands buying impressions, not clicks
AprilMinimum falls to $50,000; CPMs as low as $25[2]. Cost-per-click bidding switches on, with recommended bids of $3 to $5[3]Clicks become the unit most advertisers pay for
5 MaySelf-serve Ads Manager opens to US advertisers with no minimum, alongside a pixel and a Conversions API. Ads serve to Free and Go users in the US, Canada, Australia and New Zealand; Plus, Pro and Business users see none[4]Small businesses can now buy, and can now measure conversions
13 MayGA4 adds an AI Assistant default channel[14]Organic ChatGPT clicks get their own GA4 bucket, and untagged ad clicks can fall into it
16 JuneConversion-optimised bidding added to the Ads API[19]OpenAI can now optimise toward the events your pixel sends
Minimum spend to advertise in ChatGPT, 2026
Minimum spend to advertise in ChatGPT, 2026

Source: Digiday, 17 April 2026; PPC Land, 5 May 2026

The drop to zero is the reason this question now reaches small companies. Similarweb counted 5,171 distinct advertisers between 30 March and mid-June, with 3,770 active in a single week in early June[5]. Most of them are paying prices that make careless measurement expensive.

CPM: ChatGPT ads vs other ad platforms
CPM: ChatGPT ads vs other ad platforms

Source: Digiday, 17 April 2026 — ChatGPT launch and April low-end CPMs, other platforms as quoted for comparison

Even at the April low of $25, ChatGPT impressions cost more than twice what Google Display charged and five times Facebook's figure in the same comparison[2]. Convert that to clicks and the stakes become clear. At a $25 CPM and June's 0.50% average click-through rate, each click costs $5.00. At the $60 launch CPM it cost $12.00. Numbers like that need to be checked against payments, not against a platform's own conversion count.

The problem nobody warns you about: organic ChatGPT is already tagged

ChatGPT adds utm_source=chatgpt.com to the links it cites in its answers, and OpenAI documents this for publishers[12]. When we traced 287 ChatGPT answers back to their sources in September, every one of the 894 cited links carried that parameter. Organic ChatGPT traffic, in other words, arrives pre-labelled.

Now add paid clicks from the same interface. OpenAI appends its own click reference, oppref, to the landing URL of an ad click, and its pixel reads it[9]. Your analytics does not. Unless you add your own tags, that opaque ID is the only thing marking a click as paid.

GA4's newest feature does not help here. Since May it assigns the medium ai-assistant when a visit's referrer matches its list of AI assistants, and groups those sessions into the new AI Assistant channel[13][14]. An untagged ad click that carries a chatgpt.com referrer looks exactly like an organic citation click under that rule. Clicks from the ChatGPT mobile apps often arrive with no referrer at all and land in Direct, which we covered in why ChatGPT referrals go missing.

Here is what each tagging choice turns into.

How the ad is taggedWhat your analytics seesPaid and organic kept apart?
Not taggedA chatgpt.com referral, or no referrer at all from the apps. Referrer rules, including GA4's AI Assistant channel[13], file it with organic ChatGPTNo
utm_source=chatgpt.com or chatgpt, no mediumThe exact tag ChatGPT puts on organic citations[12]No
OpenAI's documentation example: utm_source=openai&utm_medium=paid[8]GA4's paid-medium regex matches paid, so GA4 files it as paid[13]. Tools that recognise a fixed list such as cpc and ppc may not, and some read utm_source=openai as an AI-assistant signalDepends on the tool
utm_source=chatgpt-ads&utm_medium=cpc plus campaign and ad IDsPaid under GA4's rules and under any tool that knows what cpc means. The source name cannot collide with an organic tagYes

The last row is the one to use. cpc is the medium that every analytics tool I know of reads as paid, including ours: in Attrifast the medium is checked before any AI detection runs, so a cpc-tagged ChatGPT ad click is filed as paid and never inflates the ChatGPT revenue line.

With Attrifast

Attrifast keeps organic ChatGPT as its own revenue line, joined to the Stripe payment each visit produced, and files cpc-tagged ad clicks as paid. Switch a campaign on and you can watch whether the organic line moves.

7-day free trial · $0 today · one script tag

See plans and subscribe →See the product first →

Layer 1: tag every ad with your own UTM template

OpenAI's tracking-parameter template, query_string_template, can be set at the account, campaign, ad group or ad level, and it supports macros for the campaign ID, the ad ID and the click reference[8]. Set it once at the account level so no campaign can launch untagged:

utm_source=chatgpt-ads&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}

Three details decide whether this works.

  1. Parameters already in the destination URL win. OpenAI's precedence order is the destination URL first, then the ad, ad group, campaign and account[8]. A landing page URL you copied from an old newsletter, still carrying utm_source=newsletter, will override your template silently. Strip parameters from destination URLs and let the template do the work.
  2. The macros insert IDs, not names. Your campaign report will show cmpn_… strings. Keep a lookup of campaign IDs to names, or type a readable utm_campaign at the campaign level instead of the macro.
  3. Test before launch. Paste the destination URL with the template applied into a browser and confirm the visit appears in your analytics as paid. Our UTM builder produces the URL; the naming rules are in the UTM setup guide.

If campaigns already ran untagged, check whether your analytics keeps full landing-page URLs. Any landing URL containing oppref came from a ChatGPT ad click[9].

Layer 2: the OpenAI pixel and Conversions API

UTMs tell your analytics where a visit came from. They tell OpenAI nothing. For Ads Manager to report conversions, cost per action, attributed sales and ROAS, and for conversion-optimised bidding to work, OpenAI needs its own conversion signal[11].

That comes from the Measurement Pixel in the browser, the Conversions API from your server, or both. The pixel captures oppref from the landing URL and stores it in a first-party __oppref cookie for 30 days, restarting that clock each time a landing URL carries an oppref value[9]. It supports a consent switch, oaiq("consent", false), for regions where you need permission before measuring[9].

<script>
  /* OpenAI's loader snippet from Ads Manager goes here, then: */
  oaiq("init", { pixelId: "<YOUR-PIXEL-ID>" });
</script>

<script>
  // On the order-confirmation page. Amounts are integers in minor units:
  // 4900 means $49.00. Reuse the same event_id on any server-side copy.
  oaiq(
    "measure",
    "order_created",
    { type: "contents", amount: 4900, currency: "USD" },
    { event_id: "order_12345" }
  );
</script>

For software, the standard events that matter are trial_started, subscription_created, registration_completed and lead_created[9]. Three rules from the documentation save most of the debugging:

  • Deduplicate. If the browser and your server both report the same purchase, give both the same event_id. OpenAI keeps the first and ignores the rest[9].
  • The server API does not capture the click for you. You have to read oppref from the landing URL, keep it, for example in your Stripe Checkout Session metadata, and send it with the server event[10].
  • Server events must be recent. An event timestamp has to fall within the last seven days[10]. You cannot backfill last month's orders.

A server-side event fired from your payment webhook is the more trustworthy of the two, because it only fires when money actually moved. The pixel fires when a page loads, so it depends on the buyer reaching your confirmation page, and it cannot know about a payment that later fails or is refunded.

Why Ads Manager and your analytics will never agree

Set everything up correctly and the two systems will still disagree. That is expected. They answer different questions on different clocks.

ChatGPT Ads ManagerYour analytics
Click window30 days by default; 7 or 14 selectable in reports[11]GA4: 90 days for most key events, 30 for first visits[15]. Attrifast: the last non-Direct visit within 7 days
View-throughsA separate one-day view window, reported apart from Conversions[9]None. A view without a click leaves no session
Which dateThe date of the ad click, by default[11]The date of the conversion
RevenueThe amount your pixel or server sent with order_created[11]Whatever your analytics records. Only a payment join sees refunds and renewals
Other channelsIgnored. Every ad platform credits its own clickOne winner per conversion, depending on the model
FreshnessAllow at least a day for conversions to settle[11]Usually same day
Default click lookback window, in days
Default click lookback window, in days

Source: OpenAI Ads docs; Google Ads Help; Google Analytics Help; Dataslayer on Meta (March 2026); Attrifast attribution code

The window row explains most of the gap on its own. Google Ads also defaults to a 30-day click window[16]. Meta's default is seven-day click, with separate one-day engage-through and view windows since March 2026[17]. A buyer who clicks a ChatGPT ad on the 1st, a Google ad on the 10th and buys on the 20th is a conversion in both ad platforms. In a last-click analytics tool, it is one conversion and it belongs to Google.

Here is how that plays out on one campaign. The numbers below are invented and rounded, to show the mechanics rather than any real account.

Month's view of one campaignOrdersRevenueReturn on $3,000 spend
Ads Manager, click-through conversions60$7,200 as sent by the pixel2.4x
Ads Manager, view-through (reported separately)14not included above—
Analytics, orders whose last paid click was a chatgpt-ads visit41$4,9201.6x
Same 41 orders after 3 refunds, from Stripe38$4,5601.5x

None of these rows is wrong. They are four answers to four questions. The one that pays your bills is the last row, which only exists if something joins the click to the payment. That is what revenue attribution means, and the full mechanics for Stripe are in our Stripe attribution guide. If you want the vocabulary for the difference between these ratios, see ROAS vs MER vs RPV.

One more calculation belongs next to that table: the break-even conversion rate. Divide your cost per click by the gross profit on one order. At a $5 click and $60 of gross profit per order, you need 8.3% of clicks to buy. At a $12 click, you need 20%. If your site converts paid traffic at 3%, no amount of attribution tuning will rescue the campaign.

Benchmarks to sanity-check your own numbers

There is no official benchmark. OpenAI publishes metric definitions, not averages. What exists comes from Similarweb's ad-intelligence panel.

ChatGPT ad click-through rate vs display ads
ChatGPT ad click-through rate vs display ads

Source: Similarweb via Search Engine Roundtable (May 2026) and PPC Land (June 2026)

In May the average ChatGPT ad drew a 0.68% click-through rate, the top quartile 1% and the best brands 1.57%, against roughly 0.35% for display ads[6]. By June the average had fallen to 0.50%[7]. The reason is visible in the next chart. As OpenAI showed ads in more conversations, the average conversation became a weaker match for the ad.

Share of ChatGPT chats that showed an ad, mid-2026
Share of ChatGPT chats that showed an ad, mid-2026

Source: Similarweb Generative AI Landscape report via PPC Land, 22 July 2026

Ads appeared in 14% of US desktop chats in May and 26% in June. The UK passed 30% by late June, and Japan was at about 10%[7]. Inventory is still concentrated. In early June, 71.6% of the impressions Similarweb observed were in the US[5].

Two cautions on using these figures. They come from a panel that observes ads, not from advertisers' accounts, so they cannot tell you conversion rates. And they describe an ad product that changed almost monthly. If your CTR sits well below 0.5%, look at your context hints and creative before you blame the channel.

The question the dashboards cannot answer: would they have bought anyway?

OpenAI says answers are not influenced by advertising, and that ads appear at the bottom of an answer when a sponsored product is relevant to the conversation[1]. That design has a consequence for attribution. The answer above your ad may already recommend you.

When that happens and the reader clicks your ad instead of the organic link, the ad gets the credit. Every tool in the tables above will record a paid conversion. None of them can tell you whether that customer would have arrived through the organic link a second later. This is the same problem as bidding on your own brand name in Google, and it has the same fix: a holdout.

  1. Split your markets. Ads Manager targets by country, region or market[18]. Pick two groups of regions with similar revenue history. Run the campaign in one and keep the other dark.
  2. Run it for at least four weeks. Shorter tests mostly measure noise, and many purchases fall outside a short window.
  3. Compare total revenue, not attributed revenue. The question is whether the test regions grew faster than the control regions, not how many conversions the ads claimed.
  4. Watch your organic ChatGPT line. If organic ChatGPT revenue in the test regions drops by roughly what the ads claim to have earned, the ads are harvesting demand you already had.

If a regional split is not possible because your volume is too small, alternate two weeks on and two weeks off. It is a weaker test, but far better than trusting a platform's own count. A post-purchase "how did you hear about us" question with separate "ChatGPT answer" and "ChatGPT ad" options adds a useful second witness.

With Attrifast

Attrifast reports AI last-click revenue next to AI-influenced revenue: every order whose buyer visited from an AI assistant in the 30 days before paying, whichever channel got the last click. If that gap widens when your ChatGPT campaign starts, the ads are closing sales the answers opened.

7-day free trial · $0 today · one script tag

Choose a plan →How AI-influenced revenue works →

Setup checklist

  1. Set an account-level template: utm_source=chatgpt-ads&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}[8].
  2. Remove UTM parameters from every destination URL so the template is not overridden[8].
  3. Install the Measurement Pixel on every page, with the consent switch wired to your cookie banner where required[9].
  4. Send order_created, subscription_created or trial_started with integer amounts in minor units and an event_id[9].
  5. If you send server-side events, store oppref at checkout and send it with the event within seven days[10].
  6. Decide which report you trust for what: Ads Manager for bidding decisions, your payment join for revenue, and a holdout for incrementality.
  7. Keep organic ChatGPT as its own line and check that paid clicks never land in it. The ChatGPT revenue attribution page shows what that separation looks like.
  8. Log your baseline organic ChatGPT revenue for four weeks before the first campaign, so you have something to compare against.

What this does not tell you

  • The market figures come from trade press and one panel provider. They describe the first seven months of a young ad product, and several have already moved.
  • The worked example is illustrative. Your gap between Ads Manager and your own analytics could be larger or smaller.
  • OpenAI's documentation changes often. Its API changelog recorded new measurement and targeting features in June, July, August and September[19]. Recheck the template syntax and event names before you rely on them.
  • Nothing here measures what an ad does for a reader who never clicks it. View-through conversions exist in Ads Manager, but only a holdout tells you whether they would have happened anyway.

FAQ

How do I track ChatGPT ads in Google Analytics?

Add your own UTM parameters to every ad through the tracking-parameter template in Ads Manager, using a paid medium such as utm_medium=cpc and a source that cannot be confused with organic ChatGPT, such as utm_source=chatgpt-ads. GA4 then files the clicks in a paid channel. Without tags, an ad click that carries a chatgpt.com referrer lands in GA4's AI Assistant channel alongside organic ChatGPT citations, and clicks from the ChatGPT apps often arrive with no referrer and land in Direct.

What UTM parameters should I use for ChatGPT ads?

Use utm_source=chatgpt-ads and utm_medium=cpc, and fill utm_campaign and utm_content with OpenAI's campaign ID and ad ID macros. The source must not be chatgpt.com, because ChatGPT already appends utm_source=chatgpt.com to the links it cites organically. The medium should be cpc, because mainstream analytics tools read cpc as paid. OpenAI's own documentation example uses utm_medium=paid, which GA4 recognises but tools with a fixed list of paid mediums may not.

Why don't ChatGPT Ads Manager conversions match GA4?

They measure different things on different clocks. Ads Manager credits conversions within a 30-day click window by default, reports one-day view-through conversions separately, dates each conversion to the ad click rather than the purchase, and values it at whatever amount your pixel or server sent. GA4 uses its own lookback windows, 90 days for most key events, gives each conversion to one channel, and dates it to when it happened. A large gap between them is normal and does not mean either is broken.

Do I need the OpenAI pixel if I already use UTMs?

Yes, if you want Ads Manager to report conversions, cost per action and ROAS, or to use conversion-optimised bidding. UTMs only tell your own analytics where a visit came from. The Measurement Pixel, or the server-side Conversions API, is what tells OpenAI which clicks converted. Use both: UTMs for your reporting, the pixel for OpenAI's.

What is oppref in ChatGPT ads?

oppref is the click reference OpenAI adds to the landing-page URL when someone clicks a ChatGPT ad. The Measurement Pixel reads it and stores it in a first-party __oppref cookie for 30 days so that later conversions can be matched to the click. If you send conversions server-side through the Conversions API, you have to capture oppref yourself and pass it with the event, because the API does not collect it for you.

How much do ChatGPT ads cost in 2026?

Ads launched on 9 February 2026 at a $60 CPM with a $250,000 minimum commitment. By mid-April, Digiday reported CPMs as low as $25 and a $50,000 minimum. Cost-per-click bidding arrived in April with recommended bids of $3 to $5, and the self-serve Ads Manager that opened to US advertisers on 5 May removed the minimum entirely.

What is a good click-through rate for ChatGPT ads?

Similarweb measured an average of 0.68% in May 2026, 1% for the top quartile of advertisers and 1.57% for the best brands. By June the average had fallen to 0.50% as ads appeared in more conversations. OpenAI has not published an official benchmark, so treat these as an early third-party panel view rather than a target.

Can ChatGPT ads take credit for customers ChatGPT was already sending me?

Yes. ChatGPT shows ads at the bottom of an answer that may already recommend your brand. If the reader clicks your ad instead of the organic link, the ad gets the credit for a customer the answer had already won. The only way to know is a holdout test: run the ads in some regions and not others for several weeks, then compare total revenue and your organic ChatGPT revenue between the two groups.

Continue the research path

  • Where does ChatGPT get its information? — the 287-answer study behind the utm_source=chatgpt.com figure
  • ChatGPT traffic not showing in analytics — why organic ChatGPT clicks lose their referrer
  • How to track ChatGPT traffic in GA4 — the organic side of the same setup
  • AI-influenced conversions, explained — measuring AI's role when it is not the last click
  • First-touch vs last-touch attribution — which model to use when two platforms claim one order
  • ChatGPT revenue attribution — organic ChatGPT visits joined to Stripe payments

Sources

Primary sources for the claims in this article. Numbered citations in the text link to the matching entry.

  1. [1]Our approach to advertising and expanding access to ChatGPT — OpenAI (2026).
  2. [2]'Everything is coming down': ChatGPT ads are getting cheaper — Digiday (2026).
  3. [3]OpenAI turns on cost-per-click ads inside ChatGPT — Digiday (2026).
  4. [4]OpenAI opens ChatGPT Ads Manager to all US businesses with CPC bidding — PPC Land (2026).
  5. [5]ChatGPT Ad Stats in 2026 — Similarweb (2026).
  6. [6]Similarweb Data: ChatGPT Ads Click-Through Rates — Search Engine Roundtable (2026).
  7. [7]ChatGPT loses web share to Gemini and Claude as ad penetration hits 26% — PPC Land (2026).
  8. [8]Campaign Management — OpenAI Developers (2026).
  9. [9]Measurement Pixel — OpenAI Developers (2026).
  10. [10]Conversions API — OpenAI Developers (2026).
  11. [11]Reporting — OpenAI Developers (2026).
  12. [12]Publishers and Developers - FAQ — OpenAI Help Center (2026).
  13. [13][GA4] Default channel group — Google Analytics Help (2026).
  14. [14]Google Analytics Adds AI Assistant As Default Channel Group — Search Engine Journal (2026).
  15. [15][GA4] Select attribution settings — Google Analytics Help (2026).
  16. [16]About conversion windows — Google Ads Help (2026).
  17. [17]Meta Attribution Change 2026: What Engage-Through Attribution Is — Dataslayer (2026).
  18. [18]Location Targeting — OpenAI Developers (2026).
  19. [19]Ads API Overview and changelog — OpenAI Developers (2026).
Reading this with an AI assistant?Ask Perplexity about this article →Read this article as markdown →

About the author

Vincent Ruan, Founder, Attrifast
Vincent RuanFounder, Attrifast

Vincent Ruan is the founder of Attrifast, an analytics platform for website traffic, customer-level revenue and AI brand visibility, which he built after spending two years duct-taping GA4 exports to Stripe payouts for the Shopify store he and Jessica Huang started in 2021. He wrote the first 4kb tracking script himself, ships every backend webhook handler, and spends most of his week in referrer logs watching which AI engines actually send people.

  • vince-ruan.com
  • LinkedIn
  • X

Related reading

Attribution13 min
“How Did You Hear About Us?” Survey: What to Ask, Which Options to List, and How Far to Trust the Answers
The one-question survey is back, because AI assistants send customers that analytics files under Direct. Here is the wording, the option list, the placement, and the published data on how wrong the answers are — and how wrong your tracking is without them.
Comparison32 min
Best Attribution Tools for AI Traffic in 2026: 10 Platforms Compared by the Job
Best attribution tools for AI traffic in 2026: 10 platforms, Attrifast to GA4, scored on AI detection, revenue join, cookieless behavior, and price.
AI Search27 min
ChatGPT Query Fan-Out, Explained for Attribution Operators (2026)
One ChatGPT prompt becomes 8 internal searches, 3 fetches, and 2 sessions on your site that GA4 buckets as Direct. A 2026 operator breakdown of how fan-out actually moves through your attribution layer and what to instrument.
Analytics18 min
ChatGPT Referral Analytics: Why 70% of AI Traffic Hides in Direct
A 2026 guide to ChatGPT referral analytics — why GA4 buckets ChatGPT visits as Direct, how to recover them, and how to measure revenue per AI engine.
Technical Guide32 min
ChatGPT Referral Traffic Not Showing in Analytics? Here Is the Diagnostic
ChatGPT referral traffic not showing in analytics? Five mechanical reasons it hides in Direct, a step-by-step diagnostic, and the durable fix.

See which AI engines actually send you paying customers

Attrifast splits ChatGPT, Perplexity, Claude and Gemini into their own revenue lines — joined to real Stripe payments, not estimates.

  • ✓One script tag and a Stripe key — live in minutes
  • ✓First-party measurement without third-party cookies
  • ✓Recognized AI referrals joined to Stripe payments
Start your free trial →

7-day free trial · $0 due today · then $9.99/mo · cancel anytime

Attrifast dashboard: prompt-level AI visibility with estimated value, revenue split by channel across ChatGPT, Google, Perplexity, Claude and Direct, competitor position tracking, and per-engine scan settings.