Foundations 6 min read

What Is Enhanced Conversions for Leads? Google's Offline PII Matching Explained

How to match an offline job back to the ad click: send the GCLID when you stored it, and a hashed email or phone from the same lead. This page shows what to put on the upload and where to turn it on.

Last verified: 2026-11-07

When a job closes, you tell Google Ads which click it came from. If you saved the GCLID, send it. On the same upload, send a hashed email or phone from that lead. Google uses the click ID when it lines up, and uses the hash when the person was signed in or filled out a form on your site.

Here is one booked job:

What you storedWhat you upload
GCLID from the landing pageThe full click ID
jane@example.comThe SHA-256 hash of jane@example.com, not the raw address
Invoice 1842, closed at 2:30 p.m. Chicago timeOrder ID 1842 and time 2026-04-10 14:30:00-05:00
$4,500Conversion value 4500.00 and currency USD

If the call never captured a GCLID, upload the hash anyway. If you have the click ID, keep it on the row. Do not wait until capture fails and then switch methods.

Google compared imported conversions from January 1 through January 14, 2026, and found an average 11% more Search conversions when enhanced conversions were used than with a standard import. That window is two weeks, so treat it as a short snapshot. It is not a match rate.

The Problem ECL Solves

Traditional offline conversion tracking depends entirely on the GCLID:

Click → GCLID captured → Stored in CRM → Uploaded with conversion → Match ✓

But this flow breaks in many real-world scenarios:

ScenarioGCLID Available?ECL Solution
Website doesn’t capture GCLID❌Match on hashed email/phone
GCLID expired (>90 days)❌Neither the click ID nor the hash matches. Upload a qualified lead while the GCLID is still inside 90 days.
User clicks on phone, converts on desktop❌ Different GCLIDMatch on hashed email (same Google account)
Call tracking doesn’t record GCLID❌Match on hashed phone number
CRM doesn’t store GCLID❌Match on hashed email from lead record
User clears cookies between click and form fill❌Match on hashed email

ECL provides an alternative matching path using PII the user voluntarily provided.

How ECL Works

The Matching Process

  1. User clicks your ad — Google records the click and associates it with the user’s Google account (linked to their email, phone, etc.)
  2. User provides PII — They fill out a form, call your business, or provide contact info
  3. Conversion happens offline — Days/weeks later, the lead becomes a customer
  4. You normalize the PII — Lowercase email, E.164 phone format
  5. You hash with SHA-256 — One-way hashing protects privacy
  6. You upload the hash with the conversion — Send it through the Data Manager API, along with the click ID when you have one
  7. Google matches independently — Google hashes its own records and compares hash values

Neither party ever sees the other’s raw PII. The matching happens entirely on hash values.

Supported Identifiers

IdentifierField NameNormalizationMatch Quality
Emailhashed_emailLowercase, trim★★★★★
Phonehashed_phone_numberE.164 format★★★★
First namehashed_first_nameLowercase, trim★★★
Last namehashed_last_nameLowercase, trim★★★
Street addresshashed_street_addressLowercase, trim★★
CitycityLowercase, trim★★
Statestate2-letter abbreviation★★
Zip codepostal_codeFirst 5 digits★★
CountrycountryISO 2-letter code★★

Best practice: Send as many identifiers as available. More signals = higher match rates.

ECL vs. Standard GCLID Upload

FeatureGCLID UploadECL UploadBoth Combined
Requires GCLID✅❌✅
Requires PII❌✅✅
Matching window90 days63 days90 days (GCLID)
Cross-device matching❌✅✅
What you can checkThe click ID matched, or it did notThe diagnostics cardThe diagnostics card
Privacy-safeN/A (no PII sent)✅ (SHA-256 hashed)✅

TUOCA’s approach: When both a GCLID and an email or phone are available, TUOCA sends both. Google does not publish a match rate for that combination. The diagnostics card is where you see whether the row lined up.

Setting Up ECL

Step 1: Enable in Google Ads

  1. Go to Goals → Conversions → Settings
  2. Turn enhanced conversions on. You will see one switch. You will not be asked to choose website or leads.
  3. Accept the customer data terms if this account has not already accepted them

Step 2: Create an Import Conversion Action

  1. Goals → Conversions → + New conversion action
  2. Select Import
  3. Choose Track conversions from leads (Enhanced Conversions for Leads)
  4. Configure: Name, value, count, attribution window
  5. Save

Step 3: Upload with Hashed PII

For CSV uploads:

Hashed Email,Hashed Phone Number,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
a8b14f04b2be6c5f...,d4f5c3b1e72a...,Booked Job,2026-04-10 14:30:00-05:00,4500.00,USD

For API uploads (what TUOCA uses), the hashed PII goes in the user_identifiers field of the ClickConversion object.

The 63-Day Window

A hashed email or phone matches for 63 days after the click, and from day 64 through day 90 only the GCLID still matches. Google keeps a GCLID for 90 days after the click, so a job closed on day 75 can still be uploaded and the same job closed on day 91 cannot.

WindowGCLIDECLImpact
0-63 days✅✅Both available
64-90 days✅❌Only GCLID works
91+ days❌❌Neither works

For sales cycles longer than 63 days, use intermediate conversion events:

Day 7:  Upload "Qualified Lead" ($0 value) — within ECL window
Day 30: Upload "Proposal Sent" ($0 value) — within ECL window
Day 60: Upload "Job Booked" ($4,500 value) — within ECL window
Day 90: Upload "Job Completed" ($4,500 value) — GCLID only

Improving ECL Match Rates

ActionWhy it matters
Add emailGives Google a hashed address to line up with a signed-in account
Add phone (E.164)A second identifier when the email was a work address Google has never seen
Add first + last nameAnother field on the same row
Add the GCLID when you stored itThe click ID still matches on its own through day 90
Lowercase and trim before hashingJane@Example.com and jane@example.com are different hashes
Use SHA-256 (not MD5)A different algorithm will not match Google’s hash

Diagnostic Checklist

  1. ✅ Are emails lowercased and trimmed before hashing?
  2. ✅ Are phones in E.164 format (+1XXXXXXXXXX) before hashing?
  3. ✅ Are you using SHA-256 (not MD5, SHA-1, or Base64)?
  4. ✅ Are you sending multiple identifiers (email + phone + name)?
  5. ✅ Is the conversion within the 63-day ECL window?
  6. ✅ Is ECL enabled in your Google Ads account settings?

Use the SHA-256 Hasher and E.164 Formatter tools to verify your data.

How TUOCA Implements ECL

TUOCA automates the entire ECL pipeline:

  1. PII extraction — Pulls email, phone, and name from your connected data sources
  2. Normalization — Applies Google’s specific normalization rules (lowercase, trim, E.164, Gmail dot removal)
  3. SHA-256 hashing — Hashes all PII fields
  4. GCLID pairing — When available, includes the GCLID for dual-path matching
  5. API upload — Sends the click ID and the hashed identifiers. Google requires the Data Manager API for a new upload. A developer token that was not already uploading is rejected on the old call.
  6. Error handling — Catches INVALID_USER_IDENTIFIER errors and logs the specific field that failed

Cross-Platform ECL Equivalents

ECL isn’t unique to Google. Every major ad platform has a similar mechanism:

PlatformFeature NameMatching Method
Google AdsEnhanced Conversions for LeadsSHA-256 hashed PII
MetaConversions API Enhanced MatchingSHA-256 hashed PII
Microsoft AdsEnhanced ConversionsSHA-256 hashed PII
TikTokEvents API user dataSHA-256 hashed PII

TUOCA normalizes and hashes PII according to each platform’s specific rules, handling all four platforms through a single relay pipeline configuration.

Frequently Asked Questions

Open Goals → Conversions → Settings and turn enhanced conversions on once. You will not see a second choice labeled for web or for leads. A form on your site can send the hashed email at the moment someone submits it. The booked job still gets uploaded later, from your CRM, with that same email hash and the GCLID if you saved it.

Put the GCLID on the row when you saved one. On that same row, add the hashed email or phone from the lead. If the caller booked on a different phone than the one that clicked, or the GCLID was never written down, the hash is what Google can still match. If you have the click ID, do not leave it off.

A hashed email or phone matches for 63 days after the click, and from day 64 through day 90 only the GCLID still matches. Google keeps a GCLID for 90 days after the click, so a job closed on day 75 can still be uploaded and the same job closed on day 91 cannot. For a sale that will close after day 63, upload an earlier milestone, such as a qualified lead on day 14, while the hash still matches.

In Google Ads go to Goals → Conversions → Settings, turn enhanced conversions on, and accept the customer data terms. You only do that once per account. Then create an Import conversion action named for the event you care about, such as Booked Job. If you upload from your own script, send the file through the Data Manager API. After June 15, 2026, a script still calling the old Google Ads upload will be rejected unless that developer token was already uploading before the change.

Google does not publish a match rate for an email, a phone, or a GCLID. Read the diagnostics card on the conversion action. It shows how many events included usable contact data and how well that data lined up. Send the hashed email, the hashed phone, and the GCLID when you stored it. If you hash `Jane@Example.com ` before you lowercase and trim it, it will not match `jane@example.com`.

Stop Guessing. Start Proving ROI.

TUOCA connects your CRM and call tracking data directly to your ad platforms. Set up in minutes.