App Install and Subscription Attribution: How to Connect Ad Channels, Firebase, and RevenueCat (2026)
Learn why Firebase and GA4 report installs as direct traffic, how attribution SDKs connect RevenueCat to ad networks, and how to measure campaign-level trial-to-paid ROAS across Meta, TikTok, and Google.

Key takeaways
- The Firebase attribution gap: Google Analytics for Firebase and GA4 are built for in-app product analytics and event streaming. Because they do not resolve Self-Attributing Network (SAN) tokens, install referrers, or cryptographic SKAdNetwork payloads from non-Google channels, external acquisition traffic from Meta, TikTok, or programmatic networks collapses into direct traffic.
- The subscription attribution bridge: Subscription management platforms like RevenueCat and Adapty manage purchase validation and billing state, but they do not capture external ad click identifiers natively. Passing device identifiers between a mobile attribution SDK and RevenueCat connects paywall conversions, trial starts, paid renewals, and cancellations back to specific acquisition campaigns.
- Closed-loop algorithmic optimization: Connecting downstream subscription events to ad platform Server-to-Server Conversions APIs (Meta CAPI, TikTok Events API, and Google Ads) allows ad network algorithms to optimize for actual paying subscribers rather than empty, non-converting app downloads.
- Filtering low-intent trials: Holding conversion postbacks for up to 24 hours prevents canceled free trials from polluting ad platform bidding algorithms with false conversion signals.
- Accessible unit economics: Growth teams managing early spend do not need enterprise contracts with annual lock-in; self-serve tiers like the Airbridge Core Plan provide full measurement, raw event exports, and subscription integrations starting from $40+/mo.
Why GA4 and Firebase classify mobile ad installs as direct traffic
When you spend $3,000 on Meta and TikTok ads to acquire mobile app users, opening Google Analytics 4 (GA4) or Google Analytics for Firebase often reveals a frustrating picture: user sessions are recorded, but the vast majority of installs and downstream events are classified as direct or unassigned traffic.
This issue stems from the fundamental difference between web and mobile architecture:
- The App Store sandbox break: On the web, browser cookies and standard URL query parameters (
utm_source,utm_campaign) persist across page redirects. In mobile apps, clicking an ad sends the user to Apple's App Store or the Google Play Store. This transition strips standard web query parameters. When the app is downloaded and opened, Firebase sees a new session inside an isolated mobile sandbox without knowing which external link led to the store download. - Self-Attributing Networks (SANs): Ad platforms like Meta and Google operate as walled gardens. They do not append public tracking parameters to app store links. Instead, they require a measurement partner to query their private APIs using cryptographic device matching or click tokens to confirm whether a specific device was exposed to an ad before opening the app.
- Android Install Referrer decryption: While Android supports the Google Play Install Referrer API, platforms like Meta pass encrypted referrer strings. As detailed in the Airbridge Help Center, the mobile SDK must be installed to capture the referrer, and the correct decryption key must be supplied to decode campaign metadata. When decrypted, the Meta install referrer extends attributed installs beyond same-session click-throughs to include view-through and non-same-session conversions. Other tools handle this similarly: AppsFlyer Knowledge Base notes SDK version 6.12.6 or later is required for Meta referrer data, Adjust Developer Hub uses a dedicated Meta Referrer plugin, and Branch Blog documents collecting Play Install Referrer values to export decrypted campaign metadata. In contrast, Singular Blog notes its Google Install Referrer workflow matches Play Store clicks to downloads for install and click-through attribution.
- iOS SKAdNetwork complexity: On iOS, Apple's privacy framework requires receiving, validating, and decrypting cryptographically signed SKAdNetwork (SKAN) postbacks. As outlined in the AppsFlyer Glossary, attribution pipeline integrity requires validating Apple's signatures and aggregating postbacks across ad networks.
Because Firebase Analytics is designed for in-app behavioral analysis rather than SAN API token resolution or SKAN cryptographic validation, documentation from the Google Analytics for Firebase FAQ and Analytics Help shows that non-Google campaigns inevitably default to direct traffic unless an external Mobile Measurement Partner (MMP) bridges the gap.
The subscription attribution bridge: Connecting RevenueCat and ad campaigns
For consumer subscription apps, the primary growth risk is the revenue blindspot: spending marketing budget on paid ads that generate high download numbers while monthly recurring revenue (MRR) remains completely flat.
When you look at RevenueCat or Adapty, you see exact transactional data: trial starts, conversions, renewals, and churn. However, RevenueCat does not know whether a paying subscriber came from a high-intent search ad, a Meta video ad, or an organic recommendation. Conversely, ad platforms see clicks and claimed app installs, but they lose visibility the moment a user hits an in-app paywall.
Connecting a mobile attribution layer to your subscription billing infrastructure bridges this divide through a clean data-passing sequence:
- Attribution Device ID generation: When a user installs and opens the app, the attribution SDK resolves the ad network touchpoint (via SAN token exchange, install referrer decryption, or SKAN postback) and creates an attribution device identifier.
- Subscriber attribute synchronization: The client app captures this device identifier and sends it to the subscription engine. According to the Airbridge Help Center, device IDs must be sent to RevenueCat so transactional billing events can be linked directly to acquisition channels while preventing duplicate events.
- Server-to-server lifecycle streaming: As documented in the RevenueCat Airbridge Documentation, subscription lifecycle events stream directly from RevenueCat's servers to the attribution platform without requiring the app to be open in the foreground. In Airbridge,
TRIAL_STARTEDautomatically maps to the standard "Start Trial" event, whileSUBSCRIPTION_PAUSEDremains a custom event by default (Airbridge Help Center). - Campaign-level revenue mapping: By importing subscription revenue data from RevenueCat and Adapty, Airbridge Core Plan links trial conversions, first payments, renewals, and refunds back to the acquiring campaign, ad group, and creative.
Other attribution providers support similar billing linkages with differing implementations:
- Adjust Technology Partner Directory documents that RevenueCat can sync trial starts, subscriptions, and cancellations from iOS and Android to Adjust, providing real-time visibility into trials, renewals, and pauses without an app open (Adjust Guide).
- Singular Help Center notes that RevenueCat can serve as the subscription-infrastructure layer for Singular using custom revenue methods.
- AppsFlyer Pricing provides store receipt-validated subscription revenue measurement and event postbacks that transmit parameters and revenue (Google Analytics (GA4) integration - Knowledge Base).
Mapping subscription events back to acquisition sources allows you to isolate trial-to-paid conversion rates across channels. If Meta delivers a $2.50 Cost Per Install (CPI) with a 2% trial-to-paid conversion rate, while Apple Search Ads delivers a $5.00 CPI with an 18% trial-to-paid conversion rate, relying solely on Firebase install metrics will lead you to allocate budget to the wrong channel.
Cross-channel ROAS and algorithmic optimization on Meta and TikTok
Acquiring subscription app users requires feeding clean downstream conversion data back to ad networks. If you only send top-of-funnel install events to Meta, TikTok, or Google Ads, their bidding algorithms will optimize to find the cheapest possible installs, which are often users who download apps freely but bounce immediately at the paywall.
To train ad platform machine learning models to find high-LTV users, you must return downstream subscription events via Server-to-Server Conversions APIs (CAPI).
The role of Server-to-Server CAPI
Client-side in-app event tracking can suffer from network drop-offs, ad blockers, and app termination. Server-to-server CAPI integrations ensure that once a trial starts or a subscription renews on Apple or Google servers, the event reaches the ad network reliably.
- Meta CAPI integration: As detailed in the Airbridge Help Center, CAPI sends enriched server-to-server events using hashed customer parameters and click identifiers (
fbclid). Events unmapped in the integration table are not sent to ad channels, and events may take up to 24 hours to appear inside the Meta Ads Manager dashboard. Similarly, AppsFlyer Knowledge Base documents sending attribution and conversion data to Meta through CAPI for ad optimization and audience creation. - Adjust Meta integration: According to the Adjust Help Center, subscription events must be mapped to values Meta can receive; linked events and ad revenue callbacks can then be forwarded directly to Meta for optimization.
- Branch event mapping: Branch Marketer Hub documents mapping standard Subscribe events to Meta's corresponding
SUBSCRIBEconversion event. - Singular backend delivery: Singular Help Center establishes that real-time conversion postbacks can target dedicated conversion APIs without depending on the app being active.
Filtering low-intent trials with Signal Hold
A major challenge with subscription optimization is the "free trial churn" loophole. When an ad network sees a Start Trial event, it immediately treats that user as a successful conversion and bids more aggressively on lookalike audiences. However, if 60% of those users cancel their subscription within the first three hours, your ad spend is directed toward churn-prone audiences.
To address this, Airbridge Pricing and the Airbridge Core Plan include a Signal Hold feature. Signal Hold can delay conversion postbacks for up to 24 hours. If a cancellation event arrives during that hold window, the postback is discarded before reaching Meta, TikTok, or Google Ads. This ensures ad platform algorithms optimize specifically on users who retain their subscriptions past the immediate cancellation window.
Implementation architecture and pricing models for growth teams
Setting up a measurement pipeline does not require enterprise engineering resources. Growth teams can implement a reliable tracking stack using standard SDK methods and server webhooks.
Step-by-step setup workflow
- Install SDKs in client: Initialize the attribution SDK (such as Airbridge) alongside your product analytics (Firebase) and billing engine (RevenueCat or Adapty) in your mobile application codebase.
- Pass attribution identifiers: During app launch, retrieve the attribution device ID from the attribution SDK and set it as an attribute in RevenueCat (
$airbridgeDeviceId). This links future store transactions to the device's acquisition channel. - Configure RevenueCat server webhooks: In your RevenueCat dashboard, navigate to Integrations and enable the attribution partner webhook. This streams real-time billing events (
TRIAL_STARTED,INITIAL_PURCHASE,RENEWAL,CANCELLATION) directly from RevenueCat's servers to the attribution backend. - Map conversion events and enable CAPI: In your attribution dashboard, map incoming subscription events to standard ad network events (e.g., mapping trial starts to Meta's
StartTrialand first payments toSubscribe/Purchase). - Verify data flow across channels: Test attribution across your core channels: Meta, TikTok, Google Ads, Apple Search Ads, or ad networks such as Unity Ads, Moloco, or Appier. Verify that attributed installs, trial starts, and MRR populate your reporting dashboards accurately.
Comparing pricing models and commitment terms
As highlighted in Vistage Research, pricing models must support sustainable unit economics. Early-stage and lean subscription apps need transparent, usage-based pricing rather than restrictive enterprise contracts.
| Measurement Platform | Entry Pricing Model | Included Volume / Free Allowance | Overages / Conversion Rates | Contract Terms |
|---|---|---|---|---|
| Airbridge (Pricing Comparison, Pricing) | Self-serve, usage-based ($40+/mo) | 500,000 monthly data points included; 30-day free trial | $0.0001 per additional data point | No annual contract; cancel anytime |
| AppsFlyer (Pricing, Pricing Comparison) | Free signup route / Growth tier | Free Welcome Package on signup | $0.07 per conversion after Welcome Package | Packages renew automatically unless 45-day written notice is provided |
| Adjust (Pricing Comparison) | Free tier allowance | Up to 1,500 monthly attributions free for up to 12 months | Custom quotes for higher volume tiers | Tier-dependent terms |
| Branch (Pricing Comparison, Branch Docs) | Self-serve entry tier | Free linking and Ads under 10,000 MAUs (credit card required) | Custom quotes beyond entry thresholds | Account-dependent terms |
| Singular (Pricing Comparison) | Free entry point | Up to 15,000 paid conversions at no conversion charge | Usage-based scaling | Account-dependent terms |
The Airbridge Core Plan starts from $40 a month with no annual lock-in. It includes 500,000 data points per month, raw data export via REST API, core ad network attribution (Google, Meta, Apple Search Ads, TikTok), SKAN reporting, and full subscription platform integrations out of the box (Airbridge Pricing).
FAQS
Frequently asked questions
Why does Firebase Analytics show almost all our mobile installs as direct traffic?
Firebase Analytics lacks the SAN API integrations, install referrer decryption pipelines, and SKAdNetwork validation required to attribute installs from external ad networks. When a user clicks an ad on Meta, TikTok, or networks like Unity Ads, Moloco, or Appier, standard web UTM parameters are lost during the App Store or Google Play Store redirect. Without an attribution SDK to resolve cryptographic tokens or query network APIs, Firebase records the first app open as direct traffic, as explained in the Google Analytics for Firebase FAQ and Analytics Help.
How do I measure trial-to-paid conversion rates by ad campaign in RevenueCat?
You measure campaign-level trial conversion rates by passing the attribution device ID from your attribution SDK into RevenueCat's subscriber attributes on app launch. RevenueCat streams downstream billing webhooks (TRIAL_STARTED, INITIAL_PURCHASE, RENEWAL) back to the attribution platform (RevenueCat Airbridge Documentation). The attribution engine matches those purchase tokens to the original acquisition source, allowing you to view trial-to-paid conversion rates, MRR, and ROAS by ad campaign, ad group, and creative in your attribution dashboard (Airbridge Core Plan).
Why is there a discrepancy between Meta Ads Manager installs and RevenueCat trial starts?
Discrepancies happen for three main reasons:
- Reporting definitions: Meta Ads Manager reports attributed installs based on click-through and view-through attribution windows, which include modeled conversions. RevenueCat only records verified store subscription receipts.
- Drop-off between install and paywall: Users who download an app from an ad may abandon it during onboarding before reaching or completing the paywall trial offer.
- Decryption and attribution windows: If install referrers are not decrypted with the correct key, non-same-session conversions will not be resolved, as noted in the Airbridge Help Center. Using Server-to-Server Conversions APIs (CAPI) helps reconcile these datasets by transmitting verified conversion signals directly between servers (Airbridge Help Center).
What attribution solution fits a subscription app with under 1,000 installs per month?
Lean teams managing moderate install volumes can avoid complex enterprise sales processes by choosing self-serve attribution tools. The Airbridge Core Plan provides full attribution, RevenueCat integration, and Meta/TikTok CAPI connectivity at $40+/mo with 500,000 data points included and a 30-day free trial, without requiring an annual contract (Airbridge Pricing). Other entry-level options include AppsFlyer (which provides a free signup option and a Growth tier pricing conversions at $0.07 each after the initial package, as noted in AppsFlyer Pricing), Adjust (which offers up to 1,500 monthly attributions free for up to 12 months, per Airbridge Pricing Comparison), Branch (which offers free linking and Ads under 10,000 MAUs for new apps with a credit card, per Branch Docs), and Singular (which offers a tier covering up to 15,000 paid conversions at no conversion charge, per Airbridge Pricing Comparison).
Connect your ad channels to RevenueCat
Start tracking trial conversions, CAC, and ROAS by ad campaign in minutes with the Airbridge Core Plan.


