Revenue
Record purchases from the App Store, Google Play and your own payments, validate them, and attribute them to the links that brought the buyer.
Each purchase is tied to the device that made it and the link that brought that device in. Revenue then shows next to installs and opens on your links, campaigns and visitors.
Count a purchase as a conversion and compare revenue per person between groups.
Target people who bought, or did not buy, a product in a time window.
Turn on revenue tracking
Go to Analytics → Revenue.
Click Enable Revenue Tracking. Only an instance admin can turn it on or off. The setting covers production and test environments.
Follow the revenue guide for your SDK below. Grovs records purchases only while revenue tracking is on.
Set up your platform
| Platform | Store purchases | Guide |
|---|---|---|
| iOS | App Store, with App Store Server Notifications | iOS revenue |
| Android | Google Play, with Real-Time Developer Notifications | Android revenue |
| Flutter | App Store and Google Play | Flutter revenue |
| React Native | App Store and Google Play | React Native revenue |
| Web | None. Every web payment is a custom purchase | Web revenue |
How purchases reach Grovs
| Kind | What your app sends | What Grovs does |
|---|---|---|
| Store purchase | The store's transaction ID | Looks it up with Apple or Google and fills in product, price, currency and dates. Store notifications then keep renewals, cancellations and refunds current. |
| Custom purchase (Stripe, your own checkout) | Type, amount, currency and product ID | Trusts the values as sent. Types: buy, cancel, refund, refund_reversed. |
Store notifications need no extra app code, which is why each platform guide asks you to connect them.
For both kinds:
- A transaction ID already recorded is not counted twice. On the web, pass your own order ID so a retried checkout counts once.
- Amounts are converted to US dollars for reports and segment totals.
- A refund lowers revenue. A reversed refund restores it.
How purchases are attributed
- Device and person. A purchase belongs to the device that logged it, and to the person if your app set a user identifier.
- Link. An SDK purchase is credited to the last Grovs link that visitor clicked.
- Renewals. A store renewal keeps the device and link of the original purchase.
Attributed revenue appears in the Revenue column of Dynamic Links, Campaigns, Visitors and Referrals. See Reports and metrics.
The Revenue page
Analytics → Revenue shows total revenue, revenue per user, units sold, cancellations, and first-time versus repeat purchases. Filter it by date range, platform and product.
You can add the Revenue, Revenue KPIs and Revenue trend panels to your own dashboards.
Where else purchases show up
- Segments: the purchase condition matches people by product, type, store, count and total spend.
- Experiments and journeys: a purchase can be the goal, and every experiment report shows revenue. See Purchase and revenue goals.
- Event stream: purchases arrive as
purchaseevents, including corrections. See Event stream.
Self-hosted
Revenue tracking is part of the Enterprise edition. On self-hosted Community, the purchase endpoints do not exist and SDK purchase calls report a failure.