Conversion tracking is the foundation of every optimization decision in Google Ads. Without it, you are flying blind. With it set up incorrectly, you are making decisions based on bad data, which is arguably worse.
This guide covers every method of conversion tracking in Google Ads, how to set each one up, common mistakes that corrupt your data, and how to verify that everything is working correctly.
Why Conversion Tracking Matters
Every Smart Bidding strategy depends on conversion data. Target CPA, Target ROAS, Maximize Conversions -- all of them use your conversion history to decide how much to bid on each auction. If your tracking is wrong, your bidding is wrong.
Beyond bidding, conversion tracking tells you:
- Which keywords, ads, and campaigns are actually driving results.
- What your true cost per acquisition is.
- Where to allocate budget for maximum return.
- Whether your optimizations are working or not.
For agencies, accurate conversion tracking across all client accounts is non-negotiable. A single misconfigured tag can make an entire account's performance data unreliable.
Types of Conversion Actions
Google Ads supports several types of conversion actions. Understanding which to use and when is the first step.
Website Actions
These track what users do on the client's website after clicking an ad. Common examples:
- Purchases -- e-commerce transactions with revenue values.
- Form submissions -- lead generation forms, contact forms, quote requests.
- Page views -- tracking visits to specific pages (thank-you pages, pricing pages).
- Button clicks -- click-to-call buttons, download buttons, chat initiation.
Website actions are the most common conversion type and the easiest to set up.
Phone Calls
Google Ads can track three types of phone call conversions:
- Calls from ads -- calls made directly from call extensions or call-only ads. These are tracked automatically when you use call extensions.
- Calls to a number on your website -- uses a Google forwarding number on the website to track calls from ad visitors. Requires a snippet of code on the site.
- Clicks on a number on your mobile website -- tracks when mobile users tap a phone number link.
For businesses where phone calls are a primary conversion action, proper call tracking is critical. Many agencies use third-party call tracking tools (CallRail, CallTrackingMetrics) alongside Google's native tracking for better attribution.
App Installs and In-App Actions
If the client has a mobile app, you can track:
- App installs (first opens) from ad clicks.
- In-app actions (purchases, sign-ups, level completions).
These require integration with Firebase or a third-party app analytics platform.
Imported Conversions
For businesses with offline sales processes, you can import conversion data back into Google Ads:
- CRM imports -- upload conversions from Salesforce, HubSpot, or other CRMs.
- Offline conversion tracking -- match click IDs (GCLIDs) to offline outcomes.
- Store visit conversions -- available for businesses with physical locations and sufficient traffic.
- Store sales conversions -- match transaction data to ad interactions.
Imported conversions are essential for B2B businesses and any company where the conversion happens after the initial website visit.
Setting Up Conversion Tracking
Method 1: Google Tag (gtag.js)
The Google Tag is a snippet of JavaScript that you add directly to your website. It is the simplest method and works well for basic setups.
Step 1: Create the conversion action in Google Ads.
- Go to Goals > Conversions > Summary.
- Click "New conversion action."
- Select "Website."
- Enter your website URL and scan for existing tags.
- Configure the conversion action (name, value, count, attribution model).
Step 2: Install the Google Tag.
Google provides two code snippets:
<!-- Google tag (gtag.js) -->
<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>
This goes in the <head> of every page on the site.
Step 3: Add the event snippet.
The event snippet fires on the conversion page (e.g., the thank-you page):
<script>
gtag('event', 'conversion', {
'send_to': 'AW-XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXX',
'value': 1.0,
'currency': 'USD'
});
</script>
For e-commerce, replace the static value with the dynamic transaction value from your platform.
Method 2: Google Tag Manager (GTM)
Google Tag Manager is the preferred method for most agencies. It separates tracking code from the website codebase, making it easier to manage, update, and debug.
Step 1: Install GTM on the website.
If GTM is not already installed, add the container snippet to the site. This is typically a one-time development task.
Step 2: Create a Google Ads conversion tracking tag.
- In GTM, create a new tag.
- Choose "Google Ads Conversion Tracking" as the tag type.
- Enter the Conversion ID and Conversion Label from Google Ads.
- Set the conversion value (static or from a data layer variable).
Step 3: Set the trigger.
The trigger determines when the tag fires. Common triggers:
- Page view on thank-you page -- fires when the URL contains "/thank-you" or similar.
- Form submission -- fires when a specific form is submitted. Use GTM's built-in form submission trigger or a custom event.
- Custom event -- fires when your site pushes a custom event to the data layer.
Example data layer push for a custom event:
dataLayer.push({
'event': 'form_complete',
'conversionValue': 150,
'conversionCurrency': 'USD'
});
Step 4: Test with GTM Preview mode.
Before publishing, use GTM's preview mode to verify:
- The tag fires on the correct pages/actions.
- The conversion value is passed correctly.
- No duplicate fires occur.
Method 3: Google Ads API
For advanced setups, you can create and manage conversion actions programmatically via the Google Ads API. This is relevant for agencies building custom tooling or managing a large number of accounts with standardized tracking.
Enhanced Conversions
Enhanced conversions improve measurement accuracy by sending hashed first-party data (email addresses, phone numbers, names, addresses) to Google alongside the conversion tag. This helps Google match more conversions to ad clicks, especially as third-party cookies decline.
Setting Up Enhanced Conversions
Via Google Tag:
gtag('set', 'user_data', {
'email': 'user@example.com',
'phone_number': '+11234567890',
'address': {
'first_name': 'John',
'last_name': 'Doe',
'street': '123 Main St',
'city': 'Anytown',
'region': 'CA',
'postal_code': '12345',
'country': 'US'
}
});
Google automatically hashes this data using SHA-256 before sending it. You should never send unhashed PII to Google, and the tag handles this.
Via GTM:
- Enable enhanced conversions in your Google Ads conversion tag settings in GTM.
- Choose "User-Provided Data" as the data source.
- Map the variables to data layer variables or CSS selectors.
Enhanced Conversions for Leads
For B2B and lead generation, Enhanced Conversions for Leads works differently. You capture the GCLID when a lead submits a form, store it in your CRM, and then upload conversion data (with the GCLID) when the lead converts offline.
This gives Google Ads visibility into which clicks are driving real business outcomes, not just form fills.
Offline Conversion Import
Offline conversion import is essential for businesses where the sale happens after the website interaction -- B2B companies, automotive dealerships, financial services, education, and similar industries.
GCLID-Based Import
Step 1: Capture the GCLID when a user submits a form. The GCLID is a URL parameter that Google appends to your landing page URL.
// Extract GCLID from URL and store it
function getGclid() {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('gclid');
}
// Store in a hidden form field or cookie
document.getElementById('gclid_field').value = getGclid();
Step 2: Store the GCLID in your CRM alongside the lead record.
Step 3: When the lead converts (becomes a customer), upload the conversion data to Google Ads:
- Via the Google Ads UI (manual upload of CSV).
- Via the Google Ads API (automated, recommended for agencies).
- Via a CRM integration (Salesforce, HubSpot have native connectors).
The upload file format:
Parameters:TimeZone=US/Eastern
Google Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
abc123,Qualified Lead,2026-03-15 14:30:00,500,USD
Consent-Based Import
With privacy regulations, ensure your offline conversion import process respects user consent. Only upload conversion data for users who have consented to data processing.
Common Conversion Tracking Mistakes
1. Double-Counting Conversions
This happens when:
- The conversion tag fires multiple times on the same page (e.g., on every page load instead of just the thank-you page).
- Both a Google Tag and a GTM tag are tracking the same conversion.
- The "Count" setting is "Every" when it should be "One" (for lead gen, you almost always want "One").
Fix: Check your conversion action settings. For lead generation, set Count to "One." Audit your tag setup for duplicate tags.
2. Missing Conversion Value
If you are not passing conversion values, Smart Bidding strategies like Target ROAS and Maximize Conversion Value cannot work. Even for lead generation, assigning estimated values to different conversion types (e.g., $50 for a form fill, $200 for a phone call) gives the algorithm more signal.
3. Tracking Micro-Conversions as Primary
Page views, time on site, and scroll depth are useful signals, but they should not be primary conversion actions. If you include "visited pricing page" as a primary conversion, it inflates your conversion count and confuses Smart Bidding.
Fix: Mark these as "Secondary" conversion actions. They will still be reported but will not be used by bidding algorithms.
4. Wrong Attribution Model
The default attribution model in Google Ads has shifted to data-driven attribution. If you are still using last-click attribution, you are undervaluing upper-funnel campaigns.
Fix: Use data-driven attribution when you have enough conversion volume. For smaller accounts, consider position-based or linear attribution.
5. Not Tracking Cross-Device Conversions
Many users click an ad on mobile but convert on desktop. If you are only tracking same-device conversions, you are missing a significant portion of your results.
Fix: Ensure cross-device conversion tracking is enabled in your conversion settings (it is by default, but verify).
6. Tag Firing Without User Interaction
Some implementations fire the conversion tag when a page loads, even if the user did not complete an action. For example, if someone bookmarks the thank-you page and revisits it later, the tag fires again.
Fix: Use event-based tracking (form submission events, button clicks) rather than page-view-based tracking when possible.
How to Verify Tracking Is Working
Google Tag Assistant
Install the Google Tag Assistant Chrome extension. Visit your conversion pages and verify:
- The Google tag is detected and showing a green status.
- The conversion tag fires with the correct parameters.
- No errors or warnings appear.
Google Ads Conversion Status
In Google Ads, go to Goals > Conversions > Summary. Check the "Status" column:
- Recording conversions -- working correctly.
- No recent conversions -- the tag is installed but no conversions have occurred. This may be normal for low-volume accounts.
- Unverified -- the tag has not been detected on the website. Check your installation.
- Tag inactive -- the tag was previously working but has not fired recently. Investigate.
Real-Time Testing
- Click one of your own ads (or use a test campaign with a small bid).
- Complete the conversion action on the website.
- Check Google Ads' conversion status within 24 hours (some conversions take up to 24 hours to appear, though many show within a few hours).
GTM Debug Mode
If you are using Google Tag Manager:
- Click "Preview" in GTM.
- Enter your website URL.
- Complete the conversion action.
- In the debug panel, verify that the conversion tag fired, the trigger conditions were met, and the correct values were passed.
Conversion Tracking Across Multiple Accounts
For agencies managing many client accounts through an MCC, conversion tracking setup and verification becomes a recurring task. Each new client account needs proper tracking before any optimization work begins.
Common challenges at scale:
- Verifying that tracking is working across all accounts regularly.
- Detecting when a tag breaks (site redesign, CMS update, developer removes code).
- Standardizing conversion naming conventions across accounts.
- Ensuring enhanced conversions are enabled where possible.
Manual verification does not scale. A broken conversion tag can go undetected for weeks during which the account is spending budget without any visibility into results.
Keeping Conversion Tracking Healthy with Automation
Conversion tracking is not a set-and-forget task. Tags break. Websites get redesigned. Developers accidentally remove code. CMS updates overwrite custom scripts. When tracking breaks, every optimization decision made during the gap is based on incomplete data.
AdsCockpit monitors conversion tracking health across all your client accounts. When a conversion action stops recording, when conversion rates drop anomalously, or when a new account is missing primary conversion tracking entirely, you get alerted before the data gap becomes a problem.
Instead of manually checking conversion status across dozens of accounts, let the system surface the issues that need your attention. Your team can focus on the strategic work of improving conversion rates rather than the operational work of verifying tags are still firing.
Learn how AdsCockpit monitors conversion tracking health across your entire portfolio.