Rheo
Acquisition channels compared by trial and paid subscription revenue
Product

How to see which acquisition channel drives subscription revenue

From UTM and campaign tags through trial and paid conversion: a practical guide to channel-level subscription revenue without optimizing CPI alone.

Media buyers optimize toward installs because installs are fast to measure. CFOs care about subscription revenue and payback. If your growth review cannot rank channels by trial starts, paid conversion, or revenue per install, you are flying blind on budget allocation.

This post walks through the full chain: UTM and campaign parameters → first open → trial → paid, MMP versus first-party pitfalls, a Rheo Analytics walkthrough, and how to turn readouts into Convert experiments and Engage campaigns.

Define the outcome before the channel

Channels are labels. Outcomes are money. Agree on primary metrics first:

StageExample metricNotes
TopInstall or first openMMP default
MidPaywall reach or activationProduct quality signal
MonetizationTrial startTop of subscription funnel
RevenueFirst paid period, 30-day revenueFinance alignment
RetentionMonth-2 renewal rateChannel LTV

Subscription revenue by channel usually means:

Sum(revenue from users in cohort C where first_touch.media_source = X)
────────────────────────────────────────────────────────────────────
Count(installs or first opens in cohort C for channel X)

Pick one cohort window (weekly install cohorts are common) and stick to it for a quarter before renaming campaigns.

Capture parameters at the edge

Use consistent naming in ad platforms:

  • campaign = stable slug (US_iOS_fitness_q4), not ad hoc copy
  • adset / adgroup = audience or placement bucket
  • creative = asset id

Pass through to the MMP or deep link so the SDK receives structured fields, not a concatenated string nobody parses later.

Apple Search Ads

Keyword and campaign ids should map to profile fields (keyword, campaign). ASA often produces high-intent users with smaller volume: exactly the segment you do not want lost in a rollup called apple.

Organic and owned

Organic is not "no attribution." Use:

  • Custom product page links with utm_source=instagram_bio
  • Influencer codes as campaign values
  • Email and push deep links with consistent UTMs

Otherwise organic becomes a black hole that hides your best channels.

Trial and paid: where reporting breaks

PitfallWhat goes wrongFix
MMP-only ROASRevenue postbacks delayed or sampledReconcile with billing source of truth
Last-click obsessionIn-app re-open attributes to wrong sourceDocument first-touch policy
SKAN / ATT gapsCampaign granularity collapsesModel probabilistic + funnel readouts
Trial without billing linkTrials in product, revenue in RC onlyJoin on stable user id
Web + appStripe web purchase, app install from different adIdentity graph or separate funnels

RevenueCat (or Stripe for web) remains billing truth. AppsFlyer or Adjust remains install truth. Your analytics layer must persist first-touch on the profile when the user later starts a trial without opening an ad again.

See How to use RevenueCat and AppsFlyer to track subscription revenue by campaign for integration architecture.

MMP dashboards vs first-party analytics

MMPs answer: "Did this install come from campaign X?" and, with S2S configured, "Did we observe a purchase event for optimization?"

They are weaker at:

  • Step-level onboarding drop-off by campaign
  • Holding experiment variants alongside channel labels
  • Segments that combine behavior + billing + messaging state

First-party analytics (including Rheo Analytics) answers: "Of users from campaign X, what percent reached the paywall, started trial, and paid: and where did they drop off in the journey?"

NeedMMPFirst-party
CPI and install volumePrimarySecondary
SKAN / network reportingPrimaryN/A
Onboarding funnel by campaignLimitedPrimary
Step experiments + channel breakdownNoPrimary
Finance-grade MRRVia postbacksJoin to RC/Stripe

Use both. Do not fund channels on CPI when first-party data shows zero paywall reach for that creative.

Rheo walkthrough: channel to revenue in one place

Step 1: Connect attribution

Enable your MMP integration in Rheo app settings. Confirm test installs populate fields like acquisition.media_source and acquisition.campaign on the customer profile.

Step 2: Map the subscription funnel

In Analytics, define steps aligned with your Convert onboarding channel:

  1. First open / flow started
  2. Critical onboarding steps (use flow step ids)
  3. Paywall presented
  4. Trial started or purchase completed (from RC/Stripe-connected events)

Break down the funnel by campaign or media_source.

Step 3: Add revenue columns

Attach revenue metrics to the same breakdown:

  • Trial starts per install
  • Paid conversion within 30 days
  • Revenue per install (directional; use finance exports for audits)

Step 4: Save segments

Example segments:

  • campaign = Meta_broad AND paywall_reached = false
  • media_source = ASA AND trial_started = true AND paid_30d = false

Use segments as targeting inputs for Convert experiments (show a shorter path for one campaign) or Engage (nudge trial users from a high-intent keyword).

Step 5: Close the loop

When Analytics shows Influencer_may with high paid % but low volume, marketing scales spend. When Meta_broad has high installs and low paywall reach, product ships a campaign-specific onboarding variant in Convert without waiting on App Store review.

Rheo experiments dashboard showing A/B test variants and step-level funnel analytics

Example decision table

After two weeks of data:

ChannelInstallsTrial %Paid 30d %Action
ASA3.1k19%11%Scale keywords; test paywall copy in Convert
Meta prospecting22k7%2%Cut 30% spend; fix onboarding step 3 drop-off
TikTok test80024%13%Small budget hold; monitor creative fatigue
Organic6k16%12%Invest in ASO; organic is efficient

Without trial and paid columns, Meta prospecting still looks attractive on install volume alone.

Governance habits

HabitWhy
Weekly channel + funnel reviewSame slide structure every week
No campaign renames without alias mapPreserves cohort history
QA installs from test campaignsPrevents polluted segments
Align with finance on revenue definitionGross vs net, refunds, trials

Reporting cadence that sticks

Ad-hoc channel analysis decays when media buyers rotate creatives daily. A lightweight rhythm keeps subscription revenue visible:

  • Daily: MMP spend and install pacing (operational).
  • Weekly: Rheo funnel breakdown by top five campaigns; one action item for product or UA.
  • Monthly: Cohort paid conversion and directional LTV by channel; finance reconciliation against RevenueCat or Stripe exports.

When a channel moves budget, note the date on the experiment doc so Convert variants and Engage enrollments can be interpreted against spend shifts: not in isolation.

Channels drive installs. Only a full funnel tied to billing tells you which channels drive subscription revenue.

Start for free