Google Ads’ enhanced conversions feature uses first-party customer data (email, phone, address) to match offline conversions back to online ad clicks. When integrated with GA4, this allows you to track conversions that happen offline or in backend systems. But the matching quality depends on data accuracy and field mapping. Misconfigured parameter matching causes low conversion credit and wasted ad spend optimization.

Understanding Enhanced Conversions
Standard Google Ads conversions come from pixel firing on your website. Enhanced conversions expand this to offline conversions by matching customer records. The process: customer sees ad, clicks, lands on site, doesn’t convert online but later calls sales or applies via app, your CRM records the conversion, you send that data to Google Ads, Google hashes and matches it against its user database, and if a match is found the conversion credits the original ad click.
Parameter Matching Requirements
Google Ads uses these fields for enhanced conversion matching in priority order. Tier 1 (strongest) is email + phone both hashed. Tier 2 is email alone hashed. Tier 3 is phone alone hashed. Tier 4 is first name + last name + zip hashed. Lower tiers use address components and have weaker matching quality.
GA4 to Google Ads Parameter Mapping
Map GA4 user properties to Google Ads enhanced conversion fields. Collect email, phone, first name, last name, city, state, and postal code as GA4 user properties, then map these to the Google Ads Enhanced Conversions API format with proper SHA256 hashing.
Critical: GCLID Matching
The strongest enhanced conversion signal is the gclid (Google Click ID). When a user clicks an ad, gclid is appended to the landing URL. Capture it, store it with the conversion record in your backend, and include it when sending enhanced conversions to Google Ads API for near-perfect matching accuracy.
// Capture gclid on landing
const gclid = new URLSearchParams(window.location.search).get('gclid');
// Store with conversion, then send to Google Ads
const enhancedConversion = {
gclid: storedGclid,
conversion_action_id: 'action_id',
conversion_value: value,
user_identifiers: [{
hashed_email: sha256(email.toLowerCase().trim())
}]
};
Data Normalization Requirements
Proper normalization before hashing is critical. For email: lowercase, trim whitespace, must have valid format. For phone: include country code (+1 for US), keep only digits plus leading +, so +1 (555) 123-4567 becomes +15551234567. For names and addresses: lowercase all text, remove extra spaces.

function normalizeForEnhancedConversions(customer) {
return {
hashed_email: sha256(customer.email.toLowerCase().trim()),
hashed_phone: sha256(customer.phone.replace(/[^\d+]/g, '')),
address_info: {
hashed_first_name: sha256(customer.first_name.toLowerCase()),
hashed_last_name: sha256(customer.last_name.toLowerCase()),
city: customer.city.toLowerCase(),
region: customer.state.toLowerCase(),
postal_code: customer.postal_code,
country_code: 'US'
}
};
}
Matching Rate and Quality Metrics
Monitor enhanced conversion matching in Google Ads under Tools – Conversions. Check the Match Rate metric (percentage of conversions with valid user identifiers) and Matching Rate Quality (percentage of matches that succeeded). Expected ranges are match rate 60-80% and matching quality 70%+. Low matching quality below 50% indicates data normalization issues.
Implementation Checklist
- Enable enhanced conversions in Google Ads account
- Configure GA4 to collect email/phone as user properties
- Implement gclid capture and storage in conversion records
- Normalize email (lowercase, trim) before hashing
- Normalize phone (country code + digits only) before hashing
- Test with sample conversions using Google Ads test feature
- Monitor match rate and quality weekly
Enhanced conversions unlock offline conversion tracking, but data quality determines success. Invest in proper normalization and testing before going live.
Related guides: Google Ads Conversion Lag, GA4 Conversion Funnel, Meta Conversions API GA4.