Your OpenAI Ads Identifier Coverage Is at 0%? Here's What to Do
Seeing 0% identifier coverage in OpenAI Ads Manager means your events are firing but arriving without anything to match on. It is common, and it is fixable. Here is the fix.
“Your OpenAI Ads Identifier Coverage Is at 0%? Here's What to Do”
The short version
- 0% identifier coverage is not the same as 0 conversions. It means your events are arriving with no identifier OpenAI can match, so none of them get credited.
- The usual cause is sending events with no user object attached, or running a browser pixel with no server-side events at all.
- The fix: deliver events server-side and attach device and network signals to every one, adding a hashed email only where consent allows.
- With Reach this is automatic. Install it and coverage moves off zero on its own.
You opened OpenAI Ads Manager, found identifier coverage at a flat 0%, and understandably worried something is broken. The good news: this is one of the most common and most fixable setup issues in ChatGPT ads. It almost always means your events are firing, but arriving with nothing OpenAI can match them on. Here is how to confirm that and fix it.
What 0% coverage means, and what it does not
First, separate two different problems that look similar:
- 0% identifier coverage means conversion events are reaching OpenAI, but none carry a usable identifier, so none can be matched to an ad. The pipe works; the events are just blank.
- 0 conversions is a different thing entirely, often no events firing or simply an early channel with low volume. That case is covered in why your ChatGPT ads show 0 conversions.
If your coverage is zero specifically, keep reading. This is a signal problem, not a volume problem.
Why your coverage is stuck at zero
Run down these causes, most common first:
- No user object on your events. The single most common cause. Your events send the conversion but omit the optional user object, so there is nothing for OpenAI to match. This alone produces a flat 0%.
- Browser pixel only, no server events. A pixel-only setup often cannot attach reliable identifiers, and much of it is lost to ad blockers and tracking protection before it arrives.
- Consent blocking every signal. An over-aggressive consent setup can strip out every identifier, including non-PII device and network signals that are safe to send.
- Identifiers sent wrong and rejected. Raw values where hashes are required, or malformed hashes, get dropped, leaving coverage at zero.
The fix, step by step
- Confirm you are sending server-side. Events should flow through OpenAI's Conversions API, not just a browser pixel. Server-side delivery is what lets you reliably attach identifiers in the first place.
- Attach a user object to every event. This is the actual fix for a flat zero. Every conversion event should carry the optional user object.
- Lead with device and network signals. Add IP address and user-agent first. They need no protected customer data and move most merchants off zero immediately.
- Add a hashed email where consent allows. For a higher-quality match, include a SHA-256 hashed email, but only where the shopper has consented and protected-customer-data rules permit. Never send it raw.
- Recheck after events flow. Give it a day or two of real traffic, then confirm coverage has climbed in Ads Manager.
If you use Reach, it is already handled
This is exactly what Reach's identifier feature does for you. It attaches a user object to every server-side event automatically, device and network signals first, hashed email where consent allows, so you do not have to configure any of it. For most stores, installing and sending live events is enough to move coverage off zero on its own.
The honest privacy note
A coverage of zero does not mean you must start exposing customer PII. The opposite: most merchants clear zero using only device and network signals, with no protected data at all. Keep it minimal, keep emails hashed, keep it consent-gated. You can read the full picture in identifier coverage in OpenAI Ads, explained.
Move your coverage off zero. Install Reach on the Shopify App Store to send server-side ChatGPT Ads events with a privacy-first user object attached automatically, so OpenAI finally has something to match your conversions on.
Frequently asked questions
What does 0% identifier coverage mean in OpenAI Ads?
It means your conversion events are reaching OpenAI but none carry an identifier it can match to an ad. The events send; they are just missing the user signals needed to match them.
Is 0% coverage the same as 0 conversions?
No. 0% coverage means events arrive but cannot be matched. 0 conversions usually means no events are firing or the channel is simply early. They have different fixes.
How do I fix 0% identifier coverage?
Send events server-side through the Conversions API and attach a user object to every event, starting with device and network signals like IP and user-agent, plus a hashed email where consent allows.
Do I need to send emails to fix 0% coverage?
No. Most merchants clear zero using only device and network signals, which need no protected customer data. A hashed email is an optional extra.
Can an app fix this automatically?
Yes. Reach attaches the user object to every server-side event for you, so coverage moves off zero without any configuration.