attributionUpdated 2025

Paid Campaign Tracking Checklist: Never Miss Auto-Tagging Again

Complete pre-launch checklist ensuring all paid campaigns have proper auto-tagging and UTM parameters

7 min readattribution

Your team launches a $50,000 campaign. Tracking breaks. No attribution data. Budget wasted.

Use this checklist before launching ANY paid campaign to ensure perfect tracking every time.

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

The Pre-Launch Checklist

Copy this checklist for every campaign launch. Do NOT skip any steps.

Phase 1: Platform Configuration (5 minutes)

✅ Google Ads

  • Auto-tagging enabled (Settings → Account settings → Auto-tagging: ON)
  • GA4 linked (Tools & Settings → Linked accounts → Google Analytics)
  • Cost data import enabled
  • Conversion tracking configured

✅ Microsoft Ads

  • Auto-tagging enabled (Settings → Auto-tagging: ON)
  • Tracking template configured:
    Code
    {lpurl}?utm_source=bing&utm_medium=cpc&utm_campaign={campaign}&msclkid={msclkid}
    
  • UET tag installed on site

✅ Facebook/Instagram Ads

  • URL parameters configured in Ad Manager:
    Code
    utm_source={{site_source_name}}&utm_medium=paid-social&utm_campaign={{campaign.name}}
    
  • Facebook Pixel installed
  • Test ad shows both fbclid AND UTMs

✅ TikTok Ads

  • URL parameters configured:
    Code
    utm_source=tiktok&utm_medium=paid-social&utm_campaign={{campaign.name}}
    
  • TikTok Pixel installed
  • Test ad shows both ttclid AND UTMs

✅ LinkedIn Ads

  • URL parameters configured:
    Code
    utm_source=linkedin&utm_medium=paid-social&utm_campaign=your_campaign_name
    
  • LinkedIn Insight Tag installed

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

Phase 2: URL Validation (3 minutes)

Test Every Ad Creative

Javascript
// Run this for each test ad URL
const url = 'YOUR_TEST_AD_URL';
const urlObj = new URL(url);
 
console.log('Tracking check:');
console.log('gclid:', urlObj.searchParams.get('gclid'));
console.log('fbclid:', urlObj.searchParams.get('fbclid'));
console.log('msclkid:', urlObj.searchParams.get('msclkid'));
console.log('ttclid:', urlObj.searchParams.get('ttclid'));
console.log('utm_source:', urlObj.searchParams.get('utm_source'));
console.log('utm_medium:', urlObj.searchParams.get('utm_medium'));
console.log('utm_campaign:', urlObj.searchParams.get('utm_campaign'));

Required results:

  • Google Ads: gclid present (UTMs optional)
  • Facebook: fbclid + utm_source + utm_medium + utm_campaign
  • Microsoft: msclkid + utm_source + utm_medium + utm_campaign
  • TikTok: ttclid + utm_source + utm_medium + utm_campaign
  • LinkedIn: utm_source + utm_medium + utm_campaign

Check for Common Errors

  • No duplicate UTM parameters (utm_source=x&utm_source=y)
  • No spaces in values (use underscores or hyphens)
  • Special characters encoded (&%26, +%2B)
  • Query string starts with ? (not &)
  • Fragment # comes AFTER query parameters
  • No conflicting click IDs (gclid + fbclid on same URL)

Phase 3: GA4 Real-Time Testing (2 minutes)

Test Flow for Each Platform

Code
1. Click test ad in incognito browser
2. Open GA4 → Reports → Realtime
3. Verify session appears within 30 seconds
4. Check Traffic acquisition source
5. Confirm correct attribution

Expected results:

PlatformGA4 SourceGA4 MediumNotes
Google AdsgooglecpcAutomatic from gclid
Microsoft AdsbingcpcFrom UTM parameters
Facebookfacebookpaid-socialFrom UTM parameters
Instagraminstagrampaid-socialUses {{site_source_name}}
TikToktiktokpaid-socialFrom UTM parameters
LinkedInlinkedinpaid-socialFrom UTM parameters

Phase 4: Naming Convention Compliance (2 minutes)

UTM Naming Standards

Ensure all campaign names follow your organization's standards:

✅ Good naming:

Code
utm_campaign=2024_q4_black_friday_sale
utm_campaign=product_launch_email_sequence
utm_campaign=brand_awareness_video_ads

❌ Bad naming:

Code
utm_campaign=campaign1
utm_campaign=Test
utm_campaign=NEW CAMPAIGN!!!

Standard format:

Code
{year}_{quarter/month}_{campaign_type}_{target_audience}_{creative_variant}

Examples:
2024_q4_acquisition_enterprise_video_a
2024_dec_retention_smb_carousel_b

Check Against Standards

  • Campaign name follows format
  • No spaces (use underscores)
  • All lowercase
  • Descriptive (not generic)
  • Unique (no duplicates with other campaigns)
  • Documented in campaign tracker

Phase 5: Cross-Domain Tracking (If Applicable)

If Campaign Lands on Different Domain

  • GA4 cross-domain tracking configured
  • Both domains listed in GA4 settings:
    Code
    Admin → Data Streams → Configure → Configure your domains
    Add: shop.yoursite.com, www.yoursite.com
    
  • Test redirect preserves parameters
  • Linker parameter appears on cross-domain URLs

Phase 6: Landing Page Verification (2 minutes)

Check Landing Page

  • Page loads without errors
  • GA4 tag fires (check browser console)
  • Conversion tracking configured
  • Mobile responsive
  • Page speed acceptable (less than 3 seconds)
  • Form tracking configured (if applicable)

Test Conversion Flow

  • Click test ad
  • Complete desired action (form fill, purchase, etc.)
  • Verify conversion appears in GA4 Realtime
  • Check conversion attribution to correct source

Phase 7: Budget & Targeting Review (3 minutes)

Budget Alignment

  • Daily budget set correctly
  • Total campaign budget documented
  • Billing method configured
  • Budget alerts configured

Targeting Verification

  • Geographic targeting matches campaign goals
  • Demographic targeting configured
  • Audience segments applied
  • Placement exclusions set (if needed)
  • Dayparting configured (if needed)

Phase 8: Team Communication (2 minutes)

Internal Documentation

  • Campaign documented in tracker:
    • Campaign name
    • Platform
    • Budget
    • Start/end dates
    • UTM parameters
    • Landing pages
    • Expected KPIs
  • Stakeholders notified
  • Analytics team alerted
  • Creative assets archived

Phase 9: Monitoring Setup (3 minutes)

Set Up Alerts

Configure GA4 alerts for:

Alert 1: Traffic appears

Code
Condition: Campaign shows >0 sessions within 24 hours
Action: Confirm tracking working

Alert 2: Cost data importing (Google Ads only)

Code
Condition: Cost > $0 within 48 hours
Action: Confirm cost import working

Alert 3: Conversion tracking

Code
Condition: Conversions > 0 within first week
Action: Confirm conversion attribution working

Phase 10: Post-Launch Validation (24 Hours Later)

Day 1 Check

  • Campaign traffic visible in GA4
  • Source/medium attribution correct
  • Cost data imported (Google Ads)
  • Conversions tracking properly
  • Click volume matches platform reporting
  • No attribution anomalies

Quick Reference: Platform-Specific Requirements

Code
✅ Auto-tagging: ON
✅ GA4 linked
✅ Test ad shows: ?gclid=...
✅ GA4 shows: source=google, medium=cpc

Microsoft Ads Minimum Requirements

Code
✅ Auto-tagging: ON
✅ Tracking template with UTMs
✅ Test ad shows: ?msclkid=...&utm_source=bing&utm_medium=cpc
✅ GA4 shows: source=bing, medium=cpc

Facebook Minimum Requirements

Code
✅ URL parameters configured
✅ Facebook Pixel installed
✅ Test ad shows: ?fbclid=...&utm_source=facebook&utm_medium=paid-social
✅ GA4 shows: source=facebook, medium=paid-social

TikTok Minimum Requirements

Code
✅ URL parameters configured
✅ TikTok Pixel installed
✅ Test ad shows: ?ttclid=...&utm_source=tiktok&utm_medium=paid-social
✅ GA4 shows: source=tiktok, medium=paid-social

LinkedIn Minimum Requirements

Code
✅ URL parameters configured
✅ Insight Tag installed
✅ Test ad shows: ?utm_source=linkedin&utm_medium=paid-social
✅ GA4 shows: source=linkedin, medium=paid-social

Troubleshooting Common Pre-Launch Issues

Issue: Test Ad Shows No Parameters

Check:

  1. Auto-tagging actually enabled (not just saved)
  2. Clear browser cache and test again
  3. Test in incognito mode
  4. Verify no URL shortener stripping parameters

Issue: GA4 Real-Time Shows Wrong Source

Check:

  1. UTM values match expected platform
  2. No conflicting parameters (multiple sources)
  3. Referrer data not overriding UTMs
  4. No browser extensions modifying URLs

Issue: Cost Data Not Importing

Check:

  1. GA4-Google Ads link complete (both directions)
  2. Auto-tagging enabled in Google Ads
  3. Cost import permission enabled in link settings
  4. Wait 24-48 hours (not instant)

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

FAQ

How long does this checklist take?

20-30 minutes for first campaign on each platform. 10-15 minutes for subsequent campaigns once you know the process.

Can I automate any of these checks?

Yes. URL validation, UTM parameter presence, and GA4 tag firing can be automated with testing scripts. But manual verification recommended for first launch.

What if I skip the checklist?

Risk of untracked campaigns, wasted budget, incorrect attribution, inability to optimize, and missing ROI data. Don't skip.

Should I use this for organic campaigns too?

Simplified version, yes. Focus on UTM consistency and GA4 validation. Skip auto-tagging steps (not applicable to organic).

How often should I audit active campaigns?

Weekly during first month, then monthly. Use shortened checklist focusing on tracking health, not configuration.

What if I find issues after launch?

Fix immediately. Document when fix applied. Segment reports to exclude broken period. Future data will be correct.

Can I create a template from this?

Yes. Create platform-specific templates in your project management tool. Assign to team members before every launch.

What about A/B testing campaigns?

Use utm_content to differentiate variants. Run checklist for each variant. Ensure consistent naming across variants.

How do I train my team on this?

Create internal documentation, record walkthrough video, require checklist completion before campaign approval, review first 3 launches together.

What's the most commonly skipped step?

GA4 Real-Time testing. Teams configure tracking but don't verify it works. Always test before spending budget.


Related guides:

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.