Skip to main content
Enhanced ConversionsGoogle Ads Enhanced Conversions

Get your Enhanced Conversions tracking to 95%+ accuracy guaranteed in writing.

Most Enhanced Conversions problems aren't Enhanced Conversions problems. The conversion action itself is firing on the wrong page, firing twice, or not firing at all for the customers who pay through a hosted checkout — and hashed email won't rescue an event that never happened. We fix the event, then attach clean first-party identifiers to it from your order record.

Free30 minutesNo obligation

Enhanced Conversions · what breaks

The symptoms that bring people to this page — Enhanced Conversions

  1. 01

    Diagnostics say "Recording" but the match rate stays flat

    The user-provided data tag is live and sending empty strings — your checkout clears the email field on submit, so the tag reads a blank input. Google reports the conversion as enhanced-eligible and matches nothing.

  2. 02

    Your identifiers are scraped with CSS selectors

    Auto-detect and manual selector setups read #email or .customer-phone off the rendered page. One theme update, one A/B test, one framework re-render and the selector points at nothing — silently, with no error anywhere in the UI.

  3. 03

    EC is layered on a conversion that never fires

    The purchase conversion is a URL-contains trigger on /thank-you, and PayPal or a hosted gateway returns some buyers to a different path. Enriching a missing event does nothing; the conversion is absent, not unmatched.

  4. 04

    The 2026 unified toggle switched on more than you scoped

    Google consolidated enhanced conversions for web, for leads, and customer data handling under one account-level control. Teams flip it on without checking which conversion actions inherit it, or what their consent banner is actually passing.

Enhanced Conversions · the fix

What changes once Enhanced Conversions are built properly

  • Identifiers come from your backend, not the rendered page

    Email, phone, first and last name, street, city, state, ZIP and country are read from the order record server-side. A redesign can't break what never depended on a selector.

  • Smart Bidding gets a value it can act on

    Value-based bidding is only as good as the conversion value you send. We pass the real order total from the source of truth, minus tax and shipping if that's how you measure margin.

  • iOS and Safari purchases stop disappearing from the report

    When the conversion is sent server-side with hashed identifiers and the stored click ID, ITP cookie truncation on the browser side stops deciding whether Google ever hears about the sale.

  • You can finally answer "is Google's number right?"

    We reconcile Google Ads conversions against your order or CRM records and label the remaining gap as attribution modeling, not data loss. Those two things need different fixes.

Enhanced Conversions · architecture

How an enriched Google Ads conversion is actually assembled

Enhanced Conversions is the last step, not the first one. The click ID has to be stored, the money event has to originate from your order record, and only then does hashed customer data have anything to attach to.

  1. 1

    Click lands, click ID stored first-party

    gclid, wbraid or gbraid is captured on the landing page with its timestamp and written to a first-party cookie set through your own subdomain, so it outlives a multi-day consideration window.

  2. 2

    The money event fires at order creation

    The conversion is keyed to your backend marking the order paid, not to a visitor reaching a /thank-you URL that a hosted gateway may never send them to.

  3. 3

    Identifiers normalized, then SHA-256 hashed

    Email lowercased and trimmed, phone rewritten to E.164 with the country code, name and address fields normalized to Google's expected shape before hashing.

  4. 4

    Server container sends the conversion

    A GTM server container on your domain posts the conversion with the stored click ID and the user-provided data block, so nothing depends on what the browser still has.

  5. 5

    Rows reconciled against real orders

    Google Ads conversions are matched to your order or CRM records for the validation window, and the residual gap is labeled as modeling or as loss.

Enhanced Conversions · events

What we send to Google Ads, and where each piece comes from — Enhanced Conversions

A developer should be able to build from this table without asking us what a field means.

page_view (landing)A visitor arrives from an adgclid, wbraid, gbraid, click timestamp, landing_pageBrowser, stored first-party
purchaseYour backend marks the order paidvalue, currency, transaction_id, items[]Server
generate_leadThe backend accepts the lead, not on submit clickvalue, currency, lead_id, form_nameServer
user_provided_dataAttached to a conversion, never sent on its ownsha256_email, sha256_phone (E.164), sha256_first_name, sha256_last_name, street, city, region, postal_code, countryServer
conversion_adjustmentAn order is refunded or its value restatedtransaction_id, adjusted_value, adjustment_type, adjustment_timeServer
offline_conversion_importYour CRM marks the deal closed-wongclid or wbraid, conversion_time, value, currencyCRM to Google Ads API
consent_updateThe visitor changes their CMP choicead_user_data, ad_personalization, ad_storage, analytics_storageBrowser

Enhanced Conversions · prove

How we prove the enrichment did something — Enhanced Conversions

Diagnostics saying "Recording" is not evidence. The evidence is your Google Ads conversion rows lining up with orders you were actually paid for.

Source of truth

Paid orders in your ecommerce backend, or closed-won deals in your CRM

  • Export Google Ads conversions by day and by conversion action, then export the same days of paid orders.
  • Match on transaction_id, not on daily totals: sums can agree while individual orders are missing or doubled.
  • Read the match rate per conversion action; a live tag sending empty strings still reports as recording.
  • Run a real order through every payment path, including the hosted gateway, and confirm one row appears.
  • Label the residual gap: attribution model and conversion window differences are expected, missing IDs are not.
  • Re-run the comparison 14 days later so conversions credited outside the first window are counted too.

Enhanced Conversions · free audit

What we check in the free audit

  • Diagnostics say "Recording" but the match rate stays flat
  • Your identifiers are scraped with CSS selectors
  • EC is layered on a conversion that never fires
  • The 2026 unified toggle switched on more than you scoped

Checked against

Paid orders in your ecommerce backend, or closed-won deals in your CRM

Get my free conversion tracking audit

Free30 minutesNo obligation

Enhanced Conversions · when not to buy

When Enhanced Conversions is the wrong thing to buy

These are the calls where we tell people to keep their money.

  • Your Google Ads conversions already reconcile with your orders within a few percent and the diagnostics match rate is healthy.
  • Your conversion is a phone call or an offline close. That is an offline conversion import problem; enriching a form fill will not touch it.
  • Your checkout collects an email and nothing else. We will tell you the match ceiling before you sign rather than bill you to discover it.
  • You are not running Google Ads yet. This improves bidding on an account that already has spend and conversion history to learn from.

Enhanced Conversions · what we deliver

What the Enhanced Conversions engagement includes

  • Conversion action audit, one row per action

    Every conversion action in the account: what triggers it, whether it double-fires, its counting setting, attribution model, and whether it should exist at all. Most accounts are carrying two or three duplicates.

  • Rebuilt purchase or lead event on a real signal

    The money event moves off a thank-you-page URL guess onto an order-confirmation signal — a dataLayer push at order creation, a webhook, or a server-side event keyed to the order ID.

  • First-party data captured and hashed correctly

    Normalization before hashing — lowercase, trimmed, phone in E.164 with the country code — then SHA-256. Google rejects or mismatches sloppily formatted identifiers without telling you why.

  • Server-side delivery through your own subdomain

    The conversion goes out through a GTM server container on your domain, carrying gclid, wbraid or gbraid captured at landing and stored first-party, so click IDs survive a multi-day consideration window.

  • Consent wiring documented against your banner

    Consent Mode v2 signals mapped to your actual CMP categories, with ad_user_data and ad_personalization behaving the way your policy says they should. We document what is sent under each state.

  • Backend reconciliation report and handover doc

    A side-by-side of Google Ads conversions versus your orders for the validation window, plus a written spec of every tag, variable and trigger so your developer can maintain it without us.

Written guarantee

95%+ tracking accuracy

Measured against Paid orders in your ecommerce backend, or closed-won deals in your CRM. Miss it and we keep working at no cost.

Get my free conversion tracking audit

FAQ

Enhanced Conversions questions, answered

Not in readable form. The identifiers are normalized and SHA-256 hashed before they leave your environment, and Google matches the hash against its own hashed data. That said, you're still processing customer data for advertising purposes, so your privacy policy and consent flow have to reflect it — we'll tell you what to disclose, and your counsel signs off.

Free · 30 min

Let's find out whether your conversions fire before we enrich them

Free30 minutesNo obligation