The two ways to send conversions
| Method | Runs in | Good for |
|---|---|---|
| Measurement pixel | The visitor's browser | Form submissions and page actions |
| Conversions API | Your server | Confirmed events, such as a demo booked in your CRM |
| Both | Browser and server | Most B2B setups; OpenAI deduplicates with the same pixel ID, event name and event ID |
Which events to send
- Use the standard lead_created event for demo and contact requests.
- Use a custom event for actions without a standard event, such as a booked meeting or a pricing calculator used.
- Keep the list short. Optimised bidding needs enough of one event to learn from.
The click identifier
When an ad click supplies the click identifier OpenAI calls oppref, capture it on your site and send it with server events. The Conversions API doesn't capture it automatically.
Attribution windows
Conversion settings use an attribution window in days. The API's defaults are a 30-day click window and a 1-day view window. B2B decisions take longer than 30 days, so treat ad-reported conversions as the start of the story, not the end.
Check against your own data
Ads Manager reports views, clicks, click-through rate and spend, with clicks refreshed about every 15 minutes and spend lagging 7–8 hours. Compare its conversions with your CRM every week, and judge campaigns on meetings and pipeline. Attribution for long B2B cycles.
A B2B setup in five steps
- Install the pixel on every page, loading after consent where consent is required.
- Fire lead_created on the thank-you page or booking confirmation, with an event ID.
- Capture oppref from the landing URL into a hidden form field.
- Send the confirmed lead from your CRM through the Conversions API with the same event ID and the oppref value.
- Check the Monitoring endpoint after a test conversion: it returns a sample of events from about the last 15 minutes.
What to test before launch
| Test | Expected result |
|---|---|
| Visit with a test click | Page loads, pixel fires after consent |
| Submit a test form | lead_created appears in monitoring |
| CRM sends the same lead | One conversion, not two |
Questions
Do we need the Conversions API if we have the pixel?
Not strictly, but it makes measurement sturdier when browsers block scripts and lets you send events only after your CRM confirms a real lead.
What about meetings booked later by sales?
Send them as a custom event through the Conversions API. They're slower, but they're the events closest to revenue.
Will tracking work without consent?
In the UK, ad measurement needs consent under PECR. Visitors who decline won't be measured; plan for that gap.
Start here: ChatGPT ads for B2B. More articles in ChatGPT ads.