Short answer: GA4 (with the Firebase SDK) is a strong free analytics tool and is enough if your paid installs come almost entirely from Google Ads. Once you buy installs on Meta, TikTok, Apple Search Ads or affiliates, need SKAN reporting across networks, deferred deep links outside Google App campaigns, or fraud rules, you need a mobile measurement partner (MMP). Most teams run both: the MMP decides which campaign earned the install, and GA4 keeps measuring what users do next. Linkrunner integrates with GA4 and sends each install's media source and campaign ID into it.
Can you skip an MMP and run your app on GA4 alone? Plenty of teams do for their first year, and it works while the only paid channel is Google. The trouble starts in the month you add a second network: Meta reports one install count, Google another, GA4 a third, and nobody can say which is right.
This post sets out what GA4 and Firebase actually do for app attribution in 2026, where they stop, and how to decide whether you need an MMP alongside them.
What does GA4 actually do for app attribution?
GA4 for apps is Google's event-based analytics product, fed by the Google Analytics for Firebase SDK, which logs each install as a first_open event and credits it to a source using Google's own attribution settings.
Mobile measurement partner (MMP): a neutral third party that receives install and event claims from every ad network, decides which campaign earns each install, and sends conversions back to the networks.
GA4's app attribution, per Google's 2025 and 2026 help pages, covers:
- Google Ads: auto-tagged clicks report source, medium and campaign. Google notes that auto-tagging is not supported for iOS app installs.
- Google Play: on Android the SDK reads the Play Install Referrer, so tagged Play links report their UTMs. Untagged Play installs show as "google-play" or "(direct)".
- Apple Search Ads: credited when you add Apple's AdServices framework to the app.
- Everything else: UTMs on universal links and app links, or a manual
campaign_detailsevent sent shortly after install. - Models and windows: data-driven or rules-based attribution, with a 30-day default lookback for
first_open(7 days optional) and 90 days for other key events.
It is good at the part after the install: funnels, audiences, predictive metrics and a joined web and app view. Google's own App campaign guide describes GA4 as a "complementary measurement solution" when you also run an attribution partner.
Where does GA4 stop?
GA4 stops at the point where several ad networks claim the same install: it is built around Google's channels, so it does not referee Meta, TikTok or affiliate claims, send them conversions, or flag fraudulent installs.
- Other networks. Google's current GA4 App campaign feature list is about Google Ads: bidding, audiences, key event import. It does not describe sending conversions to Meta or TikTok, and installs from those networks reach GA4 only if a UTM survives the store.
- SKAN attribution. GA4 can use SKAdNetwork postbacks for
first_openmodelling, but Google says you must receive Apple's postback copies yourself and forward them through the Measurement Protocol. There is no cross-network SKAN dashboard with conversion values decoded per network. - Deferred deep linking. GA4F supports deferred deep links for Google App campaigns on Android (Firebase Analytics 17.2.0 or later). Google's page does not cover iOS, and it says third-party smart links are not supported. Firebase Dynamic Links, the old general-purpose option, shut down on 25 August 2025.
- Fraud. Google's GA4 App campaign documentation does not list install fraud rules such as click injection or SDK spoofing detection.
- Postbacks with revenue. Feeding purchase and revenue events back to each network, so Meta and TikTok optimise for paying users, is an MMP job.
- Data retention. On standard GA4 properties, user-level and event-level data in explorations is kept for 2 or 14 months. Standard aggregated reports are not affected.
GA4 vs an MMP: side by side
| Linkrunner (MMP) | GA4 with Firebase | |
|---|---|---|
| Main job | Decide which campaign earned each install and event, across networks | Product and marketing analytics, strongest for Google channels |
| Paid networks | Meta, Google, TikTok, Apple Search Ads, Snapchat, LinkedIn, Reddit, Jio Ads, Sandbox Ads, ChatGPT Ads | Google Ads and Apple Search Ads directly; others through UTMs or campaign_details |
| SKAN | SKAN 4.0 wizard and AdAttributionKit | Ingests postback copies you forward via Measurement Protocol |
| Deferred deep links | Every link dynamic and deferred by default, iOS and Android | Google App campaigns on Android; Firebase Dynamic Links shut down Aug 2025 |
| Postbacks to networks | Revenue-aware postbacks to Meta, Google and TikTok | Key event import into Google Ads |
| Fraud | 8 Fraud Control rule templates; tag only, or tag and withhold postbacks | Not listed in GA4's App campaign features |
| In-app behaviour | Events, cohorts, retention, LTV | Deep funnels, explorations, predictive audiences |
| Price | 25k one-time free attributed installs, then ₹1.20 to ₹0.80 per install | Free (standard); GA4 360 is paid |
Why do GA4 and your MMP show different install numbers?
GA4 and an MMP disagree mostly because they count with different rules, not because one of them is broken.
- Lookback windows. GA4 defaults to 30 days for
first_open. An MMP set to a 7-day click window will credit fewer installs to paid and more to organic. - Models. GA4 can use data-driven credit; MMPs default to last touch across networks.
- Visibility. GA4 does not see Meta's or TikTok's own claims, so it often shows those installs as direct or organic.
This matches what we see in Linkrunner support threads this year. When a customer's numbers differ between Linkrunner and an ad network, the cause is usually a definition gap (a 7-day versus 30-day window, cohort versus in-period counting, view-through) before it is a setup fault. In one Google comparison, aligning both sides on a 30-day window shrank the gap to around 2 per cent. Agree the window first, then debug.
When is GA4 alone enough?
GA4 on its own is a reasonable stack when most of these are true:
- Paid spend is Google Ads only, or there is no paid spend yet.
- The app is Android-heavy and does not depend on iOS campaign data.
- You do not need deep links that survive install outside Google App campaigns.
- No one has to reconcile network dashboards for finance.
Linkrunner's own guidance says it is not the right fit for apps with fewer than 100k lifetime installs and no UA plan. For spend and scale thresholds, see our guide Do you need an MMP?.
When does Firebase stop being enough?
Add an MMP when any of these appear:
- A second paid network. The moment Meta or TikTok joins Google, you need one referee for duplicate claims.
- iOS campaigns at scale. You need SKAN and AdAttributionKit postbacks handled per network, not forwarded by hand.
- Links that must survive install. Influencer, referral, QR and web-to-app links need deferred deep linking on both platforms.
- Network optimisation on revenue. Meta and TikTok bid better when they receive purchase events, not only installs.
- Affiliate or incentivised traffic. You need fraud rules before paying partners.
If cost is the worry, what an MMP costs breaks down pricing models, and free MMP plans compared lists what you get before paying anything.
How does Linkrunner work alongside GA4?
Linkrunner does not replace GA4. It sends attribution data into it, so GA4 reports can be cut by the campaign that actually earned the install.
- The GA4 integration: on each new install, Linkrunner sends the touchpoint details (media source and campaign ID) to GA4. Your app passes the Firebase app instance ID and GA4 session ID to Linkrunner, and you add a Firebase App ID and Measurement Protocol API secret for each platform. Setup is in the GA4 integration docs. Google can take 24 to 48 hours to show the data in GA4 reports.
- Attribution across networks: Meta, Google, TikTok, Apple Search Ads, Snapchat, LinkedIn, Reddit, Jio Ads, Sandbox Ads and ChatGPT Ads, with deterministic-first matching and IP and user-agent matching only as a fallback.
- iOS: SKAN 4.0 wizard and AdAttributionKit support.
- Deep links: every link is dynamic and deferred by default, on custom branded domains.
- Fraud Control: 8 rule templates, with responses of tag only, or tag and withhold postbacks.
- Mobile and web: web attribution through the Web SDK, currently in beta.
- Pricing: 25k attributed installs free, one time, with every feature. After that, the INR card runs from ₹1.20 per install below 50k a month to ₹0.80 above 500k, postpaid, with unlimited seats.
Most teams integrate the attribution SDK the same day and are fully live within a week. GA4 keeps running exactly as before.
Frequently asked questions
Can I use Firebase instead of an MMP?
Yes, if Google Ads is your only paid channel and you do not need cross-network SKAN or deferred deep links on iOS. Once you buy installs from Meta, TikTok or affiliates, Firebase cannot referee their claims, so an MMP becomes the source of truth for attribution.
Does an MMP replace GA4?
No. An MMP decides which campaign earned each install and sends conversions to ad networks. GA4 stays your behaviour analytics tool, and Linkrunner's GA4 integration sends each install's media source and campaign ID into it.
Does GA4 support SKAdNetwork?
Partly. The Firebase SDK supports setting SKAN conversion values, and GA4 can use postbacks for first_open modelling, but you must collect Apple's postback copies yourself and forward them through the Measurement Protocol.
Does Firebase still do deferred deep linking?
Firebase Dynamic Links shut down on 25 August 2025. GA4F still supports deferred deep links for Google App campaigns on Android, but not third-party smart links. Our Firebase Dynamic Links replacement guide covers the migration.
Why does GA4 show more organic installs than my MMP?
GA4 does not receive Meta's or TikTok's install claims, so installs from those networks often land as direct or organic unless a UTM survived the store. Different lookback windows widen the gap further.
The practical answer
Keep GA4. Add an MMP when a second paid network, iOS campaigns or links that must survive install arrive, and connect the two so GA4 reports carry the MMP's campaign data. If you want to see how that looks on your own data, request a demo from Linkrunner, then run the "when Firebase stops being enough" checklist above against your current stack.
