Google Ads Event Tracking | Blue Frog Docs

Google Ads Event Tracking

Complete guide to Google Ads conversion and event tracking

Google Ads Event Tracking

Overview

Google Ads uses conversion tracking to measure valuable customer actions resulting from your advertising campaigns. The platform supports multiple tracking methods including Google Tag (gtag.js), Google Analytics 4 imports, and offline conversion imports. With enhanced conversions and privacy-safe measurement, Google Ads provides robust attribution while respecting user privacy.

Standard Events

Google Ads provides predefined conversion actions for common business goals:

Website Conversions

  • Purchase - Ecommerce transactions
  • Add to cart - Product additions to shopping cart
  • Begin checkout - Checkout process initiation
  • Subscribe - Newsletter or service subscriptions
  • Submit lead form - Contact form submissions
  • Contact - Phone calls, messages, or chat interactions
  • Page view - Key page visits (thank you pages, product pages)
  • Sign up - Account registrations
  • Download - File or app downloads

Phone Calls

  • Calls from ads - Clicks on call extensions or call-only ads
  • Calls to phone number on website - On-site phone number clicks
  • Imported calls - Offline call conversions

App Conversions

  • In-app actions - App installs and in-app events
  • App engagement - First opens and subsequent interactions

Store Visits

  • Local actions - Directions requests, store visits
  • Store sales - In-store purchase tracking

Custom Events

Creating Custom Conversions

  1. Navigate to Goals > Conversions in Google Ads
  2. Click + New conversion action
  3. Select conversion source (Website, App, Phone calls, Import)
  4. Configure conversion details:
// Custom event implementation
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
  'value': 1.0,
  'currency': 'USD',
  'transaction_id': ''
});

Event Parameters

Customize tracking with additional parameters:

gtag('event', 'conversion', {
  'send_to': 'AW-123456789/AbC-D_efG-h12_34-567',
  'value': 99.99,
  'currency': 'USD',
  'transaction_id': 'ORDER_12345',
  // Custom parameters
  'event_category': 'ecommerce',
  'event_label': 'summer_sale',
  'custom_parameter': 'custom_value'
});

Dynamic Values

Pass dynamic data for flexible tracking:

// Dynamic value example
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
  'value': parseFloat(document.getElementById('order-total').textContent),
  'currency': 'USD',
  'transaction_id': getOrderId()
});

Ecommerce Events

Purchase Tracking

Implement comprehensive ecommerce tracking with transaction details:

<!-- Google Tag -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-CONVERSION_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'AW-CONVERSION_ID');
</script>

<!-- Purchase Conversion -->
<script>
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
  'value': 99.99,
  'currency': 'USD',
  'transaction_id': 'ORDER_12345'
});
</script>

Cart and Checkout Events

Track the full funnel with separate conversions:

// Add to Cart
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/ADD_TO_CART_LABEL',
  'value': 29.99,
  'currency': 'USD',
  'items': [{
    'id': 'SKU_12345',
    'name': 'Product Name',
    'quantity': 1,
    'price': 29.99
  }]
});

// Begin Checkout
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/BEGIN_CHECKOUT_LABEL',
  'value': 99.99,
  'currency': 'USD'
});

Shopping Campaigns

For Google Shopping, conversion tracking is essential for Smart Bidding:

gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/PURCHASE_LABEL',
  'value': 149.99,
  'currency': 'USD',
  'transaction_id': 'TXN_67890',
  'items': [{
    'id': 'SKU_001',
    'google_business_vertical': 'retail'
  }]
});

Conversion Tracking

Implementation Methods

1. Google Tag (gtag.js)

Modern implementation for website conversions:

<!-- Global Site Tag -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-CONVERSION_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'AW-CONVERSION_ID');
</script>

<!-- Event Snippet -->
<script>
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL'
});
</script>

2. Google Tag Manager

Centralized tag management with dynamic configuration:

  • Tag Type: Google Ads Conversion Tracking
  • Conversion ID: AW-CONVERSION_ID
  • Conversion Label: CONVERSION_LABEL
  • Trigger: Custom event, page view, or form submission

Example GTM dataLayer push:

dataLayer.push({
  'event': 'purchase',
  'transaction_id': 'ORDER_12345',
  'value': 99.99,
  'currency': 'USD'
});

3. Google Analytics 4 Import

Import conversions from GA4:

  1. Link GA4 property to Google Ads
  2. Navigate to Goals > Conversions
  3. Click Import and select GA4 conversions
  4. Choose events to import as conversions

Imported events automatically include parameters from GA4.

Enhanced Conversions

Improve conversion measurement accuracy with first-party data:

Manual Implementation

gtag('config', 'AW-CONVERSION_ID', {
  'enhanced_conversions': 'automatic'  // Automatic mode
});

// Or manual mode with hashed data
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
  'value': 99.99,
  'currency': 'USD',
  'transaction_id': 'ORDER_12345',
  'enhanced_conversion_data': {
    'email': 'user@example.com',
    'phone_number': '+15551234567',
    'first_name': 'John',
    'last_name': 'Doe',
    'home_address': {
      'street': '123 Main St',
      'city': 'San Francisco',
      'region': 'CA',
      'postal_code': '94102',
      'country': 'US'
    }
  }
});

GTM Implementation

Configure enhanced conversions in GTM:

  1. Enable Enhanced Conversions in tag settings
  2. Map user data variables to fields
  3. Data is automatically hashed before sending

Conversion Value Rules

Create dynamic conversion values based on audience or context:

  • Location-based values - Higher values for premium markets
  • Audience-based values - Adjust for customer lifetime value
  • Device-based values - Different values by device type

Configure in Tools > Conversions > Value rules

Offline Conversions

Import Methods

1. Manual Upload

Upload conversions via CSV file:

Required fields:

  • Google Click ID (GCLID) or other identifier
  • Conversion name
  • Conversion time
  • Conversion value (optional)
  • Conversion currency (optional)

CSV format:

Google Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
EAIaIQobChMI...,Purchase,2025-01-15 10:30:00,99.99,USD

Upload in Tools > Conversions > Uploads

2. Google Ads API

Automate conversion imports programmatically:

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage()
conversion_upload_service = client.get_service("ConversionUploadService")

# Create click conversion
click_conversion = client.get_type("ClickConversion")
click_conversion.gclid = "EAIaIQobChMI..."
click_conversion.conversion_action = "customers/123/conversionActions/456"
click_conversion.conversion_date_time = "2025-01-15 10:30:00-08:00"
click_conversion.conversion_value = 99.99
click_conversion.currency_code = "USD"

# Upload conversion
request = client.get_type("UploadClickConversionsRequest")
request.customer_id = "123456789"
request.conversions = [click_conversion]
request.partial_failure = True

response = conversion_upload_service.upload_click_conversions(request=request)

3. Enhanced Conversions for Leads

Upload lead conversions using user-provided data:

# Enhanced conversion for lead
click_conversion = client.get_type("ClickConversion")
click_conversion.gclid = "EAIaIQobChMI..."
click_conversion.conversion_action = "customers/123/conversionActions/789"
click_conversion.conversion_date_time = "2025-01-15 14:20:00-08:00"

# User identifiers (will be hashed)
user_identifiers = []
email_identifier = client.get_type("UserIdentifier")
email_identifier.hashed_email = hash_value("user@example.com")
user_identifiers.append(email_identifier)

phone_identifier = client.get_type("UserIdentifier")
phone_identifier.hashed_phone_number = hash_value("+15551234567")
user_identifiers.append(phone_identifier)

click_conversion.user_identifiers = user_identifiers

# Upload
request = client.get_type("UploadClickConversionsRequest")
request.customer_id = "123456789"
request.conversions = [click_conversion]

response = conversion_upload_service.upload_click_conversions(request=request)

4. CRM Integration

Integrate with Salesforce, HubSpot, or other CRMs:

  • Use Google Ads API to push CRM conversions
  • Map CRM lead/opportunity stages to conversions
  • Include GCLID from form submissions
  • Schedule regular imports (hourly/daily)

Store Sales Import

Track in-store purchases from online ads:

  1. Collect customer match data (email/phone) online
  2. Match to in-store transactions via loyalty programs
  3. Upload via Store Sales Uploads
  4. Requires historical data for Google's modeling

Attribution

Attribution Models

Google Ads supports multiple attribution models:

Available Models

  • Last click - 100% credit to last clicked ad (default for Search)
  • First click - 100% credit to first clicked ad
  • Linear - Equal credit across all clicks
  • Time decay - More recent clicks get more credit
  • Position-based - 40% first and last, 20% middle clicks
  • Data-driven - Algorithmic attribution (recommended, requires sufficient data)

Configure in Tools > Attribution > Attribution models

Data-Driven Attribution

Google's machine learning model that distributes credit based on actual impact:

Requirements:

  • 15,000 clicks + 600 conversions within 30 days (Search/Shopping)
  • 3,000 clicks + 300 conversions within 30 days (Display/YouTube)

Benefits:

  • Most accurate conversion credit
  • Adapts to your specific conversion paths
  • Optimizes bidding strategies

Conversion Windows

Set lookback periods for conversions:

Configure per conversion action in conversion settings.

Cross-Device Conversions

Automatic tracking of conversions across devices:

  • User clicks ad on mobile
  • User converts on desktop
  • Both interactions counted in attribution path

Enabled by default for signed-in Google users.

Debugging & Validation

Google Tag Assistant

Browser extension for validating Google tags:

  1. Install Tag Assistant Chrome extension
  2. Navigate to page with conversion tag
  3. Click extension icon to see:
    • Tags detected
    • Configuration status
    • Firing status
    • Error messages

Preview Mode in GTM

Test conversions before publishing:

  1. Enter Preview mode in Google Tag Manager
  2. Navigate through conversion funnel
  3. Verify tags fire at correct triggers
  4. Check dataLayer variables
  5. Confirm parameters pass correctly

Conversion Tracking Status

Check implementation in Google Ads:

Navigate to Tools > Conversions and review:

  • Status column - Recording/Not recording
  • Recent conversions - Last 7 days activity
  • Tag setup - Implementation method

Use built-in diagnostics:

  1. Go to conversion action details
  2. Check Tag setup section
  3. Review Recent conversions for test conversions
  4. Click Diagnose for troubleshooting

Test Conversions

Create test conversions to verify setup:

// Add test parameter
gtag('event', 'conversion', {
  'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
  'value': 1.0,
  'currency': 'USD',
  'transaction_id': 'TEST_' + Date.now()
});

Check All conversions column in reports (test conversions appear within minutes).

Common Issues

Conversion not recording:

  • Verify conversion tag fires after global tag
  • Check conversion ID and label match
  • Confirm user clicked Google Ad before converting
  • Review attribution window settings

Duplicate conversions:

  • Implement transaction_id for deduplication
  • Check if tag fires multiple times on page
  • Verify GTM triggers aren't overlapping

Value not tracking:

  • Ensure value is numeric (not string)
  • Check currency code is valid 3-letter ISO code
  • Verify value passes before conversion event fires

Best Practices

Implementation

  1. Use Google Tag (gtag.js) or GTM for all implementations
  2. Implement global site tag on all pages, conversion events on specific pages
  3. Use transaction IDs for all purchase conversions to prevent duplicates
  4. Enable enhanced conversions for improved accuracy
  5. Test thoroughly in GTM preview mode before publishing

Conversion Strategy

  1. Create separate conversion actions for different business goals
  2. Use micro-conversions (add to cart, sign up) for fuller funnel view
  3. Set appropriate values reflecting true business impact
  4. Mark primary conversions for automated bidding optimization
  5. Import GA4 conversions for unified analytics and ads measurement

Attribution

  1. Use data-driven attribution when eligible for most accurate credit
  2. Set conversion windows based on sales cycle length
  3. Enable cross-device conversions for complete user journey tracking
  4. Review attribution reports regularly to understand customer paths
  5. Consider position-based attribution for awareness campaigns

Data Quality

  1. Regular audits of conversion tracking implementation
  2. Monitor conversion rates for unexpected drops or spikes
  3. Use enhanced conversions for 20-40% improvement in measurement
  4. Implement consent mode for privacy-compliant tracking
  5. Document all conversion actions with business definitions

Privacy & Compliance

  1. Implement Google consent mode for GDPR/CCPA compliance
  2. Honor user opt-outs via Google's privacy controls
  3. Use enhanced conversions instead of third-party cookies
  4. Hash PII before sending (automatic with enhanced conversions)
  5. Update privacy policy to disclose Google Ads tracking

Optimization

  1. Focus on primary conversions for Smart Bidding strategies
  2. Use conversion value rules for nuanced optimization
  3. Import offline conversions within 90 days for attribution
  4. Enable auto-tagging for accurate conversion attribution
  5. Review search terms for conversions to refine targeting

Reporting

  1. Segment conversions by device, location, and audience
  2. Use conversion paths report to understand multi-touch attribution
  3. Monitor conversion lag to set realistic expectations
  4. Compare attribution models to understand impact of different approaches
  5. Create custom columns for conversion rate and ROAS by segment
// SYS.FOOTER