Google App Campaigns Tracking: Complete Setup Guide (2025)
Complete guide to tracking Google App campaigns with wbraid (iOS) and gclid (Android). Step-by-step Firebase setup, conversion tracking, and troubleshooting.
Setting up Google App campaigns correctly ensures accurate install attribution and in-app conversion tracking. Here's the complete guide to tracking iOS and Android app campaigns without creating duplicate data.
Table of contents
- What are Google App Campaigns?
- Campaign Types
- How App Campaign Tracking Differs from Web
- How Google App campaigns track iOS users
- Technical Flow: iOS App Campaign Tracking
- How Google App campaigns track Android users
- Android Tracking Flow
- Android vs iOS Tracking Differences
- Tracking setup checklist
- 1. Enable auto-tagging in Google Ads
- 2. Remove manual UTM parameters
- 3. Connect Firebase to GA4
- 4. Configure app conversion tracking
- 5. Verify tracking
- Common Issues & Troubleshooting
- Issue 1: App Installs Not Showing in Google Ads
- Issue 2: In-App Conversions Not Attributed
- Issue 3: Attribution Window Too Short
- Issue 4: Cross-Platform Attribution Missing
- Issue 5: iOS Conversion Data Delayed
- Best Practices for Google App Campaigns
- 1. Never Use Manual UTM Parameters
- 2. Track Value Events, Not Just Installs
- 3. Set Realistic Attribution Windows
- 4. Use Target ROAS Bidding
- 5. Segment by Platform
- FAQ
- Do I need separate tracking for iOS and Android?
- Can I track app campaigns without Firebase?
- How long does wbraid track conversions after install?
- Does wbraid work if user doesn't grant ATT permission?
- Can I see which specific ad creative drove installs?
- Should I track "firstopen" or custom install events?
- How do I track re-engagement campaigns?
- Can I use Google App campaigns for web apps (PWAs)?
- What's the minimum budget for app campaigns?
- How do I track lifetime value (LTV) in app campaigns?
- Related Resources
- Internal Guides
- Google Official Documentation
- Firebase Resources
- Conclusion
🚨 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
What are Google App Campaigns?
Google App campaigns are Google Ads campaign types designed specifically to promote mobile apps across Google's entire network:
- Google Search: App install ads in search results
- Google Play Store: App listings and search ads (Android)
- YouTube: Video ads promoting app installs
- Display Network: Banner and interstitial ads
- Discovery: Ads in Gmail, Discover feed, YouTube home
Campaign Types
App Install Campaigns:
- Goal: Drive new app downloads
- Tracked metric: App installs
- Bidding: Cost per install (CPI)
App Engagement Campaigns:
- Goal: Re-engage existing users
- Tracked metric: In-app actions (purchases, subscriptions, level completions)
- Bidding: Cost per action (CPA)
How App Campaign Tracking Differs from Web
| Feature | Web Campaigns | App Campaigns |
|---|---|---|
| Tracking Parameter | gclid, gbraid | wbraid (iOS), gclid (Android) |
| Attribution System | GA4 cookies | Firebase SDK + device ID |
| Privacy Restrictions | Cookie blocking | ATT framework (iOS 14+) |
| Conversion Tracking | GA4 events | Firebase events |
| Platform | Browsers | App Store / Play Store |
How Google App campaigns track iOS users
Google automatically appends the wbraid parameter to iOS app campaign traffic. This parameter tracks:
- App install attribution: Which campaign/ad drove the install
- In-app conversion events: Purchases, signups, subscriptions, custom events
- Campaign and ad group performance: CPI, conversion rate, ROAS by campaign
- Cross-device attribution: User sees ad on desktop → installs on mobile (when signed into Google)
wbraid respects Apple's App Tracking Transparency (ATT) framework, making it compatible with iOS 14+ privacy restrictions.
Technical Flow: iOS App Campaign Tracking
Step 1: User Sees Ad
User searches "meditation apps" on Google
↓
Google App campaign triggers
↓
Ad shows in search results with App Store link
Step 2: User Clicks Ad
User clicks ad
↓
Google appends wbraid to App Store URL
↓
User redirected to: apps.apple.com/app/id123?wbraid=abc123xyz
Step 3: User Installs App
User clicks "Get" in App Store
↓
App installs on iPhone
↓
App opens for first time
Step 4: Firebase Tracks Install
Firebase SDK initializes
↓
Reads wbraid from iOS system
↓
Sends install event to Google Ads with wbraid
↓
Google Ads attributes install to campaign
Step 5: In-App Conversions
User completes purchase in app
↓
Firebase logs "purchase" event
↓
Event sent to Google Ads with original wbraid
↓
Purchase attributed to original campaign
How Google App campaigns track Android users
Android app campaigns use standard gclid parameter (same as web campaigns). Android has fewer privacy restrictions than iOS, allowing more detailed tracking.
Android Tracking Flow
Step 1: User Clicks Ad
User clicks app install ad
↓
Google appends gclid to Play Store URL
↓
Redirected to: play.google.com/store/apps/details?id=com.app&gclid=abc123
Step 2: Install Attribution
User installs app from Play Store
↓
Google Play Install Referrer API passes gclid to app
↓
Firebase SDK reads gclid
↓
Install attributed to Google Ads campaign
Step 3: In-App Events
Firebase logs conversion events
↓
Events linked to gclid
↓
Full attribution in Google Ads
Android vs iOS Tracking Differences
| Feature | iOS (wbraid) | Android (gclid) |
|---|---|---|
| Privacy Framework | ATT + SKAdNetwork | Google Play Services |
| Attribution Window | 30 days post-click | 90 days post-click |
| User-Level Data | Aggregated (privacy-limited) | Full (if permissions granted) |
| Conversion Delay | 24-48h (aggregated) | Real-time |
| Cross-Device | Limited | Full (Google account) |
😰 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
Tracking setup checklist
1. Enable auto-tagging in Google Ads
- Open Google Ads
- Click Settings → Account Settings
- Find Auto-tagging section
- Enable: "Tag the URL that people click through from my ad"
- Click Save
Auto-tagging automatically applies:
wbraidfor iOS app campaignsgclidfor Android app campaigns- No manual configuration needed
2. Remove manual UTM parameters
Delete any manual utm_source, utm_medium, or utm_campaign parameters from your app campaign URLs. Google's auto-tagging provides complete attribution automatically.
Before (redundant UTMs):
https://apps.apple.com/app/id123?utm_source=google&utm_medium=app&utm_campaign=launch
After (clean, auto-tagged):
https://apps.apple.com/app/id123
Google automatically appends ?wbraid=... when user clicks ad.
3. Connect Firebase to GA4
Firebase is required for app campaign tracking. It provides the SDK that reads wbraid/gclid and sends conversion events to Google Ads.
Setup steps:
iOS (Swift/Objective-C):
- Add Firebase to your Xcode project
- Install Firebase SDK via CocoaPods:
Ruby
pod 'Firebase/Analytics' pod 'Firebase/Core' - Initialize Firebase in AppDelegate:
Swift
import Firebase func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() return true }
Android (Java/Kotlin):
- Add Firebase to your Android Studio project
- Add dependencies in build.gradle:
Gradle
implementation 'com.google.firebase:firebase-analytics:21.3.0' implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' - Initialize Firebase in MainActivity:
Kotlin
import com.google.firebase.analytics.FirebaseAnalytics private lateinit var firebaseAnalytics: FirebaseAnalytics override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) firebaseAnalytics = FirebaseAnalytics.getInstance(this) }
Link Firebase to GA4:
- Firebase Console → Project Settings → Integrations
- Click Google Analytics → Link
- Select existing GA4 property or create new one
- Save
4. Configure app conversion tracking
Set up conversion events in Firebase that send to Google Ads.
Common conversion events:
E-commerce app:
// iOS example: Purchase event
Analytics.logEvent(AnalyticsEventPurchase, parameters: [
AnalyticsParameterCurrency: "USD",
AnalyticsParameterValue: 49.99,
AnalyticsParameterTransactionID: "ORDER-12345"
])// Android example: Purchase event
val bundle = Bundle().apply {
putString(FirebaseAnalytics.Param.CURRENCY, "USD")
putDouble(FirebaseAnalytics.Param.VALUE, 49.99)
putString(FirebaseAnalytics.Param.TRANSACTION_ID, "ORDER-12345")
}
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.PURCHASE, bundle)Subscription app:
// iOS: Subscription event
Analytics.logEvent("subscription_start", parameters: [
"plan": "premium_monthly",
"value": 9.99
])Gaming app:
// Android: Level completion
val bundle = Bundle().apply {
putString("level_name", "level_10")
putInt("score", 5000)
}
firebaseAnalytics.logEvent("level_complete", bundle)Link Firebase events to Google Ads:
- Google Ads → Tools & Settings → Conversions
- Click + New conversion action
- Select App
- Choose Firebase event (e.g., "purchase", "subscription_start")
- Set conversion value and attribution window
- Save
5. Verify tracking
Test iOS app campaign:
- Create test app campaign in Google Ads
- Set low daily budget ($5)
- Click ad from iPhone
- Verify
?wbraid=...appears in App Store URL - Install app
- Complete test conversion (e.g., purchase)
- Check Firebase DebugView to see events
- Wait 24-48h for conversion to appear in Google Ads
Test Android app campaign:
- Create test campaign
- Click ad from Android device
- Verify
?gclid=...in Play Store URL - Install app
- Trigger conversion event
- Check Firebase DebugView
- Verify conversion in Google Ads (typically within hours)
Common Issues & Troubleshooting
Issue 1: App Installs Not Showing in Google Ads
Problem: Users install app from Google Ads, but installs don't appear in Google Ads reporting.
Possible causes:
- Firebase not installed in app
- Firebase not linked to Google Ads account
- Conversion action not set up in Google Ads
Fix:
- Verify Firebase SDK initialized:
Swift
// iOS: Add debug logging FirebaseConfiguration.shared.setLoggerLevel(.debug) - Check Firebase Console → Project Settings → Integrations → Google Ads (should show "Linked")
- Create "first_open" conversion action in Google Ads
- Wait 24-48h for iOS installs (aggregated reporting)
Issue 2: In-App Conversions Not Attributed
Problem: App installs tracked, but in-app purchases/events show zero in Google Ads.
Cause: Firebase events not configured or not linked to conversion actions.
Fix:
- Verify Firebase events logging correctly:
- Firebase Console → Analytics → Events
- Should see events appearing in real-time
- Link events to Google Ads conversion actions:
- Google Ads → Conversions → + New conversion action → App
- Select Firebase event
- Test event in app, verify appears in Firebase DebugView
- Wait for conversion to appear in Google Ads
Issue 3: Attribution Window Too Short
Problem: Conversions happening days after install not attributed to original campaign.
Cause: Default attribution windows may be too short.
Fix:
- Google Ads → Conversions → Select conversion action
- Click Edit settings
- Increase attribution window:
- Post-install conversion window: 30 days (recommended)
- Post-view conversion window: 1 day
- Save changes
Issue 4: Cross-Platform Attribution Missing
Problem: User sees ad on desktop, installs app on mobile later—install not attributed.
Cause: Cross-device attribution requires user to be signed into Google.
Reality: This is expected behavior. Cross-device attribution only works for signed-in users.
Workaround: Focus on same-device attribution, which represents majority of installs.
Issue 5: iOS Conversion Data Delayed
Problem: iOS conversions take 24-48 hours to appear in Google Ads, while Android appears immediately.
Cause: iOS uses aggregated reporting for privacy (SKAdNetwork).
Reality: This is expected. iOS 14+ privacy restrictions require batched reporting.
Action: Accept 24-48h delay as normal. Plan campaign optimization around this delay.
Best Practices for Google App Campaigns
1. Never Use Manual UTM Parameters
Auto-tagging handles everything. Manual UTMs are ignored and create URL clutter.
2. Track Value Events, Not Just Installs
Set up revenue-generating events:
- Purchases
- Subscriptions
- In-app purchases
- Ad revenue (for ad-supported apps)
This enables ROAS optimization in Google Ads.
3. Set Realistic Attribution Windows
Recommended windows:
- E-commerce apps: 30 days post-install
- Gaming apps: 7-14 days post-install
- Subscription apps: 30 days post-install
- Dating apps: 7 days post-install
4. Use Target ROAS Bidding
Once you have 50+ conversions in 30 days, switch from Target CPA to Target ROAS for better profitability.
5. Segment by Platform
Create separate campaigns for iOS and Android to:
- Optimize budgets by platform
- Account for iOS attribution delays
- Track platform-specific conversion rates
FAQ
Do I need separate tracking for iOS and Android?
No. Google Ads automatically applies the correct parameter (wbraid for iOS, gclid for Android). Use the same Firebase project for both platforms.
Can I track app campaigns without Firebase?
No. Firebase is required for Google App campaigns. It provides the SDK that reads attribution parameters and sends conversion data to Google Ads.
How long does wbraid track conversions after install?
Default: 30 days post-install. You can adjust this in Google Ads conversion settings (maximum 90 days).
Does wbraid work if user doesn't grant ATT permission?
Yes. wbraid uses SKAdNetwork for aggregated attribution, which works without ATT permission. Individual user tracking requires ATT, but campaign-level attribution doesn't.
Can I see which specific ad creative drove installs?
Yes, but with limitations:
- Android: Full ad-level data (headline, description, image)
- iOS: Ad group level only (privacy restrictions)
Should I track "first_open" or custom install events?
Track both:
- first_open: Default Firebase event, tracks app opens
- Custom install: Create custom event to track completed onboarding (more valuable)
Example:
// Track when user completes onboarding
Analytics.logEvent("onboarding_complete", parameters: [:])How do I track re-engagement campaigns?
Use "App Engagement" campaign type in Google Ads. Target existing users who have app installed. Track in-app events like "session_start" or "purchase".
Can I use Google App campaigns for web apps (PWAs)?
No. Google App campaigns are for native iOS and Android apps only. Web apps use standard web campaigns with gclid/gbraid.
What's the minimum budget for app campaigns?
Google recommends:
- Minimum daily budget: $50/day per campaign
- Learning period: 7-14 days with 10+ conversions/day
Lower budgets may not exit learning phase.
How do I track lifetime value (LTV) in app campaigns?
Firebase automatically calculates LTV based on in-app purchase events. View in:
- Firebase Console → Analytics → LTV
- Google Ads → Campaigns → View by LTV cohort
Related Resources
Internal Guides
- Fix wbraid UTM Conflicts - Remove redundant UTM parameters
- iOS 14 Privacy & Tracking - How ATT affects app tracking
- Complete UTM Tracking Guide - UTM fundamentals
- Platform Click ID Conflicts - Auto-tagging best practices
Google Official Documentation
- Google Ads App Campaigns Guide - Official campaign setup
- Firebase for iOS - iOS SDK setup
- Firebase for Android - Android SDK setup
- Track app conversions with wbraid - wbraid documentation
Firebase Resources
- Firebase Analytics Events - Complete event reference
- DebugView - Real-time event debugging
- Firebase Console - Analytics dashboard
Conclusion
Google App campaigns provide powerful app install and engagement tracking through automatic wbraid (iOS) and gclid (Android) parameters.
Unlike manual UTM tracking, Google's auto-tagging provides:
- ✅ Zero configuration (automatic parameter appending)
- ✅ iOS ATT compliance via SKAdNetwork
- ✅ Full attribution from install → in-app events → revenue
- ✅ Cross-device tracking for signed-in users
- ✅ Seamless Firebase integration
- ✅ Campaign optimization based on in-app ROAS
Setup checklist:
- ✅ Enable auto-tagging in Google Ads
- ✅ Remove manual UTM parameters
- ✅ Install Firebase SDK in iOS and Android apps
- ✅ Link Firebase to Google Ads
- ✅ Configure conversion events (purchase, subscription, custom)
- ✅ Test tracking with small budget campaign
- ✅ Monitor Firebase DebugView and Google Ads conversions
Result: Complete app attribution without manual tracking code or UTM parameters.
Related Documentation:
✅ 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