Skip to content

Enhanced Conversions unification (June 2026) — audit playbook

playbook google ads updated 2026.05.20 9 min read

Google Ads is collapsing Enhanced Conversions for web and Enhanced Conversions for Leads (ECL) into a single on/off toggle, with multi-source ingest (gtag + Data Manager + Google Ads API) accepted simultaneously. Every EC setup guide written before April 2026 is now structurally wrong — and the most expensive audit miss is leftover EC tags firing alongside Data Manager uploads, double-counting the same conversion into Smart Bidding.

What the unification means + benchmark

Before April 2026, an advertiser picked ONE Enhanced Conversions implementation per conversion action: either Google tag, Google Tag Manager, or Google Ads API. ECL was a separate product with its own toggle, terms, and diagnostics report. Starting April 2026, Google Ads accepts user-provided data from website tags (gtag/GTM), Data Manager connectors (BigQuery, HubSpot, Shopify, Google Drive, Salesforce), and API connections (the new Data Manager API plus the legacy ConversionUploadService) all at the same time (PPC Land, 2026-04-12). From June 2026, the method-selection UI is removed entirely and EC + ECL collapse into a single toggle at the account level (GoalsSettingsCustomer data use) and per conversion action (Search Engine Land, 2026-04-10).

Two follow-on deadlines shape the audit:

  • June 15, 2026 — new developer tokens are blocked from ConversionUploadService.UploadClickConversions; new offline import integrations must use the Data Manager API (PPC Land, 2026-05-18).
  • December 2025 — Data Manager API became the primary first-party ingestion endpoint across Google Ads, GA4, and DV360, with a unified schema and OAuth scope distinct from the Google Ads API.

Operational benchmark: in a clean post-unification setup, a conversion action's Receiving diagnostic should list ≤ 1 active path per signal type unless deduplication keys are present on every path. Anything else is a double-count risk.

Top causes (ranked by audit frequency)

  1. Legacy gtag EC still firing after Data Manager API rollout — most common. Marketing migrated lead measurement to the Data Manager API in Q1 2026; nobody removed the original gtag EC snippet from the form thank-you page. Result: same lead lands twice.
  2. ECL-only configuration treated as "EC enabled" — accounts where only Leads was turned on, web EC was never set up, and auditors mark the account "EC done" without realising web-side conversions are still bare gclid.
  3. Web-EC-only configuration with no leads pipeline — inverse case. EC enabled on the website purchase action; the form-fill conversion action has no Customer Data path at all, so CRM-uploaded closed-won values arrive without user-provided data matching keys.
  4. Auto-migrated stack with no deduplication keys — Google's June 2026 auto-migration preserves whatever was active. If gtag EC fires without an event ID AND Data Manager uploads the same event without order_id, Google cannot dedupe; Smart Bidding sees inflated signal.
  5. Stale Data Processing Terms acceptance — accounts that accepted older customer-data terms but lost admin who agreed; new toggle silently inactive on at least one ingest path.
  6. Multiple API integrations from agency + in-house team — ConversionUploadService still running from the agency stack while in-house engineers stand up Data Manager API uploads. No single owner mapping which path covers which conversion action.
  7. ECL diagnostics interpreted as account-wide health — the legacy ECL diagnostics report only covered the Leads path; once unified, it no longer reflects web-side match rate, but auditors keep citing it.

Diagnostic checklist

Run top-down per conversion action — fixing a path while another duplicates the same event just shifts the over-count.

#CheckWhere in UI / APIThreshold
1Unified EC toggle state (account level)GoalsSettingsCustomer data useON + Data Processing Terms accepted by a current admin
2Per-conversion-action ingest pathsGoalsConversions → action → DiagnosticsList EVERY active path: gtag, Data Manager connector, API
3Deduplication key on each pathgtag: transaction_id; Data Manager: order_id; API: order_idSame key value on every path for the same event, or only ONE path active
4ConversionUploadService still in use?Google Ads API call logs / agency runbookIf yes, plan Data Manager API migration before June 15, 2026
5Match rate per ingest pathConversion action → User-provided data column≥ 50% match for web EC; ≥ 30% for CRM-sourced ECL (per Google)
6Cross-check with GA4 same-event countGA4 → Conversions for the same date rangeGoogle-Ads-reported count > GA4 count by >20% → duplication suspect
7Ownership map for every ingest pathInternal doc / Whitead audit notesEach path has a named owner; if not, disable

Fix paths

Order matters — disable duplicate paths before chasing match-rate improvements, or you will tune a signal that is already inflated.

  1. Inventory every ingest path per conversion action. For each conversion_action_id, list: (a) gtag/GTM tags firing today, (b) active Data Manager connectors, (c) API integrations (new Data Manager API and any surviving ConversionUploadService jobs). Treat any path without a named human owner as a candidate for removal.

  2. Pick a primary path per signal type and add deduplication keys everywhere else. A clean shape: web purchases via gtag with transaction_id; offline closed-won via Data Manager API with matching order_id. Where two paths must coexist temporarily, both MUST carry the same key value; Google auto-dedupes on order_id + conversion_action_id (Google Ads Help — About offline conversion imports, 2026).

  3. Disable redundant paths. If gtag EC was carrying the form-fill before ECL went live, and the form is now covered by Data Manager API uploads from the CRM, REMOVE the gtag user-provided-data snippet from the thank-you page. Do not rely on Google's dedupe alone — it requires the key to be present and identical.

  4. Re-baseline 14 days after each change. Smart Bidding consumes whatever volume arrives; cutting a duplicate path will look like a conversion drop. Annotate the campaign and hold bid changes until 14d of clean data — see Smart Bidding learning phase.

  5. Migrate any surviving ConversionUploadService jobs to the Data Manager API. New developer tokens are blocked from UploadClickConversions from June 15, 2026; existing tokens get temporary access during migration but the schema and OAuth scope differ — budget for engineering time.

  6. Re-accept Customer Data Terms with a current admin. If the user who accepted terms in 2024 no longer has Admin access, re-accept under the unified panel; the toggle is silently inactive otherwise. See fix-admin-access-excessive for the governance side.

  7. Update the audit runbook. Replace any pre-April-2026 EC instructions in your team's wiki. The method-selection screen no longer exists; cite the unified panel path instead.

Methodology note. Whitead's enhanced_conversions_unified check fans out per conversion action and enumerates every active ingest path via the Google Ads API conversion-action diagnostics endpoint plus a GTM container scan (when GTM credentials are connected). The rule flags a conversion action when ≥ 2 ingest paths are active AND a deduplication key is missing on ≥ 1 path. Severity tiers: 2 paths with full dedup keys (advisory), 2 paths with one key missing (high), ≥ 3 paths without a single owner (critical). The fix-priority logic surfaces the path-without-owner first because that path is the most likely to be silently double-counting and the cheapest to disable. The check explicitly does NOT recommend disabling Data Manager API uploads in favour of legacy paths — the deprecation timeline makes that the wrong direction.

When to escalate

Escalate the account for measurement-architecture review (not a tactical fix in the UI) when:

  • Conversion actions show ≥ 3 active ingest paths AND each is owned by a different team (agency, in-house engineering, marketing ops) — needs an ownership-map meeting before any path is disabled, otherwise you will break a reporting downstream nobody documented.
  • Google Ads reported conversion count exceeds GA4 conversion count by >30% on the same goal for 14 days AND match rates look healthy on every path — duplication is structural and Smart Bidding has likely already learned on inflated signal; pause bid-strategy changes until cleaned up, then re-enter the learning phase deliberately.
  • Any surviving ConversionUploadService job still serves new lead measurement after May 2026 — engineering decision, not Ads UI; the June 15 cutover blocks new tokens and your in-house API client may not survive the schema migration without dev work.

Sources

// was this useful?
// anonymous · no personal data stored