OpenAI Ads · Offline Conversions

OpenAI Ads Offline Conversions: How to Set Them Up

Offline conversions are purchases, closed deals, and booked appointments that happen outside the browser — in a CRM follow-up, a sales call, or a payment processed days after the original click. OpenAI Ads can optimize toward these events, but only if you send them back. Most advertisers never do. ConversionLoop automates the entire pipeline: capture the click identifier, receive your CRM or Stripe webhook, match the conversion, and upload it to OpenAI Ads in under 90 seconds.

Stripe
Your CRM
webhook
ConversionLoop
API upload
OpenAI Ads
Ad platform
10-min setupNo code required14-day free trialReal-time upload
90s
Upload delay after conversion
30 day
Attribution window
0
CSV uploads required
10 min
Setup time

The offline conversion gap in OpenAI Ads

OpenAI Ads ships with a pixel for browser tracking and a CAPI endpoint for server-side events. But neither of those captures what happens in your sales process after the click. If a lead clicks your ad, books a call, and converts three days later in a Zoom call — the pixel missed it. If a Stripe subscription upgrades after a 14-day trial — the pixel only saw the trial start. Those are your highest-value conversions, and they are invisible to your campaigns unless you explicitly send them back.

Ad click
GCLID assigned
Landing page visit
GCLID captured by cl.js
Booking made
Patient books through Pabau
Invoice paid
Without CL — Google sees nothing
Invoice paid
With ConversionLoop — conversion uploaded

ConversionLoop vs. manual CSV upload

Why the manual process breaks — and what changes when you automate it

Feature
Manual / No tool
ConversionLoop
Upload method
Manual CSV every few days
Automatic webhook — under 90 seconds
Attribution accuracy
Gaps from delayed uploads
Real-time — no attribution window risk
Developer required
Yes — custom upload scripts
No — fully no-code setup
CRM integration
Custom build per platform
Native connectors for major CRMs
Revenue data
Often excluded from CSV exports
Passed automatically from webhook data
Deduplication
Manual event ID tracking required
Handled automatically

How automated offline conversion upload works

ConversionLoop captures the click at the top of the funnel, then waits. When your CRM or payment platform fires a conversion event — days or weeks later — ConversionLoop matches it to the original click and uploads it to OpenAI Ads immediately.

1

Add cl.js to your landing page (one script tag or via GTM). It captures the oppref click ID and stores it against the visitor's email and session.

2

The visitor converts — fills out a form, starts a trial, or books a call. Their email is now linked to their click.

3

Days later, the real conversion happens: deal closed in CRM, subscription activated in Stripe, invoice paid in your billing system.

4

That system fires a webhook to ConversionLoop with the conversion data and the customer email.

5

ConversionLoop looks up the stored oppref for that email, formats the conversion payload, and uploads it to OpenAI Ads CAPI.

6

OpenAI Ads attributes the revenue back to the original campaign and updates your conversion data.

Ready to connect Stripe?

14-day free trial. No credit card. Setup takes 10 minutes.

Start free trial

Step-by-step: Connect Stripe to OpenAI Ads

Follow these steps once. Everything after is automatic.

1
Add cl.js to capture click IDs
Drop one script tag into your landing page head, or install via Google Tag Manager. The script runs at page load and captures oppref automatically.
2
Create a ConversionLoop integration
Select your conversion source (Stripe, HubSpot, Salesforce, etc.) and OpenAI Ads as your destination. You get a unique secure webhook URL.
3
Point your webhook to ConversionLoop
In Stripe, add a webhook for payment.succeeded. In your CRM, set a workflow trigger on deal closed. Paste your ConversionLoop URL as the endpoint.
4
Configure your OpenAI Ads credentials
Enter your Pixel ID and Conversion API key. Map your event types to the correct OpenAI Ads conversion actions.
5
Activate and verify
ConversionLoop sends a test event and confirms receipt in your OpenAI Ads events manager. Activating the integration takes one click.

Stripe events worth tracking

Payment Succeeded

Stripe or billing system. Pass the exact charge amount for value-based campaign optimization.

Deal Closed Won

CRM event. The highest-value offline signal — ties ad spend directly to closed revenue.

Subscription Created

Trial converted to paid. Critical for SaaS campaigns where trials are the main CTA.

Invoice Paid

For service businesses. Links ad campaigns to actual revenue, not just booking volume.

Lead Qualified

When your team marks a lead as SQL in the CRM. Useful for lead gen campaigns with a long sales cycle.

Key takeaways

  • 1OpenAI Ads can't see conversions that happen in your CRM or after a sales call without server-side upload.
  • 2Manual CSV upload is the standard approach — it requires developer time and introduces attribution gaps.
  • 3ConversionLoop automates offline conversion upload in real time via webhooks, no CSV exports needed.
  • 4Works with any CRM, Stripe, booking platform, or custom system that can fire a webhook.
  • 5Campaigns that optimize on offline conversions consistently outperform those optimizing on pixel events alone.

Frequently asked questions

What is the offline conversion attribution window for OpenAI Ads?

OpenAI Ads currently supports a 30-day click attribution window for offline conversions. Conversions uploaded within 30 days of the original ad click will be attributed to the campaign. ConversionLoop uploads within 90 seconds of the webhook receipt, well within the window.

Do I need the OpenAI Ads pixel installed to use offline conversions?

No. Offline conversion upload via CAPI works independently of the browser pixel. The cl.js script on your landing page captures the click ID — that is the only client-side component required.

What if my CRM doesn't support webhooks?

ConversionLoop also supports polling integrations for CRMs like HubSpot and Salesforce that can push data via Zapier or Make. Contact support and we will help configure the right data path for your stack.

Can I send conversion value with offline events?

Yes, and you should. Passing the exact deal or payment value with each conversion enables value-based bidding in OpenAI Ads, which consistently outperforms target CPA bidding for advertisers with varied deal sizes.

Stripe
Your CRM
webhook
ConversionLoop
API upload
OpenAI Ads
Ad platform

Connect Stripe to OpenAI Ads today

Stop optimizing on guesswork. Every invoice, treatment, and booking — tracked and attributed automatically.

Start free — 14 days on us

No credit card required · 10-minute setup · Cancel anytime