Skip to content

Fix: Legacy Salesforce OCI is dead — migrate to Data Manager before June 15

finding google ads updated 2026.05.25 10 min read

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.

  1. Inventory current Salesforce-linked conversion actions. Open ToolsConversionsSummary. Filter the conversion source column for anything labeled Salesforce, Import from clicks, or a custom name your team gave to the legacy integration.
  2. Check the source surface. Click each conversion action and read the Source field. If it says Salesforce with a connection that lives under ToolsData managerConnected 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.
  3. Confirm with engineering whether a custom API uploader exists. Ask: "Does any internal job call ConversionUploadService.UploadClickConversions with a Salesforce-sourced GCLID?" If yes, that job is the one that dies June 15.
  4. 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].
  5. Confirm Sales Cloud integration health (separate product). Under ToolsData 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.

  1. Triage what is auto-migrated vs custom. Google migrated most legacy Salesforce conversion actions to Data Manager automatically and notified the account [1]. Open ToolsData managerConnected 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.
  2. For accounts not auto-migrated: create the Data Manager Salesforce connection manually. Follow the five-step path Google publishes [3][6]: (a) under ToolsData 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 GoalsConversionsNew conversion actionImport; (e) under the legacy conversion action's import schedule, set Not Scheduled to stop double-counting once data parity is confirmed.
  3. For custom API uploaders: rewrite against the Data Manager API. Swap the ConversionUploadService.UploadClickConversions call for the Data Manager API IngestEvents method [7]. Required schema changes: include an event_source field (APP, IN_STORE, PHONE, or OTHER); transaction_id is 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.
  4. 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.
  5. 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].
  6. 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 ToolsData managerConnected 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 IngestEvents job runs successfully against the Data Manager API for at least one full daily cycle without INVALID_ARGUMENT errors.
  • 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.

Sources

  1. Google Ads Help — About Google Ads Conversion Import for Salesforce (Legacy). https://support.google.com/google-ads/answer/6179720 (accessed 2026-05-25)
  2. Google for Developers — Manage offline conversions (Google Ads API). https://developers.google.com/google-ads/api/docs/conversions/upload-offline (accessed 2026-05-25)
  3. Google Ads Help — How to set up a Salesforce integration. https://support.google.com/google-ads/answer/13548778 (accessed 2026-05-25)
  4. 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)
  5. Google Ads Help — Updates to your enhanced conversions settings. https://support.google.com/google-ads/answer/16884284 (accessed 2026-05-25)
  6. Google Ads Help — Legacy Salesforce integration for conversions upgrade FAQ. https://support.google.com/google-ads/answer/14728349 (accessed 2026-05-25)
  7. Google for Developers — Data Manager API release notes. https://developers.google.com/data-manager/api/reference (accessed 2026-05-25)
  8. 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)
// was this useful?
// anonymous · no personal data stored