The legacy Salesforce → Google Ads conversion import was sunsetted on May 31, 2025 [1]. Google auto-migrated most accounts to Data Manager, but accounts with custom-coded API workarounds — or those whose auto-migration silently failed — may have been flying blind for twelve months. Either way, the API-based workaround some teams patched in dies on June 15, 2026 [2]. That is roughly three weeks from today.
Why this matters
Three deadlines are stacked on top of each other and people keep conflating them. First: the legacy Salesforce integration — the one that read Lead + Opportunity into a single conversion action — stopped being supported on May 31, 2025 [1]. Google auto-migrated most accounts to Data Manager-based conversion actions, in their current state and on their existing schedules. If your account name still appears in a notification banner saying "your legacy Salesforce integration has been migrated," that part already happened to you and you do not need to do anything for it specifically.
Second: any custom integration that uploads closed-won via the Google Ads API UploadClickConversions method — which many agencies built when the legacy SF connector was too rigid — hits a hard wall on June 15, 2026 [2]. The official API docs are unambiguous: "Starting June 15, 2026, UploadClickConversion requests will fail if the developer token hasn't previously sent requests to upload offline conversions or enhanced conversions for leads" [2]. Existing active integrations — developer tokens that uploaded offline conversions or EC-for-Leads prior to that date — stay on Google's allowlist and keep working while teams migrate; brand-new adopters from June 15 onward are blocked entirely, per practitioner reporting on the rollout [4].
Third: Google is unifying enhanced-conversion ingestion across website tags, Data Manager, and API connections from April 2026, and merging Enhanced Conversions for Web and for Leads into a single toggle in June 2026 [5]. The direction of travel is one ingestion pipe — Data Manager — feeding both Enhanced Conversions and Offline Conversion Import. If you migrate to Data Manager now, the April–June 2026 changes happen for free; if you delay and your API job dies, Smart Bidding loses its closed-won signal and tCPA/tROAS regress within two learning cycles.
For B2B accounts where the GCLID → CRM → closed-won loop is the entire measurement story, this is not a hygiene fix. It is the difference between Smart Bidding seeing revenue and seeing form fills.
How to verify the issue
Whitead infers this rule from conversion-source naming patterns; ground-truth verification requires a five-minute spot check inside Google Ads and one question to your engineering team.
- Inventory current Salesforce-linked conversion actions. Open Tools → Conversions → Summary. Filter the conversion source column for anything labeled Salesforce, Import from clicks, or a custom name your team gave to the legacy integration.
- Check the source surface. Click each conversion action and read the Source field. If it says Salesforce with a connection that lives under Tools → Data manager → Connected products, you are already on the new pipe and you can close this finding. If it says Import from clicks (API) or Import (file uploads / scheduled URL) — or if you see Salesforce offered as an option while creating a new conversion action from import [3] — that is the legacy pattern.
- Confirm with engineering whether a custom API uploader exists. Ask: "Does any internal job call
ConversionUploadService.UploadClickConversionswith a Salesforce-sourced GCLID?" If yes, that job is the one that dies June 15. - Check the developer token's recent activity. If your team has API access, query the Google Ads API for usage logs. Tokens with a history of uploading offline conversions or EC-for-Leads before June 15, 2026 stay on the allowlist; tokens without that history are blocked from June 15 onward [2][4].
- Confirm Sales Cloud integration health (separate product). Under Tools → Data manager, look for an active Salesforce connection. The modern Sales Cloud integration imports post-lead conversion events via GCLID join or Enhanced Conversions for Leads and is fully supported [3] — do not turn it off thinking it is the legacy one.
If steps 1–3 show legacy artifacts and step 4 shows an active custom uploader, the rule is confirmed.
How to fix it
Time estimate: 2-4 hours for accounts auto-migrated by Google that just need verification; 4-8 hours if you have a custom API uploader to rewrite against the Data Manager API.
- Triage what is auto-migrated vs custom. Google migrated most legacy Salesforce conversion actions to Data Manager automatically and notified the account [1]. Open Tools → Data manager → Connected products and look for a Salesforce connection created by the migration. If it is there, importing data, and biddable, you are done — go to verification.
- For accounts not auto-migrated: create the Data Manager Salesforce connection manually. Follow the five-step path Google publishes [3][6]: (a) under Tools → Data manager, connect a new product and select Salesforce, authorize via OAuth; (b) pick the SObject (Lead or Opportunity — one per connection, unlike the legacy combined model); (c) map required fields (GCLID, Conversion Time, Conversion Value, Currency); (d) create the linked conversion action via Goals → Conversions → New conversion action → Import; (e) under the legacy conversion action's import schedule, set Not Scheduled to stop double-counting once data parity is confirmed.
- For custom API uploaders: rewrite against the Data Manager API. Swap the
ConversionUploadService.UploadClickConversionscall for the Data Manager APIIngestEventsmethod [7]. Required schema changes: include anevent_sourcefield (APP,IN_STORE,PHONE, orOTHER);transaction_idis optional for offline conversions and EC for Leads in v1.3+ [7]. The Data Manager API also accepts the same hashed PII payload as Enhanced Conversions for Leads, so one job can drive both ingestion paths. - Avoid double-counting during the cutover. Run old and new in parallel for 7-14 days with the new conversion action set to Secondary (not biddable). Compare daily volume; once within ±5%, flip the new action to Primary, the old action to Secondary, and stop the legacy import schedule.
- Validate the allowlist position if you have a custom integration. If your developer token uploaded offline conversions or EC-for-Leads before June 15, 2026, you stay on Google's allowlist and the API keeps working during migration [2]. If not — and you only realize this now — the Data Manager API is the only path; there is no extension request process [4].
- Plan for the April 2026 unification. Google now accepts user-provided data from website tags, Data Manager, and API connections simultaneously [5]. Migrating to Data Manager today positions you for the unified pipe; legacy integrations cannot subscribe to it.
How to confirm the fix worked
Checklist — verify within 14 days of cutover
- Data Manager connection exists under Tools → Data manager → Connected products, status Active.
- New conversion action shows Status: Recording within 3 hours of the first scheduled import.
- Volume parity: new conversion action's daily count is within ±5% of the legacy action's count over a 7-day window.
- Match rate on the connection's diagnostics tab is healthy — practitioner benchmark is ≥ 85% for GCLID-based imports and ≥ 80% when the connection layers Enhanced Conversions for Leads. Google does not publish a universal threshold; treat these as floors, not targets. If your match rate sits below them, audit GCLID capture and PII hashing before continuing.
- Legacy action moved to Secondary (not biddable) and its import schedule set to Not Scheduled.
- For custom API uploaders: the rewritten
IngestEventsjob runs successfully against the Data Manager API for at least one full daily cycle withoutINVALID_ARGUMENTerrors. - Smart Bidding stability: tCPA / tROAS strategies show no abnormal volume drop in the 14 days post-cutover. A drop here means the new action is not flowing biddable signal yet.
If all seven pass, the finding closes. The most common failure mode is forgetting to flip biddable: the new action records, the old action stops, but neither is Primary — so Smart Bidding starves and CPAs spike.
Blast radius. This finding rarely fires alone. In Whitead audits it clusters with enhanced_conversions_for_leads_active (the EC-for-Leads toggle predates the legacy SF connector entirely), gclid_capture_suffix (the legacy connector tolerated sloppy GCLID capture; Data Manager API is stricter), and primary_vs_secondary_conv_actions (cutover ends with two Salesforce-sourced actions and no clear Primary). Fixing this rule unblocks all three: Data Manager migration forces EC-for-Leads adoption, surfaces GCLID gaps via match-rate diagnostics, and demands an explicit Primary/Secondary call during the parallel run. Every account we have audited with a stale legacy SF integration also showed degraded tCPA — Smart Bidding optimizing against a slowly decaying signal for months because the legacy pipe silently dropped rows that the modern pipe surfaces as match-rate warnings. The June 15, 2026 deadline is the forcing function; the win is restoring signal quality.
Related rules + concepts
- Offline Conversion Import — glossary on OCI mechanics and GCLID join keys.
- Enhanced Conversions for Leads — the modern B2B path the Data Manager connection enables.
- Enhanced Conversions unification 2026 — the April–June 2026 ingestion merge that makes Data Manager the canonical pipe.
- GCLID, GBRAID, WBRAID — click-ID capture is the prerequisite for any OCI flavor.
Sources
- Google Ads Help — About Google Ads Conversion Import for Salesforce (Legacy). https://support.google.com/google-ads/answer/6179720 (accessed 2026-05-25)
- Google for Developers — Manage offline conversions (Google Ads API). https://developers.google.com/google-ads/api/docs/conversions/upload-offline (accessed 2026-05-25)
- Google Ads Help — How to set up a Salesforce integration. https://support.google.com/google-ads/answer/13548778 (accessed 2026-05-25)
- PPC Land — Google blocks new offline conversion imports via Ads API from June 15. https://ppc.land/google-blocks-new-offline-conversion-imports-via-ads-api-from-june-15/ (2026-05)
- Google Ads Help — Updates to your enhanced conversions settings. https://support.google.com/google-ads/answer/16884284 (accessed 2026-05-25)
- Google Ads Help — Legacy Salesforce integration for conversions upgrade FAQ. https://support.google.com/google-ads/answer/14728349 (accessed 2026-05-25)
- Google for Developers — Data Manager API release notes. https://developers.google.com/data-manager/api/reference (accessed 2026-05-25)
- ALM Corp — Google Ads Offline Conversion Imports 2026: Data Manager API Guide. https://almcorp.com/blog/google-ads-offline-conversion-imports-2026-data-manager-api/ (2026)