← Back to glossary

Attribution Identifier (oppref)

An attribution identifier (oppref) is the click reference OpenAI appends to a ChatGPT ad's landing page URL so a later conversion can be traced back to the exact ad click that drove it. Unlike a UTM parameter you configure for analytics, oppref is an opaque token OpenAI adds automatically to power attribution on its own side.

If you run ChatGPT ads, oppref is what lets you tell which campaigns earn revenue and which burn budget. Lose it to a sloppy redirect and your conversions land in direct traffic, making a profitable campaign look like a failure you might cut.

What is an attribution identifier (oppref)?

Oppref is the single piece of data that separates a paid ChatGPT visit from an organic one, carried as a query parameter on the URL a user reaches after clicking a sponsored answer. Each value is unique to one click and is an opaque string that identifies the interaction while revealing nothing about the person behind it.

For oppref to work, three things have to line up. The token has to survive the trip from the ad click to your landing page, OpenAI's measurement pixel has to read it there, and your conversion events have to send it back when a purchase or lead fires. Any break in that path and the click goes uncredited.

Oppref sits alongside your UTM tracking tags but does a different job: those tags feed your own analytics and customer records, while oppref feeds OpenAI's attribution. It plays the same role for ChatGPT ads that gclid plays for Google Ads and fbclid plays for Meta. AirOps tracks ChatGPT ad activity next to your organic AI search data, so the paid clicks oppref attributes sit in the same view as the prompts you already monitor.

How an attribution identifier (oppref) works

Oppref works as a chain of custody for a single ad click. The identifier is created at the click and has to be preserved, read, and sent back before OpenAI can credit a conversion to your campaign.

  1. Append: When someone clicks your ChatGPT ad, OpenAI adds oppref to the landing page URL automatically, in a form like ?oppref=gAAAAAb123, with nothing for you to configure.

  2. Capture: OpenAI's measurement pixel runs on your landing page, reads oppref from the URL, and hands it to the next stage.

  3. Store: The pixel writes the value to a first-party cookie named __oppref on your domain so it persists past the first page view.

  4. Attach: When a conversion event fires, through the pixel or the Conversions API, your setup sends oppref along with it.

  5. Match: OpenAI matches that oppref to the original click and credits the campaign, ad group, and creative that earned it.

The output tells you which ad drove a conversion. It does not tell you who the person is, because the token is opaque by design.

Resources: how to measure ChatGPT ad conversions and meet OpenAI's creative and policy rules

The importance of Attribution Identifier (oppref) for marketers

Ad budget decisions depend on knowing what each campaign returns. Oppref is the mechanism that turns a ChatGPT ad click into a measurable conversion, so it sits directly under every call to scale, pause, or cut spend on the channel.

  • It decides whether spend is accountable: Without oppref attached to conversions, you cannot separate paid ChatGPT revenue from organic, and you end up judging the channel on guesswork.

  • It is where attribution silently breaks: A misconfigured redirect, a trailing-slash rewrite, or an HTTP-to-HTTPS hop that drops the query string strips oppref before the pixel reads it, so conversions quietly fall into direct traffic and the campaign looks dead.

  • It feeds optimization as well as reporting: OpenAI's Conversions API uses the oppref on each event to learn which clicks convert, so a broken identifier starves delivery of the signal it needs to find more buyers.

Marketer use cases

  1. Growth marketers use oppref to attribute ChatGPT ad conversions and calculate return on ad spend for the channel against organic AI search.

  2. Demand gen leads use oppref to credit pipeline and qualified leads to the specific campaigns and creatives that produced them.

  3. SEO managers use oppref to verify that landing page redirects preserve the query string so paid clicks stay attributed.

Key concepts

Opaque token

Oppref is a cryptographically generated string with no human-readable label, which means you can store it and send it back for matching but you cannot decode the campaign, ad group, or creative from the value on your own side.

First-party cookie

The __oppref cookie stores the identifier on your own domain right after the measurement pixel reads it from the URL, which is what lets a purchase or signup that happens minutes, hours, or days later still point cleanly back to the click that started it.

Server-side forwarding

Sending oppref to OpenAI's Conversions API from your server, running alongside the browser pixel and sharing an event ID, keeps attribution intact when ad blockers, Safari tracking limits, or in-app browsers would otherwise drop the client-side event before it reaches OpenAI.

Benefits

  • Credit each ChatGPT ad conversion to the exact campaign, ad group, and creative that earned it.

  • Separate paid ChatGPT traffic from free ChatGPT referrals that arrive with no clear source.

  • Keep attribution alive when a mobile app click lands in direct traffic and the referrer is gone.

  • Feed OpenAI's Conversions API the signal it uses to optimize delivery toward people who convert.

  • Deduplicate browser and server events with a shared event ID so one conversion is counted once.

Attribution Identifier (oppref) best practices

  • Forward the full query string on every redirect so oppref survives each hop, because a single rewrite that drops parameters breaks attribution end to end.

  • Capture oppref on landing and store it in a first-party cookie that lasts the length of your conversion window, so late conversions still carry the identifier.

  • Send oppref with every conversion event through both the measurement pixel and the Conversions API, because the server-side path catches what the browser misses.

  • Share one event ID across browser and server events so OpenAI can deduplicate and avoid counting the same conversion twice.

  • Leave oppref untouched and never manually set, overwrite, or strip it in a redirect, since doing so breaks OpenAI-side attribution.

  • Validate the chain before you scale spend by appending a test oppref value to your entry URL and confirming it survives every hop to the conversion page.

Avoid rebuilding landing URLs in a way that silently discards query parameters, the trailing-slash and HTTP-to-HTTPS rewrites that strip oppref before any script can read it. Competent teams ship this redirect and never notice their ChatGPT conversions quietly stopped matching.

Tools and technologies

  • AirOps: tracks your own and competitors' ChatGPT ad activity and connects campaign spend, click-through rate, and cost per click to the same AI search data guiding your organic strategy, so the clicks oppref attributes sit in context.

  • Google Analytics 4: separates paid ChatGPT traffic from free referrals when you tag landing URLs with UTMs that ride alongside oppref.

  • Google Tag Manager (server-side): captures oppref into the __oppref cookie and forwards it to OpenAI's Conversions API from your server.

Getting started with Attribution Identifier (oppref)

  1. Inspect a live landing URL: Click one of your own running ChatGPT ads, or append a test ?oppref=test123 to your landing page, and confirm the parameter shows up in the address bar. This takes minutes and needs no budget approval.

  2. Audit your redirect chain: Walk every hop from the ad click to the conversion page and confirm each one forwards the full query string untouched.

  3. Confirm the measurement pixel is live: Check that OpenAI's pixel loads on your landing pages and writes the value into the __oppref cookie.

  4. Wire up the Conversions API: Set your server to send oppref with each conversion event, using a shared event ID so it deduplicates against the browser pixel.

  5. Validate end to end: Fire a test conversion, then reconcile what OpenAI reports against your own records to confirm the identifier is matching before you scale spend.

Key takeaways

  • Oppref is OpenAI's click identifier, appended to a ChatGPT ad's landing URL to tie conversions back to the ad that drove them.

  • Attribution runs by capturing oppref on landing, storing it in the __oppref cookie, and sending it back with each conversion event.

  • The identifier only works if every redirect between the click and the conversion forwards the full query string.

  • Strip oppref with a careless URL rewrite and conversions drop into direct traffic, uncredited to the campaign that earned them.

  • The leverage is in the plumbing: a clean redirect and a server-side Conversions API setup protect every dollar of ChatGPT ad spend.

Frequently asked questions about attribution identifiers (oppref)

How is an attribution identifier (oppref) different from a UTM parameter?

An attribution identifier (oppref) and a UTM parameter do different jobs, even though both ride on the same landing page URL. Oppref is OpenAI's own click reference: it is added automatically, it is unique to a single ad interaction, and it feeds OpenAI's conversion attribution on the platform side. UTM parameters are tags you set yourself, they describe campaign structure like source and medium, and they feed your analytics and customer records. You read UTMs in your own reports; you never really read oppref, because it is an opaque token meant for OpenAI to match. One practical consequence is that UTMs survive or break based on how you build your links, while oppref is appended for you and breaks mainly when a redirect strips the query string. You want both working together: UTMs so your analytics stay readable, and oppref so OpenAI can credit the conversions your ChatGPT campaigns actually produced.

When does the attribution identifier (oppref) get added, and how long does it last?

The attribution identifier (oppref) is added at the moment of the click: when a user taps your sponsored answer in ChatGPT, OpenAI appends it to the destination URL before the page even loads, with nothing for you to configure. From there, how long it lasts depends on where it lives. On the URL it exists only for that first request, which is why the measurement pixel immediately copies it into the __oppref first-party cookie. The cookie then holds the value for a set conversion window so a purchase or signup that happens later can still be matched to the click. That window can be shortened by browser privacy limits, by the user clearing cookies, or by in-app browsers that do not persist storage well. The practical takeaway: treat the click as the only moment oppref is guaranteed to exist, and make sure your pixel captures it right then so a longer sales cycle still gets credited.

Why does the attribution identifier (oppref) sometimes go missing from my conversions?

The attribution identifier (oppref) goes missing almost always because something in your URL path drops it before it can be stored. The most common cause is a redirect that does not forward the full query string: a trailing-slash rewrite, an HTTP-to-HTTPS hop, or a marketing redirect service that rebuilds the URL without its parameters. When that happens, the measurement pixel loads on a URL that no longer has oppref, so there is nothing to put in the cookie. Other causes include the pixel firing too late or not at all, the user blocking cookies, and mobile app clicks that land with the referrer stripped. Variation between campaigns usually traces to different landing pages with different redirect setups, which is why one campaign can attribute cleanly while another loses most of its conversions. The fix almost always lives in the funnel plumbing, so audit the redirect chain first when the numbers look wrong.

Can I set or change the attribution identifier (oppref) myself?

No, you should not set or change the attribution identifier (oppref) yourself, and OpenAI appends it automatically so you do not need to. The value is a cryptographic token generated by OpenAI for each click, and manually writing, overwriting, or stripping it in a redirect breaks attribution on OpenAI's side, because the token you invent will not match anything OpenAI issued. What you can and should influence is everything around it. You control whether your redirects preserve the query string, whether your measurement pixel captures oppref into the cookie, whether your server forwards it to the Conversions API, and how long your cookie window runs. Your job is protecting the identifier in transit instead of creating it. The one case where you deliberately use a fake value is testing: appending a sample oppref to your entry URL to confirm it survives each hop, which you do in a test and never on live ad traffic.

What does a healthy attribution identifier (oppref) setup look like?

A healthy attribution identifier (oppref) setup is one where the token survives from the click all the way to the conversion without manual intervention. Concretely, every redirect between your ad and your landing page forwards the full query string, the measurement pixel fires on arrival and writes oppref into the __oppref cookie, and your server sends that value to the Conversions API with every purchase or lead. A shared event ID ties the browser and server events together so OpenAI counts each conversion once. The signal that it is working is simple: the conversions OpenAI reports reconcile closely with the orders in your own records, and very few paid ChatGPT sales fall into unattributed or direct traffic. A good benchmark is a validated chain you have walked yourself with a test value, rechecked whenever you change landing pages or redirects. If most of your ChatGPT conversions trace cleanly back to a campaign, the setup is doing its job.