How do you track a mobile app from ad click to company revenue?
A work app's revenue often arrives months after the install, through a company invoice that no ad platform ever sees. This page lays out a measurement stack that connects the ad or store visit to activation, paid plans and company accounts, with the attribution options that still work on iOS and Android.
How should a work app measure marketing from ad to revenue?
Use four connected layers. Store analytics show impressions, page views and installs by source. Attribution links installs to campaigns, within the limits each platform allows. Product analytics record activation, the core action and invites. Billing and the CRM hold paid plans, company accounts and renewals.
The connection is an account ID created at sign-up, stored with the acquisition source, and carried into billing and the CRM. Without it, you can count installs by channel but not revenue by channel.
What does a mobile app analytics stack look like?
Each layer answers different questions, and no single tool covers all of them. Small teams can start with the free store consoles, one product analytics tool and their billing system, then add a mobile measurement partner when paid spend justifies it.

The layers below are listed in the order a user passes through them. The column on the right is the question you should be able to answer from that layer alone; if you cannot, the layer is not set up properly yet.
| Layer | Tools (examples) | What it records | Question it answers |
|---|---|---|---|
| Store analytics | App Store Connect, Play Console | Impressions, page views, conversion rate, installs by source, subscriptions | Is the listing converting visitors? |
| Attribution | AdAttributionKit and SKAdNetwork, Play Install Referrer, ad platform reports, a mobile measurement partner | Campaign or source for each install, within privacy limits | Which channels bring installs? |
| Product analytics | Google Analytics for Firebase, or another event tool | Sign-up, activation, core actions, invites, paywall views | Which installs become active users and teams? |
| Billing and CRM | Store subscription reports, your billing system, CRM | Plans, seats, invoices, renewals, company accounts | Which sources bring revenue and company accounts? |
In Google Analytics, app data streams connect to Firebase and log automatic events such as first_open, plus in_app_purchase for store purchases. Company plans invoiced outside the stores will not appear there, so send a server-side event or import them from billing. The general method is in event tracking plans.
How does app attribution work on iOS and Android now?
Attribution is the step most teams overestimate. On both platforms, user-level matching across apps and websites is limited, so plan for aggregated or partial data.
| Platform | Main options | What you get | Limits |
|---|---|---|---|
| iOS | AdAttributionKit (iOS 17.4+), working alongside SKAdNetwork | Privacy-preserving postbacks that credit ad networks for installs and later conversions | Aggregated, delayed; no user-level path |
| iOS | App Tracking Transparency prompt | Permission to track across other companies' apps and sites, for users who allow it | Many users decline; never rely on it alone |
| Android | Play Install Referrer API | Referrer URL, click timestamp and install timestamp for installs from Google Play | Only what you put in the referrer link |
| Both | Your own sign-up source | How the user says they found you, plus web-to-app links | Self-reported; useful for word of mouth and partners |
AdAttributionKit does not require the tracking permission, which is why it matters for paid campaigns on iOS. On Android, the Install Referrer is the most reliable link between a tagged web or partner link and the install, as long as every link you control carries UTM-style parameters. More on campaign tags for apps is on web or app store first.
Which events should a work app track?
| Event | When it fires | Why it matters |
|---|---|---|
| first_open | First launch (automatic in Firebase) | Install baseline |
| sign_up | Account created; store source and account ID | Joins product data to acquisition |
| core_action_done | First report, work order or checklist completed | Activation |
| output_shared | PDF or link sent to someone else | Spread inside companies |
| invite_sent / invite_accepted | Teammate invited and joined | Team formation |
| paywall_viewed | Upgrade screen shown, with trigger | Upgrade demand |
| in_app_purchase / plan_started | Store or web plan bought | Individual revenue |
| team_created | Shared space created | Team stage |
| company_plan_requested | In-app or web company form | Sales signal |
| company_plan_signed | Sent from CRM or billing | Company revenue by source |
Join on the account, not the device.
Device-level attribution is partial on both platforms. The link you control is the account: capture where each account came from at sign-up, then follow that account through billing and the CRM to company revenue.
What does the stack show in practice?
AuditTrail Safety, a fictional inspection app, ran Apple Ads and LinkedIn campaigns plus a partnership with a safety association. Installs looked similar across the three. Joining sign-up source to the CRM told a different story.
| Source | Installs | Activated | Paying | Company accounts |
|---|---|---|---|---|
| Apple Ads (search) | 2,100 | 640 | 61 | 2 |
| LinkedIn campaigns | 1,800 | 390 | 24 | 1 |
| Safety association partner links | 1,500 | 720 | 58 | 6 |
The partner channel had the fewest installs but the most company accounts, because safety coordinators who came through it brought their whole team. Store analytics or ad dashboards alone would have ranked it last. See communities and partners for how such channels work.
What analytics mistakes are common in mobile apps?
- Judging channels on installs. Install counts say nothing about activation or company revenue.
- No account ID across tools. Without it, product, billing and CRM data cannot be joined.
- Hundreds of untidy events. Track the ten that answer business questions, then add more deliberately.
- Ignoring off-store revenue. Company invoices never reach ad platforms unless you send them.
- Relying on the tracking prompt. Plan attribution that works when most users decline.
- Trade-off: a mobile measurement partner saves engineering time but costs money and adds an SDK; below modest ad budgets, store consoles, referrer data and sign-up source are often enough.
What should the analytics stack report each month?
| Metric | Question it answers | Where to find it |
|---|---|---|
| Product page conversion rate | Is the listing working? | App Store Connect, Play Console |
| Installs and sign-ups by source | Where do new users come from? | Attribution, sign-up source |
| Activation rate by source | Which sources bring real users? | Product analytics |
| Paying users and revenue by source | Which sources pay back? | Billing joined to sign-up source |
| Company accounts by first source | Which channels start company deals? | CRM |
| Cost per paying user and per company | What does growth cost? | Ad spend ÷ billing results |
Bring these numbers into unit economics and the growth calculator.
Frequently asked questions
What is the difference between store analytics and product analytics?
Store analytics cover the listing and installs. Product analytics cover what people do inside the app after installing.
Does AdAttributionKit need the tracking prompt?
No. It provides privacy-preserving attribution without the App Tracking Transparency permission, from iOS 17.4.
What does the Play Install Referrer API return?
The referrer URL, the click timestamp and the install timestamp for installs from Google Play.
Do I need a mobile measurement partner?
Not at first. Store consoles, the Install Referrer, AdAttributionKit postbacks and sign-up source can cover early stages.
How do I attribute company invoices to marketing?
Store the acquisition source on the account at sign-up and carry the account ID into billing and the CRM.
Which events matter most for a work app?
Sign-up, the first core action, output shared, invites, paywall views, plan started and company plan requested.
Can GA4 track app purchases?
Yes. App data streams linked to Firebase log in_app_purchase for store purchases; send off-store revenue separately.
Sources & further reading
Regulator rules, platform policies and local data change. These sources let you check the facts on this page, last checked October 6, 2026.