What is offline conversion import?
Offline conversion import sends Google Ads conversions that happened outside the browser — sales call closes, in-store purchases, returned forms, retail conversions tracked offline — back to Google Ads using the original ad click's gclid. Google has a 90-day window for matching uploaded conversions to clicks; conversions older than that can't be attributed.
Required fields: gclid (or wbraid/gbraid for iOS), conversion timestamp, conversion value, currency. Four implementation methods: (1) Google Ads UI manual upload (CSV file, simplest), (2) Google Ads API (programmatic for ongoing automation), (3) Salesforce/HubSpot/Pipedrive integrations (CRM-native), and (4) Zapier/Make automations (lightweight).
For B2B and high-consideration purchases where the close happens days or weeks after the click, offline conversion import is what makes Smart Bidding actually work.
Why offline conversion import matters
The mechanic problem: Smart Bidding learns from conversions. For B2B with long sales cycles, conversions happen long after the original click — the lead converts in a CRM weeks later, not on the website. Without offline import, Google Ads only sees the early-funnel conversions (lead form fills) and optimises against those.
Optimising for lead form fills (when your goal is closed deals) produces predictable failure: the algorithm finds clicks that produce many leads but few qualified opportunities. Smart Bidding works against your actual business goal.
Offline conversion import closes this loop. When a deal closes 21 days after the original ad click, you upload that closed deal conversion via the API. Google Ads attributes it to the original click. Smart Bidding learns to optimise for the right outcome.
The 90-day window
Google Ads has a hard 90-day matching window. Conversions older than 90 days from the original click can't be attributed:
- Day 0: User clicks ad with gclid
ABC123 - Day 21: Deal closes in CRM
- Day 22: You upload the conversion via API → Google matches gclid to click → conversion attributed
- Day 91: Same scenario but you upload Day 91 instead of Day 22 → Google rejects the upload as out-of-window
This means your CRM-to-Google-Ads pipeline must run within 90 days of the original click. For long-cycle B2B sales (90+ days), some conversions become inherently unmappable — you need parallel attribution mechanisms (Enhanced Conversions, modelled conversions) to fill the gap.
In practice: most B2B sales cycles are 30–60 days. The 90-day window is fine. Pipeline lag of 30+ days from close to upload should be reduced — automate the upload to run nightly or weekly maximum.
What you need to capture
For each closed conversion, your CRM (or wherever the conversion data lives) must store:
- gclid — the Google Ads click ID from the original lead capture. Without this, the conversion can't be attributed to the click.
- Conversion timestamp — when the conversion happened (deal close, payment received, etc.)
- Conversion value — monetary value, in your currency
- Currency — ISO 4217 code
Plus optionally for Enhanced Conversions integration:
- Email (hashed)
- Phone (hashed)
- Name (hashed)
- Address (hashed)
The gclid capture is the most failure-prone step. The pattern: when a lead form is filled out on your site, capture the gclid from the URL and write it to a hidden form field. The CRM stores it on the lead record. When the deal closes, the gclid is available for the conversion upload.
Common breakage points:
- gclid not captured at form submit — leads have no gclid, conversions can't be attributed
- gclid captured at submit but not stored on the deal record — when deal converts, gclid is lost
- gclid stored on lead but not transferred to opportunity — Salesforce-style CRMs need explicit field mapping
Audit this end-to-end: take a sample of recent closed deals. Check if gclid is present on each. The closure rate from "gclid present at lead capture" → "gclid present on closed deal" should be 95%+. Lower than that, the CRM pipeline is leaking gclids somewhere.
The four implementation methods
Method 1 — Google Ads UI manual CSV upload
Simplest. Google Ads → Tools → Conversions → Uploads → New upload. Upload a CSV with columns: Google Click ID, Conversion Name, Conversion Time, Conversion Value, Conversion Currency.
Pros: no code, easy for small teams. Cons: manual process, easy to fall behind, doesn't scale.
Want to see whether attribution loss is already distorting your channel data?
Best for: companies just starting offline conversion tracking, small CRM volumes (under 100 closes/month).
Method 2 — Google Ads API
Programmatic upload. Your application or scheduled job calls the Google Ads ConversionUploadService API.
Pros: fully automated, scalable to any volume. Cons: requires development time to build, requires API authentication setup.
Best for: companies with engineering capacity wanting end-to-end automation.
Method 3 — Native CRM integrations
Salesforce, HubSpot, Pipedrive all have native or partner integrations to Google Ads:
- Salesforce ↔ Google Ads — direct sync via Google's Salesforce package
- HubSpot ↔ Google Ads — built-in connector in HubSpot Marketing Hub
- Pipedrive ↔ Google Ads — via the Google Ads marketplace app
Pros: pre-built, often included in CRM subscription. Cons: limited customisation, sometimes have data freshness lag (24h+).
Best for: companies already using these CRMs who want low-effort integration.
Method 4 — Zapier / Make automation
For CRMs without native integration, lightweight automation tools can bridge to Google Ads:
- Zapier: "When new closed-won deal in CRM → upload conversion to Google Ads"
- Make (formerly Integromat): similar pattern with more flexible logic
Pros: no code, fast to set up. Cons: monthly subscription cost (£20-£200/month), reliability depends on automation tool, limited error handling.
Best for: small teams without engineering, custom CRMs, or as a stopgap before building Method 2.
How offline conversion import combines with Enhanced Conversions
Both can run on the same conversion. The combined data improves match quality:
- Offline conversion with gclid → Google matches conversion to click via gclid
- Enhanced Conversions data (hashed email, phone, etc.) → Google additionally matches via user-level data
- Combined → Highest possible match rate, even when gclid was missing or stripped
For high-value conversions where attribution accuracy matters, send both. The implementation overhead is small once Enhanced Conversions hashing logic is in place.
Validating offline conversion import
Three checks:
Check 1 — Upload success rate. In Google Ads → Tools → Conversions → Uploads, the history shows each upload's success/failure. Failed rows are listed with reason codes. Common failures: gclid not found (conversion outside 90-day window), invalid format, duplicate conversion.
Check 2 — Conversion attribution. In Google Ads → Conversions → click on your offline conversion action → check the "All conv." metric. Should be increasing as uploads happen. If flat after upload, attribution isn't working — investigate failure logs.
Check 3 — Smart Bidding response. After 30+ days of consistent offline conversion uploads, Smart Bidding should adjust to favour campaigns and queries that produce closed conversions. If campaign performance reports show shifting CPC patterns, the algorithm is incorporating offline data.
If after 30 days you don't see any of these signals, the offline conversion data isn't reaching Google Ads or isn't being matched. Re-audit the gclid capture and upload pipeline.
FAQ: Offline Conversion Import: The 90-Day Window
What should a team validate first when offline conversion import: the 90-day window appears?
How do I know whether the fix actually worked?
When should this become a full GA4 audit instead of a quick fix?
Related guides for Offline Conversion Import: The 90-Day Window
ChatGPT, Atlas, Perplexity, Comet, Claude: How Each Shows Up in GA4 (2026 Reference)
In 2026, AI traffic in GA4 splits into three buckets. Browsers and assistants that pass clean referrers (Perplexity web, Perplexity Comet, Claude.ai, Copilot, Gemini standalone) appear with a recognisable source / medium like perplexity.ai / referral. Surfaces that strip the referrer (ChatGPT Atlas…
Perplexity Sources Report: How to Influence What It Cites in 2026
Perplexity citations correlate strongly with five factors: (1) ranking in Bing's top 10 for the underlying query (Perplexity uses Bing's index as fallback alongside its own ~5 billion-URL custom crawler), (2) a clear direct answer in the first 50 words of the relevant page…
Check Offline Conversion Import: The 90-Day Window before campaign reporting gets blamed for the wrong issue
Run a free GA4 audit to spot attribution breaks, UTM governance issues, self-referrals, and source/medium loss fast.