RevenueCat Attribution: What It Tracks and When You Need an MMP
Learn what RevenueCat knows about subscriptions, where campaign attribution comes from, and when an app needs an MMP beside RevenueCat.

RevenueCat can tell you who started a trial, paid, renewed, or received a refund. It cannot decide which ad caused an install unless attribution data comes from somewhere else.
RevenueCat says this directly in its documentation: it is not an attribution network. It can store campaign fields and send subscription events to attribution providers, but another system has to establish the acquisition source.
That distinction explains most confusion around "RevenueCat attribution."
The short answer
RevenueCat is the source of truth for subscription purchases, entitlements, and lifecycle events. An MMP attributes an install and later events to a marketing source.
Many subscription apps need both systems once paid acquisition affects budget decisions.
| Question | Best source |
|---|---|
| Did this customer start a trial or buy? | RevenueCat |
| Is the subscription active? | RevenueCat |
| Which campaign or keyword caused the install? | An MMP, Apple AdServices, or attribution data your app collects |
| How much did the campaign spend? | The ad platform or a connected reporting API |
| What is campaign ROAS after renewals and refunds? | A reporting layer that joins attribution, spend, and RevenueCat events |
You can build that reporting layer yourself. You can also use a focused MMP such as Postback to connect the parts.
What RevenueCat tracks well
RevenueCat is built around in-app purchases and subscriptions. It handles store transactions and keeps the customer's entitlement state current across platforms.
For growth analysis, the useful events include:
- Trial starts.
- Initial purchases.
- Trial conversions.
- Renewals.
- Cancellations and expirations.
- Billing issues.
- Refund-related lifecycle changes.
- Revenue attached to transactions.
These events continue after the install session. Renewals can arrive months later, when the user is no longer opening the app regularly.
That makes RevenueCat much better than a client-only analytics event for subscription truth. A purchase event fired by the app can be missed or duplicated. RevenueCat works from the transaction and subscription lifecycle.
Where campaign attribution comes from
RevenueCat can display attribution fields such as network, campaign, ad group, keyword, and creative. Those fields still need an upstream source.
RevenueCat supports two broad paths:
- Your app or an attribution SDK sends campaign data into RevenueCat as customer attributes.
- A RevenueCat attribution integration exchanges data with a provider or collects supported Apple Search Ads attribution data.
RevenueCat stores reserved attribution attributes including media source, campaign, ad group, ad, keyword, and Apple Ads IDs. Its documentation warns that these values are not populated automatically in the general case.
Think of those fields as labels attached to a subscriber. RevenueCat can use the labels to segment revenue and pass lifecycle events onward. The system that created the label is still responsible for deciding which source gets credit.
RevenueCat and an MMP solve different jobs
Suppose a user taps an Apple Search Ads result, installs the app, starts a seven-day trial, converts, and renews two months later.
The full chain needs several pieces:
| Data | Example | Owner |
|---|---|---|
| Acquisition context | Campaign, ad group, keyword, country | Apple AdServices or an MMP |
| Spend context | Cost, taps, impressions | Apple Ads reporting |
| Install identity | The installed app instance linked to a source | An MMP or your own attribution backend |
| Subscription events | Trial, purchase, renewal, cancellation | RevenueCat |
| Joined reporting | Revenue and ROAS by campaign or keyword | An MMP, warehouse, or internal reporting system |
RevenueCat alone knows the subscription. The ad platform alone knows the spend. Attribution provides the join between them.
When RevenueCat alone is enough
You may not need an MMP yet when:
- Most acquisition is organic.
- Paid spend is too small to support keyword or campaign decisions.
- You only need product revenue, entitlement, and cohort reporting.
- Campaign reporting inside the ad platform is sufficient for the current stage.
- Your team already sends clean acquisition fields into RevenueCat and analyzes them elsewhere.
Adding an MMP creates setup and another system to maintain. If nobody will change a bid, creative, country, or channel from the result, the extra attribution may not earn its place yet.
When an MMP becomes useful
The need usually appears when the same install has to answer a budget question.
An MMP is useful when you need to know:
- Which campaigns create trials that later convert.
- Which Apple Search Ads keywords produce renewal revenue.
- Whether TikTok, Google, or another source brings better subscribers.
- Which countries have cheap installs but poor paid conversion.
- Which downstream events should be sent back to an ad platform.
- How provider claims should be compared under one attribution model.
Install volume does not set a universal threshold. The decision matters when attribution uncertainty is large enough to change where you spend.
A practical RevenueCat and Postback setup
Postback joins the acquisition record to RevenueCat's server-side events.
The setup has two identity steps:
- The Postback SDK creates an
postbackIdfor the installed app instance and captures supported attribution data. - Your app saves that
postbackIdas a RevenueCat subscriber attribute.
Then RevenueCat sends subscription webhooks to Postback. The shared identifier lets Postback attach a trial, purchase, renewal, or lifecycle event to the install that produced it.
The current RevenueCat integration guide includes SDK examples, the authenticated webhook URL, and the event mapping.
One detail is easy to miss: RevenueCat sandbox deliveries can verify that the webhook connection works, but Postback does not turn sandbox events into attributed production events or outbound ad conversions. Use a controlled production test when you verify the full reporting path.
What the joined report should answer
A useful subscription-attribution report should go beyond install count.
For each source, campaign, keyword, or country, look for:
| Metric | Decision it supports |
|---|---|
| Spend | How much budget was exposed to the test |
| Attributed installs | How many first opens were connected to the source |
| Trial starts | Whether the source found users with initial intent |
| Paid subscriptions | Whether trials became customers |
| Renewal revenue | Whether customer quality held after the first period |
| Refunds and cancellations | Whether early revenue overstated quality |
| ROAS | Whether attributed revenue paid back the spend |
Read immature cohorts carefully. A campaign launched three days ago cannot have thirty-day renewal performance, no matter how polished the dashboard looks.
The free-trial ROAS workflow shows how to compare those cohorts at the same age.
Common setup failures
The subscriber identifier is missing
RevenueCat can deliver a valid webhook while the attribution system still cannot match it to an install. Confirm that postbackId is set after the Postback SDK is configured.
Campaign attributes were filled with placeholders
RevenueCat documents its attribution fields as write-once values. Do not set "unknown" or a temporary campaign name before the final attribution value exists.
Historical revenue is expected to backfill perfectly
Past transactions cannot be attached to an install source that was never captured. Treat the date when identity and attribution went live as the clean start of the dataset.
Sandbox success is mistaken for production attribution
A sandbox webhook proves the endpoint and authentication work. It does not prove that a paid production install will match and create an outbound conversion.
RevenueCat and the ad dashboard are expected to match exactly
The systems may use different attribution windows, event dates, currencies, or source rules. Reconcile definitions before treating a discrepancy as a bug.
RevenueCat attribution for Apple Search Ads
RevenueCat can collect Apple Search Ads attribution data and associate campaign, ad group, and keyword fields with subscribers. This can be enough for RevenueCat-side segmentation when Apple Ads is the only channel and the reporting questions are simple.
A separate MMP becomes more useful when you want one view that also includes Apple spend, Postback-attributed installs, post-install events, revenue, and keyword ROAS. The Apple Search Ads and RevenueCat guide covers that narrower keyword workflow.
If you are still deciding whether Apple Ads alone justifies another attribution layer, read Do you need an MMP for Apple Search Ads?.
How to decide
Ask one question:
Which paid-acquisition decision cannot I make from RevenueCat and the ad platform today?
If the answer is "none," keep the stack simple.
If you cannot connect spend to paid subscribers, compare channels under one model, or send mature subscription events back for optimization, the missing layer is attribution rather than subscription management.
Connect RevenueCat to Postback to attach trials, purchases, renewals, and lifecycle events to the install and campaign that produced them. You can also review Postback pricing before adding another tool to the stack.
Sources
- RevenueCat customer attributes - Reserved attribution fields and RevenueCat's explanation that it does not populate attribution automatically
- RevenueCat attribution providers - How RevenueCat exchanges subscription events and attribution data with providers
- RevenueCat customer profile - Attribution fields displayed for a customer and their upstream origin
- Postback RevenueCat integration - Current webhook, identity, and event-mapping setup
FAQ
No. RevenueCat manages purchases, subscriptions, entitlements, and lifecycle events. It can store attribution fields and exchange events with attribution providers, but it does not generally decide which ad or campaign caused an install.
Yes, when valid campaign attribution data is attached to the customer. RevenueCat can segment subscription data with those fields and send lifecycle events to supported providers. Another system must supply or establish the attribution context.
An MMP can accept purchase events from your app or backend, so RevenueCat is not mandatory. Subscription apps often use both because RevenueCat handles store transactions and lifecycle events while the MMP handles acquisition attribution.
Postback captures the install source, joins it to RevenueCat webhooks through the postbackId, combines attributed revenue with ad reporting, and shows campaign or keyword outcomes such as trials, subscriptions, revenue, and ROAS.
Only when the historical purchase can be matched to a previously captured acquisition identity. If the install source or shared identifier was never stored, a later integration cannot reconstruct it reliably.
You might also like
See all posts →
How to Track App Campaign ROAS After a Free Trial
Measure app campaign ROAS when revenue arrives after a free trial, with mature cohorts, subscription events, refunds, and renewals.

Do You Need an MMP for Apple Search Ads?
Learn what Apple Search Ads attribution gives you, what a DIY setup requires, and when an MMP is worth adding for subscription ROAS.

TikTok App Attribution for Subscription Apps
Connect a TikTok click to an app install, trial, subscription, and revenue using a store-first campaign and server-side event feedback.