Google Ads Enhanced Conversions: Complete Setup Guide 2026
Table of contents
Enhanced Conversions is Google’s answer to declining cookie accuracy and increasing privacy restrictions. It uses first-party data from your website to improve conversion measurement and optimization.
If you’re advertising on Google and experiencing data gaps, Enhanced Conversions can help recover lost signals and improve your campaign performance.
What Are Enhanced Conversions?
Enhanced Conversions supplement your existing conversion tags by sending hashed first-party data (like email addresses) from your website to Google. This helps Google match conversions to ad clicks even when cookies are missing or blocked.
How Enhanced Conversions Work
- User clicks your Google Ad
- User converts on your website (purchase, signup, etc.)
- Your conversion tag fires with hashed user data
- Google matches the hashed data to the user who clicked the ad
- Conversion is attributed to the correct campaign/ad
Types of Enhanced Conversions
Enhanced Conversions for Web: Uses customer data collected on your website (email, phone, name, address) to improve measurement.
Enhanced Conversions for Leads: Measures when leads from your website eventually convert offline (like closing a sale in a CRM).
Benefits of Enhanced Conversions
1. Better Conversion Recovery
Enhanced Conversions recover conversions that would otherwise be lost due to:
- Cross-device journeys
- Cookie blockers
- Browser privacy features
- Safari ITP and similar restrictions
Google reports advertisers see an average of 5% more conversions with Enhanced Conversions enabled.
2. Improved Model Accuracy
More conversion data means:
- Better Smart Bidding performance
- More accurate attribution
- Improved audience signals for optimization
3. Privacy-Compliant Design
Enhanced Conversions is built with privacy in mind:
- All customer data is SHA-256 hashed before leaving your site
- Google can’t see the original data
- Compliant with GDPR, CCPA when properly implemented
4. Works with Existing Setup
Enhanced Conversions works alongside your current Google Ads tags. No need to rebuild your tracking from scratch.
Understanding the Options
| Feature | Enhanced Conversions for Web | Enhanced Conversions for Leads |
|---|---|---|
| Use Case | Online conversions | Offline/CRM conversions |
| Data Source | Website forms | CRM/sales system |
| Setup Complexity | Low-Medium | Medium |
| Matching Data | Email, phone, name, address | Email, phone, click ID |
| Time to Value | Immediate | Depends on sales cycle |
Setting Up Enhanced Conversions for Web
Method 1: Google Tag (gtag.js)
If you’re using the Google tag directly:
Step 1: Enable in Google Ads
- Go to Google Ads → Tools → Conversions
- Click on your conversion action
- Click “Edit settings”
- Expand “Enhanced conversions”
- Select “Turn on enhanced conversions”
- Choose “Google tag” as your implementation method
- Save
Step 2: Modify Your Conversion Tag
Add user data to your conversion event:
// Basic conversion with enhanced data
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXX/XXXXXX',
'value': 99.99,
'currency': 'USD',
'transaction_id': 'ORDER_12345',
'user_data': {
'email': 'customer@example.com', // Hashed automatically
'phone_number': '+1234567890',
'address': {
'first_name': 'John',
'last_name': 'Doe',
'street': '123 Main St',
'city': 'New York',
'region': 'NY',
'postal_code': '10001',
'country': 'US'
}
}
});
Note: gtag.js automatically hashes the data. Never pre-hash when using gtag.
Method 2: Google Tag Manager
Step 1: Enable Enhanced Conversions Variable
- In GTM, go to Variables
- Click “Configure” under Built-In Variables
- Check “Enhanced Conversion Variables”
Step 2: Create User-Provided Data Variable
- Go to Variables → New
- Select “User-Provided Data”
- Choose your data source:
- Automatic detection
- CSS selectors
- JavaScript variables
- Data layer
Example using Data Layer:
Push data to the data layer before conversion:
dataLayer.push({
'event': 'purchase',
'enhanced_conversion_data': {
'email': 'customer@example.com',
'phone_number': '+1234567890',
'first_name': 'John',
'last_name': 'Doe',
'home_address': {
'street': '123 Main St',
'city': 'New York',
'region': 'NY',
'postal_code': '10001',
'country': 'US'
}
}
});
Step 3: Configure Your Conversion Tag
- Edit your Google Ads Conversion tag
- Check “Include user-provided data”
- Select your User-Provided Data variable
- Save and publish
Method 3: Server-Side with Measurement Protocol
For complete control, send Enhanced Conversions server-side:
// Node.js example using Measurement Protocol
const crypto = require('crypto');
const axios = require('axios');
function sha256Hash(value) {
return crypto.createHash('sha256')
.update(value.toLowerCase().trim())
.digest('hex');
}
async function sendEnhancedConversion(conversionData) {
const payload = {
client_id: conversionData.clientId,
events: [{
name: 'purchase',
params: {
transaction_id: conversionData.orderId,
value: conversionData.value,
currency: 'USD'
}
}],
user_data: {
sha256_email_address: [sha256Hash(conversionData.email)],
sha256_phone_number: [sha256Hash(conversionData.phone)],
address: [{
sha256_first_name: sha256Hash(conversionData.firstName),
sha256_last_name: sha256Hash(conversionData.lastName),
city: conversionData.city,
region: conversionData.region,
postal_code: conversionData.postalCode,
country: conversionData.country
}]
}
};
await axios.post(
`https://www.google-analytics.com/mp/collect?api_secret=SECRET&measurement_id=G-XXXXXX`,
payload
);
}
Method 4: No-Code Platform
Platforms like Convultra handle Enhanced Conversions automatically:
- Connect your Google Ads account
- Enable Enhanced Conversions in settings
- The platform captures and sends user data automatically
This is the fastest method with no code changes required.
Setting Up Enhanced Conversions for Leads
For businesses with offline conversions (like B2B with sales cycles):
Step 1: Enable in Google Ads
- Go to Tools → Conversions
- Click your lead conversion action
- Click “Edit settings”
- Enable “Enhanced conversions for leads”
- Choose import method
Step 2: Configure Click ID Capture
Add GCLID (Google Click ID) capture to your forms:
// Capture GCLID from URL and store for later
function getGclid() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('gclid');
}
// Store in hidden form field
document.getElementById('gclid_field').value = getGclid();
// Or store in cookie/localStorage for later
localStorage.setItem('gclid', getGclid());
Step 3: Import Conversions
When a lead converts in your CRM:
Option A: Manual Upload
- Go to Conversions → Uploads
- Download template
- Fill in: email, GCLID (if available), conversion time, value
- Upload the file
Option B: Google Sheets Integration
- Connect Google Sheets to Google Ads
- Format your data according to template
- Set up automatic sync
Option C: API Integration
// Using Google Ads API for offline conversion import
const { GoogleAdsApi } = require('google-ads-api');
const client = new GoogleAdsApi({
client_id: 'CLIENT_ID',
client_secret: 'CLIENT_SECRET',
developer_token: 'DEV_TOKEN'
});
const customer = client.Customer({
customer_id: 'CUSTOMER_ID',
refresh_token: 'REFRESH_TOKEN'
});
await customer.conversionUploads.uploadClickConversions({
customerId: 'CUSTOMER_ID',
conversions: [{
gclid: 'CLICK_ID',
conversionAction: 'customers/CUSTOMER_ID/conversionActions/ACTION_ID',
conversionDateTime: '2026-02-01 12:00:00+00:00',
conversionValue: 1000,
currencyCode: 'USD'
}],
partialFailure: true
});
Data Requirements for Best Results
Required for Web
At minimum, include one of:
- Email address
- Phone number
Recommended for Best Matching
Include as many as possible:
- Email (most impactful)
- Phone number
- First name
- Last name
- Street address
- City
- State/Region
- Postal code
- Country
Data Format Guidelines
| Field | Format | Example |
|---|---|---|
| Lowercase, trimmed | john.doe@email.com | |
| Phone | E.164 format | +14155551234 |
| First name | Lowercase | john |
| Last name | Lowercase | doe |
| Postal code | No spaces | 10001 |
| Country | ISO 3166-1 alpha-2 | US |
Verifying Your Implementation
Using Tag Assistant
- Install Google Tag Assistant extension
- Visit your conversion page
- Trigger a test conversion
- Check for enhanced conversions in the debug panel
In Google Ads
- Go to Conversions → your action
- Check “Enhanced conversions” column
- Should show “Recording” status
- Note: Data appears 24-48 hours after setup
Diagnostic Report
- Go to Tools → Conversions
- Click “Diagnostics”
- Review enhanced conversions health
- Fix any flagged issues
Troubleshooting Common Issues
”No enhanced conversions detected”
Check:
- Tag is firing correctly
- User data is present in the request
- Data format matches requirements
- Implementation was saved and published
Low match rates
Improve by:
- Adding more identifier fields (not just email)
- Ensuring data is clean (no extra spaces, correct format)
- Including phone number with country code
- Capturing data at the right moment (before conversion)
Conversion action not compatible
Requirements:
- Conversion action must use a tag (not import)
- Must be a website conversion
- Cannot be a cross-account conversion
Duplicate conversions
Fix:
- Ensure transaction_id is unique and included
- Don’t send same conversion from both client and server without deduplication
Best Practices
1. Collect Data Early
Capture user data (especially email) as early as possible in the funnel, like newsletter signup or account creation, not just at checkout.
2. Use All Available Fields
More fields = better matching. Don’t stop at email, include phone, name, and address when available.
3. Maintain Data Quality
Clean data produces better results:
- Trim whitespace
- Normalize formatting
- Remove invalid entries
4. Combine with GA4
Link Google Ads and GA4 for comprehensive measurement that uses Enhanced Conversions data across both platforms.
5. Test Thoroughly
Use test conversions to verify data is flowing correctly before relying on it for optimization.
Frequently Asked Questions
Is Enhanced Conversions the same as server-side tracking?
Not exactly. Enhanced Conversions can be implemented client-side or server-side. The “enhanced” part refers to including hashed user data, not where the tag fires from.
Do I need consent for Enhanced Conversions?
Yes. You need user consent to process their personal data for advertising purposes. Your consent mechanism should cover this use case.
How much improvement should I expect?
Google reports advertisers typically see 5% more conversions recovered. Actual results vary based on your traffic composition and current tracking gaps.
Does Enhanced Conversions work with Smart Bidding?
Yes, and that’s one of its primary benefits. More conversion data means Smart Bidding algorithms can optimize more effectively.
Can I use Enhanced Conversions with third-party platforms?
Yes. Most marketing platforms (Convultra, Elevar, TAGGRS) support Enhanced Conversions. You can also implement through GTM server-side.
Conclusion
Enhanced Conversions is no longer optional for serious Google advertisers. With cookie deprecation ongoing and privacy regulations tightening, first-party data matching is the future of conversion tracking.
The good news is implementation is straightforward, whether through gtag.js modifications, GTM configuration, or a no-code platform.
Start with Enhanced Conversions for Web to see immediate improvements, then consider Enhanced Conversions for Leads if you have offline conversion data to incorporate.
Want Enhanced Conversions without the technical setup? Convultra handles Google Enhanced Conversions automatically alongside Meta CAPI. Start your free trial
Related Reading
- Google Ads Conversion Tracking: Complete Setup Guide — the full Google Ads tracking setup
- Google Ads Offline Conversion Tracking — send real revenue data back to Google
- Meta Conversions API Setup Guide — server-side tracking for Facebook and Instagram
- Server-Side vs Client-Side Tracking — understanding the difference
Written by Marcus Johnson
Technical Writer
Contributing author at Convultra. Sharing insights on conversion tracking, marketing attribution, and growth strategies.