Google Ads conversion tracking tells Google’s algorithm what “success” looks like for your business. Without it, Smart Bidding has no signal to optimize against, your ROAS reports are empty, and you’re flying blind on which ads actually drive revenue.
This guide covers the complete setup — from basic tag installation to enhanced conversions and server-side tracking.
Before You Start
You need:
- A Google Ads account with an active campaign (or one planned)
- Google Tag Manager installed on your site (recommended) or direct tag access
- A clear definition of what a “conversion” is for your business (purchase, lead form, phone call, etc.)
If you don’t have GTM yet, read our WordPress GTM setup guide first.
Step 1: Create a Conversion Action in Google Ads
- Go to Google Ads → Goals → Conversions → Summary
- Click + New conversion action
- Select Website
- Choose how to set it up:
- URL-based: Simplest. Counts a conversion when a specific URL loads (e.g.,
/thank-you) - Manual setup: More control. Creates a tag you install via GTM or code.
- URL-based: Simplest. Counts a conversion when a specific URL loads (e.g.,
Configure the Conversion Action
| Setting | Recommendation | Why |
|---|---|---|
| Conversion name | ”Purchase” or “Lead Form” | Descriptive, consistent |
| Value | Use different values for each conversion (revenue) | Enables value-based bidding |
| Count | ”Every” for purchases, “One” for leads | Prevents counting repeat form fills |
| Click-through window | 30 days (default) | Extend to 60-90 for high-consideration products |
| View-through window | 1 day | Keeps attribution conservative |
| Attribution model | Data-driven (default) | Google’s recommended model |
Step 2: Install the Conversion Tag via GTM
2a: Add the Conversion Linker Tag
This is the tag most people forget — and it’s required for Google Ads to work.
- In GTM, create a new tag: Tag type → Conversion Linker
- Set trigger: All Pages
- No configuration needed — just create it and let it fire everywhere
The conversion linker stores the gclid (Google Click ID) in a first-party cookie so Google can match clicks to conversions, even days later.
2b: Add the Google Ads Conversion Tracking Tag
- In GTM, create a new tag: Tag type → Google Ads Conversion Tracking
- Enter your Conversion ID and Conversion Label from Step 1
- For ecommerce: enable “Include in ‘Conversions’” and set value dynamically:
- Value:
{{transactionTotal}}or a data layer variable - Currency:
{{currencyCode}}or hardcodeUSD - Transaction ID:
{{transactionId}}(critical for dedup)
- Value:
- Set trigger: Thank you page or purchase event
Platform-Specific Trigger Setup
Shopify:
The thank-you page URL pattern: checkout.shopify.com/*/thank_you or your store’s custom checkout URL. If using Shopify’s Web Pixel API, fire the tag on the checkout_completed event instead.
If your Shopify conversion tracking is broken, the checkout URL pattern may not match — verify with GTM Preview Mode.
WooCommerce:
Fire on the /checkout/order-received/ URL. Your theme may customize this — check woocommerce_thankyou hook.
Custom sites:
Fire on whatever URL or event represents a completed conversion. Use a data layer push: dataLayer.push({ event: 'purchase', transactionId: '...', transactionTotal: 99.99 }).
Step 3: Enable Enhanced Conversions
Enhanced conversions send hashed customer data (email, phone, address) to Google alongside the conversion. This lets Google match conversions to ad clicks even when cookies are blocked — critical for Safari/iOS users.
Option A: GTM-based Enhanced Conversions
-
In the Google Ads Conversion Tracking tag from Step 2, scroll to “Include user-provided data from your website”
-
Select “New Variable” → User-Provided Data
-
Map the fields:
- Email: CSS selector for the email field, or data layer variable
- Phone: Optional but improves match rate
- First name / Last name: Optional
- Address: Optional (city, state, zip, country)
-
The most reliable approach: push user data via the data layer:
dataLayer.push({
event: 'purchase',
transactionId: 'ORDER-123',
transactionTotal: 99.99,
enhanced_conversion_data: {
email: 'customer@example.com'
}
});
Option B: Google Ads Settings (Automatic)
- Google Ads → Goals → Conversions → Settings
- Under “Enhanced conversions,” click Turn on
- Select “Google tag” or “Google Tag Manager”
- Choose Automatic — Google will attempt to detect email fields on your conversion pages
Automatic is easier but less reliable. GTM-based is recommended for production.
Step 4: Verify Your Setup
GTM Preview Mode
- Open GTM Preview → click Preview
- Enter your site URL
- Navigate to your conversion page
- Check the Tags Fired panel:
- Conversion Linker: fired on every page
- Google Ads Conversion Tracking: fired on conversion page only
If the conversion tag fired but Google Ads still shows “No recent conversions,” wait 24-48 hours. The verification can take time.
If GTM is not firing at all, check for container load issues first.
Google Ads Tag Diagnostics
Google Ads → Goals → Conversions → select your action → Diagnostics
This shows:
- Whether the tag was detected
- Last conversion timestamp
- Any errors (tag not found, value missing, etc.)
Real-Time Test
Complete an actual test conversion on your site. Within 30 minutes, you should see it in:
- GTM Preview (immediately)
- Google Ads → Conversions → “Last conversion” column (within hours)
- Google Ads → Reports (next day)
Google Ads vs GA4: Should You Import?
You have two options for getting conversion data into Google Ads:
Option 1: Native Google Ads Tag (Recommended)
What we set up above. The Google Ads tag fires directly on your site and sends conversion data to Google Ads.
Pros: No data lag, captures view-through conversions, feeds Smart Bidding directly. Cons: Requires separate tag management from GA4.
Option 2: Import GA4 Conversions
In Google Ads: Goals → Conversions → + → Import → Google Analytics 4 properties
Pros: Single conversion source, simpler setup. Cons: 24-hour data lag, no view-through conversions, different attribution model than Google Ads.
Our recommendation: Use native Google Ads conversion tracking for bidding. Use GA4 for cross-channel reporting. They’ll show different numbers — that’s expected.
Server-Side Tracking (Advanced)
For maximum conversion recovery, add server-side tracking alongside the browser tags:
- Google Ads Enhanced Conversions API: Sends hashed customer data server-to-server
- GA4 Measurement Protocol: Server-side events for adblocker-resistant tracking
Server-side tracking recovers 20-40% of conversions that ad blockers, ITP, and consent denials hide from browser tags. It’s the biggest single lever for improving your ROAS.
Common Issues
| Problem | Cause | Fix |
|---|---|---|
| No conversions in Google Ads | Conversion linker missing | Add Conversion Linker tag to All Pages |
| Conversions count but value is $0 | Value not mapped in tag | Set dynamic value from data layer |
| Duplicate conversions | Transaction ID not set | Add unique order ID to the tag |
| Conversions in GA4 but not Google Ads | Using GA4 import with lag | Switch to native Google Ads tag |
| Enhanced conversions not working | Email field not detected | Use GTM data layer instead of auto-detect |
Checklist
- Conversion Linker tag fires on all pages
- Google Ads Conversion tag fires on conversion page
- Value is set dynamically (not hardcoded)
- Transaction ID is set (prevents duplicates)
- Enhanced conversions enabled (email at minimum)
- Verified in GTM Preview Mode
- First conversion visible in Google Ads
If you’re stuck, run a free tracking scan — we check your Google Ads tags, conversion linker, and enhanced conversions automatically.