Fix Missing Campaign Names on Paid Traffic (5-Minute Guide)
Your situation:
- Paid ads are running
- Traffic is flowing
- GA4 shows campaign = "(not set)"
- Boss wants campaign ROI report
- You have 5 minutes to fix it
This guide fixes missing campaign names on paid traffic immediately.
🚨 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
Quick Diagnosis (30 seconds)
Check one of your running ads:
- Click your ad
- Look at the URL in your browser
- Does it have
utm_campaign=something?
If NO → You have the problem. Follow this guide.
If YES → Your ads are fine. Problem might be:
- Old campaigns still running without campaign names
- Some ads configured correctly, others not
- Different platforms have different settings
Platform-Specific 5-Minute Fixes
Google Ads (2 minutes)
Option 1: Enable Auto-Tagging (Recommended)
- Google Ads account → Settings (gear icon)
- Account settings
- Auto-tagging: Toggle ON
- Save
Result: Campaign names automatically populate from your Google Ads campaign structure.
URL changes from:
yoursite.com?utm_source=google&utm_medium=cpc
To:
yoursite.com?gclid=ABC123
(Campaign name extracted from gclid)
Option 2: Add Campaign to Tracking Template
- Campaigns → Settings
- Campaign URL options → Tracking template
- Add:
`{"{"}{"{"}lpurl{"}"}{"}"}}`?utm_source=google&utm_medium=cpc&utm_campaign={{_campaign}}
- Custom parameters → Add:
- Key:
_campaign - Value:
summer-sale-2024(your campaign name)
- Key:
- Save
Time: 2 minutes per campaign
😰 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
Facebook Ads (3 minutes)
For all active campaigns:
- Ads Manager → Campaigns
- Select campaign → Ad Sets → Ads
- Edit ad → Website URL
- Add to URL:
?utm_source=facebook&utm_medium=paid-social&utm_campaign=CAMPAIGN-NAME-HERE
Use Facebook's dynamic parameters:
?utm_source=facebook&utm_medium=paid-social&utm_campaign={"{"}{"{"}campaign.name{"}"}{"}"}}
Facebook automatically fills in campaign name
- Publish
Bulk edit method (faster for multiple ads):
- Select all ads (checkbox)
- Edit → Bulk Edit
- Destination → Website URL
- Find/Replace:
- Find:
?(or existing parameters) - Replace:
?utm_source=facebook&utm_medium=paid-social&utm_campaign={"{"}{"{"}campaign.name{"}"}{"}"}}&
- Find:
- Apply
Time: 3 minutes for all ads
LinkedIn Ads (2 minutes)
- Campaign Manager → Campaigns
- Select campaign → Settings
- Scroll to: URL Parameters
- Add:
utm_source=linkedin&utm_medium=paid-social&utm_campaign={"{"}{"{"}campaign.name{"}"}{"}"}}
- Save
LinkedIn automatically replaces {"{"}{"{"}campaign.name{"}"}{"}"}} with actual campaign name
Time: 30 seconds per campaign
Microsoft Ads (Bing) (2 minutes)
Option 1: Enable Auto-Tagging
- Campaigns → Settings
- Account settings
- Auto-tagging with msclkid: ON
- Save
Option 2: Tracking Template
- Campaigns → Settings → Campaign URL options
- Tracking template:
`{"{"}{"{"}lpurl{"}"}{"}"}}`?utm_source=bing&utm_medium=cpc&utm_campaign=`{"{"}{"{"}CampaignName{"}"}{"}"}}`
- Save
{"{"}{"{"}CampaignName{"}"}{"}"}} automatically fills with Bing campaign name
Time: 2 minutes
TikTok Ads (2 minutes)
- Campaign → Ad Group → Ad
- Edit ad → Tracking → URL Parameters
- Add:
utm_source=tiktok&utm_medium=paid-social&utm_campaign=__CAMPAIGN_NAME__
- Save
TikTok's __CAMPAIGN_NAME__ macro auto-populates
Time: 1 minute per ad
Twitter (X) Ads (2 minutes)
- Campaigns → Select campaign
- Edit campaign → Website clicks
- Destination URL → Add parameters:
?utm_source=twitter&utm_medium=paid-social&utm_campaign=CAMPAIGN-NAME
- Save
Time: 1 minute per campaign
Email Platform Fixes
Mailchimp (1 minute)
- Campaign → Settings → Tracking
- Google Analytics link tracking: ON
- Customize parameters:
- Campaign name:
newsletter-{"{"}{"{"}MONTH{"}"}{"}"}}-{"{"}{"{"}YEAR{"}"}{"}"}}
- Campaign name:
- Save
Mailchimp auto-generates campaign names
HubSpot (1 minute)
- Email editor → Settings → Tracking
- Add tracking parameters:
- utm_source:
hubspot - utm_medium:
email - utm_campaign:
your-campaign-name
- utm_source:
- Save
Klaviyo (1 minute)
- Campaign → Settings → Tracking
- Google Analytics:
- Source:
klaviyo - Medium:
email - Campaign:
campaign-name
- Source:
- Save
Verification (1 minute)
Test your fix:
- Click your updated ad/email
- Check URL in browser:
Should see: ?utm_campaign=SOMETHING
- Open GA4 → Reports → Real-time
- Click on your session
- Verify: Campaign name shows (not "(not set)")
If campaign name appears → Fix successful ✓
✅ 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
Join 2,847 marketers fixing their tracking daily
Quick Campaign Naming Guide
If you need to name campaigns right now:
Format
`{"{"}{"{"}type{"}"}{"}"}}`_`{"{"}{"{"}initiative{"}"}{"}"}}`_`{"{"}{"{"}date{"}"}{"}"}}`
Examples
Paid ads:
ppc_product-launch_2024-11
retarget_cart-abandon_q4-2024
brand_awareness_nov-2024
Email:
email_weekly-newsletter_2024-w45
email_promo_black-friday
email_onboarding_automated
Social:
social_blog-promo_article-title
social_event_webinar-nov-12
social_product-launch_new-feature
Rules:
- ✅ Lowercase
- ✅ Hyphens (not spaces)
- ✅ Include date
- ✅ Descriptive but concise
Bulk Fix: Update All Campaigns at Once
Google Ads Editor (Bulk Fix)
- Download Google Ads Editor (free)
- Get Latest (downloads your account)
- Campaigns → All campaigns
- Tracking templates → Add or update:
`{"{"}{"{"}lpurl{"}"}{"}"}}`?utm_source=google&utm_medium=cpc&utm_campaign={{_campaign}}
- For each campaign, set custom parameter
_campaign - Post changes
Time: 10 minutes for entire account
Facebook Ads Bulk Export/Import
- Ads Manager → Tools → Bulk exports
- Export: Ads
- Edit CSV → Add utm_campaign to URLs
- Import edited CSV
- Publish
Time: 15 minutes for hundreds of ads
What Happens After You Fix
Immediate (Within hours)
New traffic arrives with campaign names:
Before:
| Campaign | Sessions |
| (not set) | 450 |
After:
| Campaign | Sessions |
| product-launch-q4 | 240 |
| retargeting-nov | 130 |
| brand-awareness | 80 |
Within 24-48 Hours
GA4 reports populate with campaign-level data:
- Campaign performance comparison
- ROI per campaign
- Conversion paths by campaign
- Attribution models work properly
Within 1 Week
You can make data-driven decisions:
- Scale profitable campaigns
- Pause unprofitable campaigns
- Reallocate budget effectively
- Test new campaign strategies
Prevention Checklist
Before launching ANY new campaign:
- Campaign name defined?
- UTM structure includes utm_campaign?
- Tested ad click (verified URL)?
- GA4 real-time check passed?
- Documented in tracking sheet?
FAQ
Will this fix historical data?
No. Historical "(not set)" campaigns cannot be changed. This fixes new traffic going forward.
Best practice: Add GA4 annotation marking when you fixed tracking.
Do I need campaign names for organic traffic?
No. Organic search, direct traffic, and referrals don't need campaign names. Only fix:
- Paid ads
- Email campaigns
- Social media posts with links
- Partner/affiliate links
What if I have hundreds of campaigns?
Priority order:
- Fix highest-spend campaigns first
- Use bulk editing tools (Ads Editor, CSV import)
- Set up auto-tagging where available
- Apply correct structure to new campaigns going forward
Can I change campaign names mid-campaign?
You can, but be careful:
- GA4 will track as two separate campaigns (before/after change)
- Better: Keep name consistent, use utm_content for variants
Exception: If campaign name is generic/unclear, better to change it now.
What if different team members use different campaign naming?
Create a campaign naming doc RIGHT NOW:
- Define structure
- Share with team
- Require approval for new campaign names
- Use pre-built UTM templates
Related: Campaign Naming Conventions Guide