Google Ads Conversion Tracking Setup: A Step-by-Step Guide
Conversion tracking is the single most important piece of any Google Ads account. Smart Bidding optimizes against your conversion data; if that data is wrong, missing, or biased, your bidding will be wrong, missing, or biased. We see it constantly: accounts spending five figures monthly with conversion tracking that’s 20-40% inaccurate, and nobody on the team knows.
This guide walks through proper conversion tracking from scratch. Pixel events, Enhanced Conversions, offline conversion upload, GTM implementation, and the validation steps to confirm tracking is healthy. By the end, your Smart Bidding will have the signal it needs to actually work.
Why conversion tracking is the most-broken part of accounts
Every account we audit has at least one conversion tracking issue. Common patterns:
- “Lead” event firing on every page load, not on lead submission
- Two conflicting conversion actions (legacy + new) double-counting
- Enhanced Conversions never enabled
- No offline conversion upload for B2B (Smart Bidding optimizing for raw leads, not customers)
- Browser ad-blocker dropping 15-30% of conversions
- Different conversion values in Google Ads vs. GA4 vs. CRM
Even one of these silently distorts your bidding. Multiple compound. The result: campaigns scale toward whatever the algorithm thinks is converting, which often isn’t what’s actually converting.
Step 1: Define what counts as a conversion
Before touching tags, define each conversion:
- What action represents real business value? (Purchase, signup, demo request, etc.)
- What’s the dollar value of each? (Even leads need a value — your closed-won probability × ACV.)
- Should every instance count, or only one per session? (“One” is right for leads; “every” is right for purchases.)
- What’s the attribution window? (Default 30 days. Extend for long B2B cycles.)
Document this in writing. The next 30 steps reference back to it.
Step 2: Create conversion actions in Google Ads
In Google Ads → Tools → Conversions → New conversion action.
Pick the source:
- Website: most common. Conversion fires on a page or event.
- App: mobile app installs and in-app events.
- Phone calls: calls from ads or from your website.
- Import: data from GA4, Salesforce, or CSV upload (offline conversions).
For website conversions, configure:
- Category: Purchase / Lead / Submit lead form / Signup / Page view / etc.
- Value: same value for all, or value imported from the page.
- Count: One (recommended for leads) or Every (for purchases).
- Click-through conversion window: 30 days default; 60-90 for B2B.
- View-through conversion window: 1 day default; can extend to 30.
- Attribution model: Data-driven (default since 2023). Don’t change unless you have a strong reason.
Mark it as primary if it’s THE conversion you want Smart Bidding to optimize for. Mark secondary if it’s a leading indicator but not the main goal.
Step 3: Install the conversion tag
Three implementation paths:
Option A: Google Tag Manager (recommended)
In GTM:
- Tags → New → Tag Configuration → “Google Ads Conversion Tracking”
- Conversion ID: paste from Google Ads
- Conversion Label: paste from Google Ads
- (Optional) Conversion Value: dynamic from dataLayer
- (Optional) Order ID: for deduplication
- Trigger: based on the action (form submission, button click, thank-you page view)
Publish container, verify in Preview mode.
Option B: Site-wide tag + event snippet
The legacy method. Two snippets:
<!-- Site-wide gtag (paste in <head> of all pages) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-XXXXXXXXX');
</script>
<!-- Event snippet (paste on conversion confirmation page) -->
<script>
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/AbC-D_efG-h12_34-567',
'value': 47.50,
'currency': 'USD',
'transaction_id': 'order_8821'
});
</script>
GTM is cleaner. Use GTM unless you have a specific reason not to.
Option C: Import from GA4
If GA4 is already tracking conversions properly, import them to Google Ads instead of setting up duplicate tracking.
- Google Ads → Tools → Conversions → New → Import → GA4 → Web
- Select your conversion events
- Mark as primary/secondary
This is often the cleanest setup: GA4 is single source of truth, Google Ads reads from it.
Step 4: Enable Enhanced Conversions for Web
Enhanced Conversions for Web recovers 7-15% of conversions lost to browser privacy and ad blockers. It works by passing hashed first-party data (email, phone, name, address) at the time of conversion. Google then matches against signed-in Google users.
In Google Ads → Tools → Conversions → click your conversion action → Enhanced conversions → Turn on.
Methods:
1. Google Tag Manager (recommended). Tag your data fields with classes that GTM reads. Configure in the Google Ads conversion tag’s “Include user-provided data” section. GTM hashes and sends automatically.
2. Google Tag (gtag.js). Pass user data in the conversion event:
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/AbC-D_efG-h12_34-567',
'value': 47.50,
'currency': 'USD',
'transaction_id': 'order_8821',
'user_data': {
'email_address': 'user@example.com', // hashed automatically by gtag
'phone_number': '+15555550100',
'address': {
'first_name': 'Maya',
'last_name': 'Rodriguez',
'street': '123 Main St',
'city': 'San Francisco',
'region': 'CA',
'postal_code': '94102',
'country': 'US'
}
}
});
3. Google Ads API. For server-side implementations.
Verify in Google Ads → Conversions → click the conversion → Enhanced conversions diagnostics. “Recording” status with match quality 7+/10 is the target.
Step 5: Set up Enhanced Conversions for Leads (B2B critical)
If you sell B2B (long sales cycle, conversion ≠ revenue), Enhanced Conversions for Leads is essential.
The mechanic: when a lead converts, you pass a hashed email. Later, when that lead closes (or is disqualified), you upload that hashed email back to Google Ads with the actual outcome. Google matches and credits the original ad click with the real revenue.
Setup:
1. Update your lead form tracking. Send the lead’s email hashed at form submission via Enhanced Conversions for Web (covered in Step 4).
2. Capture GCLID (Google Click ID). Append GCLID to your lead capture: parse ?gclid=... from URL on landing, store in hidden form field, pass to CRM.
3. Set up offline conversion upload. Google Ads → Conversions → New → Import → Offline tracking.
4. Connect your CRM. HubSpot, Salesforce, Zoho all have native Google Ads offline conversion integrations. Or upload CSV manually.
5. Map closed-won deals back to Google Ads. When a deal closes in CRM, the integration uploads the conversion event with original GCLID and the deal value.
The result: Smart Bidding starts optimizing for closed-won deals, not raw leads. Single biggest performance lever for B2B accounts.
Step 6: Configure values correctly
A common bug: every conversion fires with value=1, currency=USD. Smart Bidding then optimizes for volume, not value.
For ecommerce, pass the cart value:
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/AbC-D_efG-h12_34-567',
'value': cartTotal, // dynamic from your checkout
'currency': 'USD',
'transaction_id': orderId
});
For leads, pass an estimated value based on lead score or industry:
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/AbC-D_efG-h12_34-567',
'value': estimatedLeadValue, // e.g., closed-won prob × ACV
'currency': 'USD'
});
If you can’t pass dynamic values, set a flat “Same value for each conversion” in the conversion action settings — but at the right amount, not $1.
Step 7: Set up phone call tracking
Three call tracking options:
1. Call-only ads / call extensions. Calls from the ad directly. Google tracks. No setup beyond enabling call extensions.
2. Calls to a website-displayed number. Calls placed by users on your landing page. Set up via Google’s website call conversion or via a call-tracking platform like CallRail.
3. Calls from a forwarding number. Most accurate. Google Ads displays a substitute number that forwards to yours; every call is attributed to a specific click.
For SMB service businesses (plumbers, dentists, law firms), call tracking often outweighs form tracking in importance. Set it up.
Step 8: Deduplicate conversions
If you’re running both GA4 and Google Ads conversion tracking, you risk double-counting. Two approaches:
1. Import from GA4 only (cleaner). Disable native Google Ads conversion tracking. Use only GA4 imports. One source of truth.
2. Configure both with dedup. Pass a unique transaction_id with each conversion. Google Ads deduplicates based on it.
For 95% of accounts, Option 1 is simpler and less error-prone.
Step 9: Validate everything
The validation pass is the most-skipped step. Run it.
1. Tag Assistant Companion (Chrome extension). Visit your site, click through to conversion. Tag Assistant should show the Google Ads conversion tag firing with the right ID, label, value, and Enhanced Conversion data.
2. Google Ads diagnostics. Tools → Conversions → click your conversion → Diagnostics tab. Should show “No issues.”
3. Real conversion check. Make a real conversion (test purchase, real form submission). Wait 4-6 hours. Confirm it appears in Google Ads conversion column.
4. Enhanced Conversions match quality. Should be 7+/10. Below 5, your hashing or data capture is incomplete.
5. Cross-check totals. Compare last 30 days conversions in Google Ads vs. GA4 vs. CRM. Should be within 10-15% of each other. Larger gaps = config issue.
6. Search Console — manual actions. Conversion tracking issues sometimes correlate with site quality issues. Confirm no manual actions.
Common conversion tracking mistakes
1. Conversion firing on the wrong page. Form submits to thank-you page, but conversion tag was placed on the form page itself — firing on every visit. Use a thank-you-page-only trigger.
2. Test conversions never cleaned up. During setup, you fire 50 test conversions inflating numbers. Clean up: pause and recreate the conversion action, or filter out test conversions.
3. Value mismatch between platforms. Cart value in Google Ads, gross revenue in GA4, net (after refunds) in CRM. Decide which definition matters and align everywhere.
4. Multiple conversion actions for the same business event. Legacy “lead” + new “lead_form_submit” + “lead_v2” all firing. Pick one, kill the rest.
5. Forgetting offline conversion upload. B2B Smart Bidding optimizing for raw leads instead of customers.
6. Not running diagnostics monthly. Tracking can break with site updates, GTM changes, page redesigns. Monthly check catches drift early.
A 30-day conversion tracking audit and fix
Days 1-3: Inventory. List every conversion action in your account. Note what fires it, what value, what window. Note which are primary, secondary, archived.
Days 4-7: Diagnose. Run validation pass on each. Identify broken or duplicate ones.
Days 8-15: Fix. Implement Enhanced Conversions if missing. Set up offline conversion upload if B2B. Deduplicate.
Days 16-22: Re-test. Make real conversions, validate end-to-end.
Days 23-30: Document. Build internal documentation: every conversion, what fires it, what value it has, who owns it. Future-you will thank you.
Frequently asked questions
How many conversions should I track? 3-7 primary actions max. Beyond that, focus dilutes. Use secondary conversions for additional reporting without confusing Smart Bidding.
Should I use auto-tagging or manual UTM tags for Google Ads? Auto-tagging (GCLID) is required for proper Google Ads → GA4 integration and for Enhanced Conversions for Leads. Enable it. UTM parameters can layer on top but don’t replace.
Can I track conversions for offline events like phone calls or in-store visits? Yes — phone call tracking (Step 7) and store visit conversions (for accounts with physical locations + enabled). Setup is more involved but worth it.
What’s the difference between “Conversions” and “All conversions” in reports? “Conversions” includes only conversion actions marked as primary. “All conversions” includes both primary and secondary. Smart Bidding uses primary only.
How long after setup until conversions show up? Real conversions appear within 24-48 hours. Enhanced Conversions match quality takes 7-14 days to stabilize.
Conversion tracking is unglamorous infrastructure — and it’s the difference between Google Ads working and Google Ads burning money. If you haven’t audited yours in the last quarter, that’s the highest-ROI 2 hours of work you can do this week.