Google Ads Setup & Implementation | Blue Frog Docs

Google Ads Setup & Implementation

End-to-end Google Ads implementation guide covering conversion tracking, tag deployment, and configuration.

Google Ads conversion tracking is the foundation of campaign optimization and Smart Bidding. Proper implementation ensures accurate measurement of ROAS, enables automated bid strategies, and provides the data foundation for Performance Max and other AI-driven campaign types. This comprehensive guide covers everything from initial setup through advanced features like enhanced conversions and offline conversion import.

Overview

Why Proper Implementation Matters

Campaign Performance:

  • Smart Bidding algorithms require conversion data to optimize bids
  • Performance Max campaigns rely on conversion signals for asset testing
  • Remarketing audiences are built from on-site behavior tracked via Google Tag
  • Attribution reports need accurate conversion tracking to understand the customer journey

Data Quality Impact:

  • Inaccurate conversion tracking leads to wasted spend on non-converting traffic
  • Missing enhanced conversions reduces match rates and attribution accuracy
  • Incorrect value tracking skews ROAS calculations and budget allocation
  • Delayed conversion implementation creates historical data gaps

Compliance Requirements:

  • Google Tag must respect user consent choices (GDPR, CCPA)
  • Enhanced conversions require privacy policy disclosure
  • Remarketing tags need cookie notices and opt-out mechanisms
  • Data residency requirements may necessitate server-side implementation

Pre-Implementation Planning

Access and Permissions

Google Ads Account Access:

  1. Request Standard or Admin access to the Google Ads account
  2. For agencies: Create or join a Manager (MCC) account
  3. Link MCC to client accounts for centralized management
  4. Enable two-factor authentication for security

Required Permissions:

  • Admin: Full account access including billing and user management
  • Standard: Campaign and conversion tracking management (recommended for implementation)
  • Read-only: Reporting access only (insufficient for implementation)

Google Tag Manager Access (if using GTM):

  • Publish permission on the GTM container
  • Access to production workspace
  • Coordination with other teams using GTM

Conversion Goal Definition

Before implementing tracking, clearly define what constitutes a conversion:

E-commerce Conversions:

  • Purchase completion (primary conversion)
  • Add to cart (secondary conversion for optimization)
  • Begin checkout (mid-funnel signal)
  • Product page views (remarketing audience building)

Lead Generation Conversions:

  • Form submission (primary conversion)
  • Phone calls from ads (call tracking required)
  • Chat interactions (integration with chat platform)
  • Downloaded assets (gated content)

Engagement Conversions:

  • Video views (percentage thresholds)
  • Page depth (number of pages viewed)
  • Time on site (engagement duration)
  • Account creation (user registration)

Conversion Value Assignment:

  • Use actual transaction value for e-commerce
  • Assign estimated value for leads based on close rate and deal size
  • Consider lifetime value for subscription businesses
  • Set different values for different conversion types

Implementation Approach Selection

Option 1: gtag.js (Direct Implementation)

Pros:

  • Simpler implementation for single-purpose tracking
  • Faster page load (one less tag manager layer)
  • Direct control over all parameters
  • Easier debugging with fewer moving parts

Cons:

  • Requires developer resources for each tag update
  • No tag management UI
  • Harder to maintain multiple tags
  • Limited testing before deployment

Best For: Small sites with simple tracking needs, technical teams comfortable with code deploys

Option 2: Google Tag Manager (Recommended)

Pros:

  • No code deployment for tag updates
  • Built-in testing and preview mode
  • Centralized tag management
  • Version control and rollback capability
  • Advanced trigger and variable options

Cons:

  • Additional JavaScript library to load
  • Learning curve for non-technical users
  • Potential for configuration errors
  • Requires GTM container on all pages

Best For: Most implementations, especially multi-stakeholder environments

Option 3: Server-Side Tracking

Pros:

  • Better privacy compliance
  • More reliable conversion tracking (not blocked by ad blockers)
  • Reduced client-side JavaScript
  • Greater control over data sent to Google

Cons:

  • Requires server infrastructure (Google Cloud, AWS, or other)
  • More complex setup and maintenance
  • Additional costs for server resources
  • Developer expertise required

Best For: Enterprise implementations, privacy-sensitive industries, high-traffic sites

Implementation Phases

Phase 1: Discovery & Access

Week 1-2 Activities:

  1. Obtain Account Access:

    • Request Google Ads account credentials
    • Set up MCC account if managing multiple accounts
    • Link accounts with appropriate permissions
    • Enable two-factor authentication
  2. Document Current State:

    • Audit existing tracking implementation (if any)
    • Identify all conversion goals and their current tracking
    • Review data layer implementation (for GTM approach)
    • Document website structure and key conversion pages
  3. Define Conversion Goals:

    • Primary conversions (purchases, leads)
    • Secondary conversions (micro-conversions)
    • Remarketing audiences to build
    • Value attribution approach
  4. Technology Stack Review:

  5. Stakeholder Alignment:

    • Confirm conversion goals with marketing team
    • Align value attribution with finance team
    • Coordinate GTM access with web development team
    • Set privacy requirements with legal team

Deliverables:

  • Conversion tracking specification document
  • Implementation approach recommendation (gtag.js vs GTM vs server-side)
  • Access to all required platforms
  • Project timeline and resource allocation

Phase 2: Instrumentation Build

Week 3-5 Activities:

  1. Create Conversion Actions:

Navigate to Tools & Settings > Measurement > Conversions in Google Ads.

For Each Conversion Action:

  • Click "+ New conversion action"
  • Select "Website" as the source
  • Enter conversion details:
    • Goal and action optimization: Choose category (Purchase, Lead, etc.)
    • Conversion name: Descriptive name (e.g., "Purchase - Complete")
    • Value: How to assign value (use transaction-specific value or same value)
    • Count: Every conversion or One per click
    • Conversion window: 30-90 days (how long after ad click to count conversion)
    • View-through conversion window: 1-30 days (how long after ad view)
    • Attribution model: Last click, Data-driven, or other
  1. Configure Enhanced Conversions:

Enhanced conversions improve conversion measurement accuracy by sending hashed first-party data.

Setup Steps:

  • In conversion action settings, expand "Enhanced conversions"
  • Select implementation method:
    • Google Tag Manager (recommended)
    • Google tag (gtag.js)
    • Google Ads API
  • Check "Turn on enhanced conversions"

Data to Collect (hash before sending):

  • Email address (most important)
  • Phone number
  • First name
  • Last name
  • Home address
  1. Set Up Remarketing:

Enable Remarketing Tag:

  • Navigate to Tools & Settings > Shared library > Audience manager
  • Click "Audience sources"
  • Ensure Google Ads tag is enabled
  • Set remarketing membership duration (30-540 days)

Create Remarketing Audiences:

  • All website visitors
  • Visitors who didn't convert
  • Cart abandoners (viewed product/cart but didn't purchase)
  • Past purchasers (for upsell/cross-sell)
  • High-value visitors (time on site, page depth thresholds)

Google Tag Implementation

Option A: GTM Implementation (Recommended)

  1. Install GTM Container (if not already present):
<!-- Google Tag Manager (in <head>) -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Google Tag Manager (noscript) - immediately after opening <body> -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
  1. Configure Google Tag in GTM:

Create Google Tag:

  • In GTM, click "Tags" > "New"
  • Name: "Google Tag - All Pages"
  • Tag Type: "Google Tag"
  • Tag ID: Your Google Ads Conversion ID (e.g., AW-123456789)
  • Triggering: All Pages

Configuration Parameters:

// Set up Google Tag configuration
Tag Configuration > Google Tag > Tag ID: AW-123456789

// Enable enhanced conversions in GTM
Configuration Settings:
- Enable "Send an event based on URL parameter"
- Enhanced Conversions: Automatic (recommended) or Manual
  1. Create Conversion Tags:

For each conversion action:

Tag Configuration:

  • Tag Type: "Google Ads Conversion Tracking"
  • Conversion ID: AW-123456789
  • Conversion Label: From Google Ads (e.g., "AbC123dEfG")
  • Conversion Value: Variable or static
  • Transaction ID: {{transactionId}} (to prevent duplicate conversions)

Trigger:

  • Create custom event trigger for conversion
  • Example: Event name equals "purchase"
  1. Set Up Enhanced Conversions in GTM:

Automatic Method (recommended if using standard e-commerce data layer):

Enable in Google Tag configuration, GTM will automatically detect:

  • email
  • phone_number
  • address.first_name
  • address.last_name
  • address.street
  • address.city
  • address.region
  • address.postal_code
  • address.country

Manual Method (for custom implementations):

Create User Data variable:

// GTM User Data Variable
{
  "email": "{{DLV - User Email}}",  // Variable pulling from data layer
  "phone_number": "{{DLV - User Phone}}",
  "address": {
    "first_name": "{{DLV - User First Name}}",
    "last_name": "{{DLV - User Last Name}}",
    "street": "{{DLV - User Street}}",
    "city": "{{DLV - User City}}",
    "region": "{{DLV - User Region}}",
    "postal_code": "{{DLV - User Postal Code}}",
    "country": "{{DLV - User Country}}"
  }
}

Attach to conversion tag under "User Provided Data"

Option B: gtag.js Direct Implementation

  1. Install Google Tag on All Pages:
<!-- Google tag (gtag.js) -->
<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>
  1. Add Conversion Tracking on Conversion Pages:
<!-- Event snippet for Purchase conversion page -->
<script>
  gtag('event', 'conversion', {
    'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
    'value': 99.99,
    'currency': 'USD',
    'transaction_id': 'ORDER_12345'
  });
</script>
  1. Implement Enhanced Conversions:
<script>
  gtag('set', 'user_data', {
    "email": "customer@example.com",
    "phone_number": "+1234567890",
    "address": {
      "first_name": "John",
      "last_name": "Doe",
      "street": "123 Main St",
      "city": "New York",
      "region": "NY",
      "postal_code": "10001",
      "country": "US"
    }
  });

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

Important: Hash sensitive data before sending, or use automatic enhanced conversions

Data Layer Setup (for GTM)

Standard E-commerce Data Layer:

// On all pages
dataLayer.push({
  'event': 'page_view',
  'pageType': 'product', // home, category, product, cart, checkout, confirmation
  'user': {
    'email': 'customer@example.com',  // On logged-in pages
    'customerId': 'USER_12345',
    'customerType': 'returning'  // new, returning
  }
});

// On product pages
dataLayer.push({
  'event': 'view_item',
  'ecommerce': {
    'items': [{
      'item_name': 'Product Name',
      'item_id': 'SKU_123',
      'price': 29.99,
      'item_brand': 'Brand Name',
      'item_category': 'Category',
      'quantity': 1
    }]
  }
});

// On add to cart
dataLayer.push({
  'event': 'add_to_cart',
  'ecommerce': {
    'items': [{
      'item_name': 'Product Name',
      'item_id': 'SKU_123',
      'price': 29.99,
      'quantity': 1
    }]
  }
});

// On purchase confirmation page
dataLayer.push({
  'event': 'purchase',
  'ecommerce': {
    'transaction_id': 'ORDER_12345',
    'affiliation': 'Online Store',
    'value': 99.99,
    'tax': 8.99,
    'shipping': 5.99,
    'currency': 'USD',
    'items': [{
      'item_name': 'Product Name',
      'item_id': 'SKU_123',
      'price': 29.99,
      'quantity': 3
    }]
  },
  'user_data': {
    'email': 'customer@example.com',
    'phone_number': '+1234567890',
    'address': {
      'first_name': 'John',
      'last_name': 'Doe',
      'city': 'New York',
      'region': 'NY',
      'postal_code': '10001',
      'country': 'US'
    }
  }
});

Lead Generation Data Layer:

// On form submission
dataLayer.push({
  'event': 'generate_lead',
  'formName': 'Contact Form',
  'formId': 'contact-form-main',
  'user_data': {
    'email': 'lead@example.com',
    'phone_number': '+1234567890',
    'address': {
      'first_name': 'Jane',
      'last_name': 'Smith'
    }
  }
});

Phase 3: QA & Testing

Week 6 Activities:

Pre-Launch Testing

  1. GTM Preview Mode Testing:

    • Enable Preview mode in GTM
    • Navigate through conversion funnel
    • Verify all tags fire on correct pages/events
    • Check variable values are populated correctly
    • Confirm data layer structure
  2. Google Tag Assistant Testing:

    • Install Google Tag Assistant Chrome extension
    • Visit your website with Tag Assistant enabled
    • Verify Google Tag is present on all pages
    • Check for duplicate tags or errors
    • Validate conversion tags fire on completion pages
  3. Test Conversions:

    • Complete actual conversions on your website
    • Use test credit card numbers for e-commerce (or use test mode)
    • Fill out lead forms with test data
    • Check Google Ads > Tools & Settings > Conversions > "Recent conversions"
    • Verify conversion appears within 3-24 hours (usually within a few hours)
  4. Enhanced Conversions Validation:

    • Use Chrome DevTools Network tab
    • Filter for "collect" requests to Google
    • Find conversion event
    • Look for "em", "ph", "fn", "ln" parameters (these are hashed user data)
    • Verify data is being sent

Enhanced Conversions Check:

https://www.google-analytics.com/g/collect?
  ...
  &em=HASHED_EMAIL
  &ph=HASHED_PHONE
  &fn=HASHED_FIRST_NAME
  &ln=HASHED_LAST_NAME
  ...
  1. Cross-Browser Testing:

    • Test on Chrome, Firefox, Safari, Edge
    • Test on mobile devices (iOS Safari, Android Chrome)
    • Verify tags fire in all browsers
    • Check for console errors
  2. Consent Mode Testing (if using consent management):

    • Test with consent denied
    • Verify tags respect consent choices
    • Test with consent granted
    • Ensure conversion tracking works with consent

Common Issues and Fixes

Issue Diagnosis Solution
Tag not firing GTM Preview shows tag not triggered Check trigger configuration, ensure event name matches
Duplicate conversions Multiple conversion tags firing Add transaction ID, set conversion count to "One"
No user data in enhanced conversions Network tab shows no hashed data Verify data layer contains user info, check variable mapping
Conversions not appearing in Google Ads Tags fire but no conversions recorded Verify conversion ID and label, check for tag blockers, wait 24 hours
Wrong conversion value Value is 0 or incorrect amount Check value variable, ensure data layer has correct value

Phase 4: Launch

Week 7 Activities:

  1. Final Pre-Launch Checklist:

    • All conversion tags tested and verified
    • Enhanced conversions sending data
    • Remarketing tag firing on all pages
    • Data layer implemented correctly
    • Test conversions appeared in Google Ads
    • Cross-browser testing complete
    • Privacy policy updated for enhanced conversions
    • Stakeholders notified of launch date
  2. Publish GTM Container:

    • Review all changes in GTM workspace
    • Add version name and description
    • Click "Submit" to publish
    • Monitor for errors post-publish
  3. Enable Conversions in Campaigns:

    • Navigate to campaign settings
    • Select appropriate conversion actions for optimization
    • Choose primary conversion action
    • Set secondary conversions (if applicable)
  4. Set Up Conversion Goals for Smart Bidding:

    • If using Target CPA: Set initial CPA target
    • If using Target ROAS: Set initial ROAS target
    • Use historical data if available
    • Start with conservative targets

Post-Launch Monitoring (Week 8-10):

  1. Daily Checks (First Week):

    • Monitor conversion volume
    • Check for conversion spikes or drops
    • Verify enhanced conversion match rate (aim for >50%)
    • Review remarketing audience growth
  2. Weekly Reviews (First Month):

    • Compare conversion data to previous tracking (if applicable)
    • Analyze conversion rate by campaign
    • Review ROAS and CPA metrics
    • Check for data discrepancies vs. backend systems
  3. Optimization Opportunities:

    • Exclude converters from remarketing if appropriate
    • Create cart abandoner audiences
    • Set up dynamic remarketing (for e-commerce)
    • Layer audiences with campaign targeting

Google Analytics 4 Integration

Linking Google Ads with GA4 provides deeper insights and enables audience sharing for remarketing.

Linking Process

  1. In Google Analytics 4:

    • Navigate to Admin (bottom left)
    • Under Property column, click Google Ads Links
    • Click "Link" button
    • Select Google Ads account to link
    • Enable auto-tagging
    • Enable personalized advertising
    • Submit
  2. Configure Auto-Tagging (if not already enabled):

    • In Google Ads, go to Settings
    • Click Account settings
    • Under "Auto-tagging", check "Tag the URL that people click through from my ad"
    • Save
  3. Import Conversions from GA4 to Google Ads (optional):

    • In Google Ads, Tools & Settings > Conversions
    • Click "+ New conversion action"
    • Select "Import" > "Google Analytics 4"
    • Select GA4 property
    • Choose events to import as conversions
    • Configure settings and import

Benefits of GA4 Integration

Enhanced Reporting:

  • See full user journey from ad click to conversion in GA4
  • Analyze bounce rate and engagement metrics by campaign
  • Understand on-site behavior of paid traffic
  • Cross-device conversion attribution

Audience Sharing:

  • Create audiences in GA4 based on complex criteria
  • Export audiences to Google Ads for remarketing
  • Combine first-party data with behavioral signals
  • Build predictive audiences (likely purchasers)

Example GA4 Audiences for Google Ads:

  • Users who viewed 3+ products but didn't purchase
  • High-value customers (LTV >$500)
  • Users who completed specific conversion funnel steps
  • Engaged users (session duration >2min, 3+ page views)

Advanced Implementation Topics

Offline Conversion Import

For businesses with offline sales (phone sales, in-store), import offline conversions to Google Ads:

Setup Process:

  1. Enable Offline Conversion Tracking:

    • In Google Ads, Tools & Settings > Conversions
    • Create new conversion action
    • Select "Import" > "Track conversions from clicks"
    • Name: "Offline Sales"
    • Set value and count settings
  2. Capture GCLID:

    • When user clicks ad, capture gclid parameter from URL
    • Store in your CRM with lead/customer record
    • Associate with offline conversion when it happens
  3. Import Conversions:

    • Prepare CSV with: GCLID, Conversion Time, Conversion Value, Conversion Currency
    • Upload via Google Ads UI or API
    • File format:
      Parameters:TimeZone=America/New_York
      Google Click ID,Conversion Name,Conversion Time,Conversion Value,Conversion Currency
      EAIaIQ...,Offline Sale,2024/01/15 14:30:00,299.99,USD
      

API Integration:

from google.ads.googleads.client import GoogleAdsClient

# Upload offline conversion
operation = client.get_type("OfflineUserDataJobOperation")
job_resource_name = offline_user_data_job_service.create_offline_user_data_job(
    customer_id=customer_id,
    job=job
)

Call Tracking Integration

Track phone calls from ads as conversions:

Google Forwarding Numbers:

  • Enable call extensions in Google Ads
  • Google provides forwarding numbers
  • Calls automatically tracked as conversions
  • No additional setup required

Third-Party Call Tracking (CallRail, CallTrackingMetrics, etc.):

  • Integrate via Google Ads API
  • Import call conversions with conversion import
  • Match calls to GCLID for attribution

Store Visits Tracking

For businesses with physical locations:

Requirements:

How It Works:

  • Google uses aggregated location data from users who have opted in
  • Estimates store visits from users who clicked ads
  • Reported in "Store visits" column

Server-Side Conversion Tracking

For improved privacy compliance and reliability:

Google Ads Conversion API:

// Server-side conversion upload
const {GoogleAdsApi} = require('google-ads-api');

const conversion = {
  gclid: 'GCLID_FROM_CLICK',
  conversion_action: 'customers/123/conversionActions/456',
  conversion_date_time: '2024-01-15 14:30:00+00:00',
  conversion_value: 99.99,
  currency_code: 'USD',
  user_identifiers: [{
    hashed_email: 'HASHED_EMAIL',
    hashed_phone_number: 'HASHED_PHONE'
  }]
};

await customer.conversionUploads.uploadClickConversions({
  conversions: [conversion],
  partial_failure: true
});

Benefits:

  • Not affected by ad blockers
  • More reliable conversion tracking
  • Better privacy controls
  • Reduced client-side JavaScript

Deployment Artifacts

After implementation, you should have:

Documentation:

  • Conversion tracking specification document
  • Data layer specification
  • GTM container documentation
  • User data hashing implementation details
  • Privacy policy updates

Google Ads Configuration:

  • Conversion actions created with IDs and labels
  • Enhanced conversions enabled
  • Remarketing audiences defined
  • GA4 linking complete (if applicable)

Technical Implementation:

  • GTM container with all tags configured (or gtag.js implementation)
  • Data layer on all relevant pages
  • Enhanced conversions user data collection
  • Testing results documented

Access and Credentials:

  • Google Ads account access for ongoing management
  • GTM publish access
  • GA4 admin access (if linked)
  • API credentials (if using API integrations)

Ongoing Maintenance

Monthly Tasks:

  • Review conversion volume trends
  • Check enhanced conversion match rate
  • Audit remarketing audience growth
  • Validate conversion values vs. backend data

Quarterly Tasks:

  • Test conversion tracking end-to-end
  • Review and update conversion actions as business goals change
  • Audit GTM container for unused tags
  • Update privacy policies as needed

Annual Tasks:

  • Full conversion tracking audit
  • Review attribution model effectiveness
  • Evaluate server-side tracking migration
  • Assess new Google Ads features (Performance Max, etc.)

Troubleshooting

See dedicated troubleshooting section for common issues, or refer to:

  • Google Tag Assistant for tag validation
  • GTM Preview mode for debugging
  • Google Ads Recent Conversions report for conversion verification
  • Chrome DevTools Network tab for enhanced conversions validation

Linked Runbooks

// SYS.FOOTER