What This Rule Detects
Detects when Google Ads iOS enhanced conversion tracking (wbraid parameter) appears alongside manual UTM parameters on the same URL. While this doesn't cause data loss or duplicate sessions, the manual UTMs are redundant because Google's wbraid takes precedence and GA4 ignores the manual parameters.
🔍 Want to scan for this issue automatically?
UTMGuard checks for this and 39 other validation rules in 60 seconds.
Try Free AuditWhy It Matters
Maintenance Burden:
- Unnecessary complexity - Maintaining manual UTMs that GA4 ignores for iOS traffic
- Wasted effort - Time spent adding parameters that serve no purpose
- URL bloat - Longer URLs with no functional benefit
- Confusion for teams - Unclear which tracking method is actually working
Technical Reality:
- GA4 has native support for Google Ads iOS conversion tracking (wbraid, gbraid)
- When wbraid is present, GA4 uses it exclusively for attribution
- Manual UTM parameters are completely ignored - they don't affect tracking
- This is by design - Google's wbraid provides privacy-compliant iOS attribution
What is wbraid?
- wbraid = Web-to-App Redirect + Identifier
- Used by Google Ads for iOS traffic to enable enhanced conversion tracking
- Works alongside Apple's privacy features (App Tracking Transparency)
- Provides attribution for clicks from iOS devices (iPhone, iPad)
- Automatically added by Google Ads to iOS clicks
Impact Level:
- ✅ No data loss - All iOS tracking works correctly via wbraid
- ✅ No duplicate sessions - GA4 only creates one session per iOS click
- ✅ No attribution errors - iOS Google Ads campaigns tracked accurately
- ⚠️ Optional cleanup - Removing UTMs simplifies implementation but isn't critical
Common Scenarios
Scenario 1: iOS Google Ads with Manual UTMs
Google automatically adds wbraid for iOS clicks, but your template includes UTMs:
Scenario 2: App Install Campaigns
iOS app install campaigns with redundant tracking:
Scenario 3: Mobile-Optimized Landing Pages
iOS-specific landing pages with mixed tracking:
😰 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
How to Fix
Option A: Use Auto-Tagging Only (Recommended)
Step 1: Enable Auto-Tagging in Google Ads
- Sign in to Google Ads
- Click Settings → Account settings
- Scroll to "Auto-tagging"
- Check "Tag the URL that people click through from my ad"
- Save
- Note: wbraid is automatically added for iOS traffic when auto-tagging is enabled
Step 2: Remove ALL Manual UTM Parameters
- Go to your Google Ads campaigns
- Remove utm_source, utm_medium, utm_campaign from:
- Final URL field
- URL options
- Tracking template (if using UTMs there)
- Mobile-specific URL settings
- Let wbraid (iOS) and gclid (other platforms) handle ALL tracking automatically
Step 3: Verify in GA4
- GA4 → Reports → Acquisition → Traffic acquisition
- Filter by device: iOS devices
- Look for "google / cpc" channel from iOS traffic
- Session counts should drop 20-40% (this is correct - more accurate iOS data!)
- Cost-per-session will increase (reflects true iOS cost)
Benefits:
- ✅ Automatic - works seamlessly for iOS and Android
- ✅ Accurate session counts across all devices
- ✅ iOS privacy-compliant enhanced conversion tracking
- ✅ No platform-specific configuration needed
Option B: Use Manual UTMs Only (Not Recommended)
Step 1: Disable Auto-Tagging
- Google Ads → Settings → Account settings
- Uncheck "Tag the URL that people click through from my ad"
- Save
- Warning: You will lose enhanced iOS conversion tracking features
Step 2: Add Manual UTMs to Every Ad
?utm_source=google&utm_medium=cpc&utm_campaign=`{campaignname}`&utm_content=`{adgroupname}`
Why We Don't Recommend This:
- Requires manual work for every ad
- Lose iOS enhanced conversion tracking capabilities
- Cannot leverage Apple's SKAdNetwork integration
- Miss out on privacy-preserving iOS attribution features
- Prone to human error
Verification Steps
Test Auto-Tagging on iOS:
- Click one of your Google Ads from an iOS device (iPhone/iPad)
- Check the URL in browser - should contain
wbraid=but NO utm_ parameters - Open GA4 Real-Time reports
- Filter by iOS platform
- Verify session appears as "google / cpc"
- If correct, you've fixed the issue!
Test Auto-Tagging on Android:
- Same ad clicked from Android device should use
gclid=instead of wbraid - Both platforms work with same auto-tagging configuration
Examples
❌ Incorrect Examples
https://example.com?wbraid=stu901&utm_source=google&utm_medium=cpc
Result: GA4 creates 2 sessions - one from wbraid, one from UTMs
Impact: 40% iOS session inflation, fragmented iOS data
https://app.com/download?wbraid=xyz789&utm_campaign=ios-app-install
Result: Partial conflict - still creates duplicate attribution for iOS traffic
Impact: iOS campaign data split across two records
✅ Correct Examples
https://example.com?wbraid=stu901
Result: Single session, accurate iOS tracking via wbraid auto-tagging
Tracking: SUCCESS (attributed correctly to Google Ads iOS traffic)
https://app.com/download?utm_source=google&utm_medium=cpc&utm_campaign=ios-app-install
Result: Single session via manual UTMs (if auto-tagging disabled)
Tracking: SUCCESS (but loses iOS enhanced conversion features)
GA4 Impact Analysis
Channel Grouping:
- Duplicate iOS sessions appear in "Paid Search" channel
- Same iOS campaign shows in two separate rows
- Makes iOS vs Android performance comparison unreliable
Session Attribution:
- First-click attribution: Duplicated for iOS traffic
- Last-click attribution: Duplicated
- Multi-touch attribution: Counts same iOS click twice in path
Revenue Tracking:
- E-commerce conversions: iOS attribution split across two sessions
- Campaign ROI: iOS performance falsely appears better (inflated session counts)
- Budget optimization: iOS budget allocation based on incorrect metrics
Cost Analysis:
- Reported iOS cost-per-session: Artificially low (30-40% lower than reality)
- Actual iOS cost-per-acquisition: Hidden by inflated session numbers
- iOS vs Android budget allocation: Misguided by false iOS performance data
Detection in UTMGuard
UTMGuard automatically detects this issue by analyzing your GA4 session data:
- Scans all page URLs in your Google Ads traffic
- Detects URLs containing both wbraid AND utm_ parameters
- Identifies iOS-specific tracking conflicts
- Counts affected iOS sessions
- Calculates actual vs inflated iOS metrics
- Reports exact URLs to fix
Audit Report Shows:
- Total iOS sessions with conflict
- Estimated iOS session inflation percentage
- Revenue misattribution amount from iOS campaigns
- Priority ranking by iOS traffic volume
Related Validation Rules
Related Validation Rules
Frequently Asked Questions
Q: What's the difference between wbraid and gclid?
A: gclid is used for most Google Ads traffic, while wbraid is specifically for iOS devices (iPhone, iPad). Google automatically chooses which parameter to use based on the user's device. Both serve the same purpose: enabling enhanced conversion tracking.
Q: What's the difference between wbraid and gbraid?
A: Both are iOS-specific Google Ads parameters. wbraid is for web-to-app traffic, while gbraid is for general iOS web traffic. Google automatically selects the appropriate parameter based on the campaign type and iOS version.
Q: Will fixing this affect my historical iOS data?
A: No. Historical data will remain inflated. The fix only applies to future iOS traffic, making it accurate going forward. Consider adding a GA4 annotation marking when you fixed the iOS tracking issue.
Q: Can I use utm_content or utm_term with wbraid?
A: No. If auto-tagging is ON, remove ALL manual UTM parameters. Google's wbraid captures all campaign details for iOS traffic automatically, including ad group and keyword data.
Q: How does this work with Apple's ATT (App Tracking Transparency)?
A: wbraid is designed to work within Apple's privacy framework. It enables conversion tracking while respecting user privacy choices made through ATT prompts. Manual UTMs don't have these privacy-preserving features.
Q: I have 2,000 iOS sessions reported - what are my real sessions?
A: Typically 20-40% lower. If you have this conflict, expect your real iOS session count to be 1,200-1,600 sessions. Run a UTMGuard audit to get exact numbers for your iOS campaigns.
Q: Does this affect Android traffic too?
A: No, wbraid is iOS-specific. Android and desktop traffic use gclid instead. However, if you have utm parameters, you'll have the same conflict issue with gclid on those platforms.
✅ 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
External Resources
- Google Analytics 4: About Auto-Tagging
- Google Ads: iOS 14+ Campaign Setup
- Apple SKAdNetwork Documentation
- GA4 Traffic Acquisition Reports
wbraid_utm_conflict