GTM Sauce

Sub Club by RevenueCat · 2023-10-18

App Optimization Through Experimentation — Hannah Parvaz, Aperture

Aperture founder Hannah Parvaz on scaling paid acquisition for subscription apps: start with install campaigns on at least ~$6K, move down-funnel once ~120 installs/day per campaign feed SKAdNetwork postbacks, test creatives as one control vs single-change variants, and judge on MMP and blended numbers. Also covers ATT prompt on first launch, hard activation (6 stories; 10 free stories, 2x trial-to-paid), per-user churn windows, cheap awareness boosts alongside direct response, and November costs vs 'Q5'.

Play the episode

16 tactics

Aperture client apps

Least impact of all placements tested on sign-ups, trials, paying and activation

A/B tested where to place the iOS App Tracking Transparency prompt, expecting that showing it early would hurt sign-up or trial starts. Tested several placements (control vs multiple variants in Firebase/Mixpanel-style in-house tests). Showing it immediately on first launch had the least impact on everything, including conversion to paying and hard activation rate. Now rolled out across Aperture's apps.

Workedexperimentationanalytics-attribution
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

For a new app, first run app install campaigns only (minimum ~$6K budget: ~$5 CPI x 50 conversions/week, about 7/day, enough for a few test variants plus one prospecting campaign) so the algorithm and team learn which messages and creatives work. Once a portfolio of working creatives exists, duplicate the campaign and optimize copies for registration, trial, and a custom event (e.g. trial plus content views) to see which performs. Post-install optimization on iOS needs ~120 installs/day per campaign, because each Meta campaign maps to ~10 SKAdNetwork campaign IDs that each need installs for postbacks. Raise budgets gradually and check the new level is sustainable.

Unknownpaid-socialanalytics-attribution
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

Every creative test is one control plus variants that differ in one element. Message test: same design, four different messages vs control. Take the winning message and put it into four design concepts (SMS conversation, iMessage conversation, fake iOS Notes, UGC style, etc.) to see if it holds up. Iterate on the best format with message variations. Repeat continuously; move winners into always-on campaigns and touch those as little as possible.

Unknownpaid-socialexperimentation
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

Meta shows only ~60% of the results the MMP sees for some clients

Use an MMP (AppsFlyer, Adjust or Singular) as the source of truth for scaling decisions, because post-ATT Meta reporting under-counts. Also educate clients on SKAdNetwork and IDFA rules so they know when a platform's trial count is unreliable due to low install volume.

Unknownanalytics-attribution
Sub Club by RevenueCat · 2023-10-18

For completely free products (no need to monetize), run paid campaigns only on Android. Android has no SKAdNetwork-style minimum installs per day; you still need 50 conversions/week on Meta or 10/day on Google to optimize, but not 120+ installs/day. Also suggested as a place to learn when budget is low.

Unknownpaid-socialmarket-selection
Sub Club by RevenueCat · 2023-10-18

An audio story app · B2C · Hannah's past product

Users who hit 6 stories first converted 2x better from trial to paid

Defined a first meaningful action and a core action (listening to a story), then found the number of core actions after which users are 'hard activated': six stories on average. Gave every user 10 free stories (not 6, since the average is not the truth) while still offering the trial in onboarding. Then studied the step-by-step funnel: most listened to one story, so the focus became getting people to the second (autoplay, tooltips, rewards, light gamification).

Workedproduct-activationpaywall
Sub Club by RevenueCat · 2023-10-18

An audio story app · B2C · Hannah's past product

Moving the trial later cut trial starts too much; kept it in onboarding

Experimented with moving the trial offer later than the initial onboarding. Kept it in onboarding (not forced, closable) because far more people start trials there even if many cancel, then gave users further chances to start a trial later once they were warmer.

Workedpaywallonboarding
Sub Club by RevenueCat · 2023-10-18

A free drink at bars app · B2C · Hannah's past product

In a bar app where users got a free drink per visit, the average gap between visits was 21 days, but each user has their own cycle (e.g. 18 vs 35 days). A user is treated as starting to churn once they pass their own average interval, not the global one. Used to grow and track the hard-activated pool.

Unknownanalytics-attributionretention
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

Found one client where only 70% of installs ever opened the app

First check whether results are weak on a blended basis. Then walk every step against internal benchmarks: CPM, click-through rate, click-to-install (if weak, fix ads: saturation, new directions), true App Store installs vs first app opens, registration, trial start, trial-to-paid. If ads look fine, move into product. Consider retargeting installed-but-not-opened users. Sometimes pause ads until the problem is fixed.

Unknownanalytics-attributionproduct-activation
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

Add up spend across all paid channels (Meta, TikTok, Google...), then divide by total installs, trials and purchases from every channel including organic. Track these blended costs over time to capture the untracked halo effect of ads (word of mouth, later searches).

Unknownanalytics-attribution
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

Never launch five channels at once. Launch one, get baselines, reach good results, then introduce the next. Run incrementality tests on each channel at both the direct response and awareness level.

Unknownpaid-socialexperimentation
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

Awareness CPMs $1-2 vs $7-12 for direct response; overall costs come down

Spend a small amount on engagement campaigns boosting organic Instagram, Facebook and TikTok posts ($1-2 CPM) to reach the same kind of people who also see direct response ads ($7-12 CPM), so they see the brand several times. Evaluate awareness and direct response spend together and watch overall blended costs.

Workedpaid-socialorganic-social
Sub Club by RevenueCat · 2023-10-18

A subscription app · B2C · Aperture client

Google still 2x+ profitable while Meta costs rose; aim for balanced spend

When Meta costs rose dramatically over summer 2023, the client routed money to Google, which remained more than 2x profitable, expecting to shift some back later. Long-term goal is an equilibrium with large shares on several channels rather than 95% in one.

Workedpaid-searchpaid-social
Sub Club by RevenueCat · 2023-10-18

Practitioner pattern · Hannah Parvaz (Founder of Aperture, a growth agency selling the paid acquisition, experimentation and product growth work discussed)

Same pattern for 12 years: November costs terrible, drop from December 1

For digital subscription apps: November 1-30 performance is poor because e-commerce bids up ads, so put more budget into brand awareness and boosted posts that month. Costs drop on December 1; from about December 15 (last shipping dates) to the end of January ('Q5') is a strong window. Use New Year messaging, run a sale (in-app via RevenueCat or on the web) and push gifting.

Workedpaid-socialpricing
Sub Club by RevenueCat · 2023-10-18

An app buying search ads · example from Ariel

Got much better prices after noon; no numbers

Competitors on the same expensive keywords set daily spend caps (around $10,000/day) that ran out by about noon. The app stopped spending in the morning and ramped up spend after noon.

Workedapple-search-ads
Sub Club by RevenueCat · 2023-10-18

Duolingo showed the ATT prompt after the user had completed a few lessons, so tracking focuses on users who stick past the first sessions (the audience worth modelling).

Unknownanalytics-attributiononboarding
Sub Club by RevenueCat · 2023-10-18

Numbers mentioned

WhoMetricValueContextWhen
Apertureteam size6 people4:00
benchmarkAperture's minimum starting paid budget for a new app, optimizing for installs onlyad spendUSD 6,000/month
approximate
Derived from ~50 conversions/week at ~$5 CPI; covers a few test variants plus one prospecting campaign. Period per host's framing.11:06
benchmarkConversions an ad set needs in its first 7 days to optimize (Meta learning phase)count50 conversionsper ad set /weekAbout 7 per day11:06
benchmarkCost per install when starting paid acquisition for a new appcpiUSD 5
approximate
Also quoted as £511:31
benchmarkiOS installs per day one campaign needs to optimize for post-install events and get SKAdNetwork postbacksdownloads120 installsper campaign /day
approximate
A very minimum; each Meta campaign maps to ~10 SKAdNetwork campaign IDs, each needing enough installs13:30
benchmarkConversions needed to optimize on Google (Android), vs 50/week on Metacount10 conversions/day
approximate
16:25
aggregateSome of Aperture's client apps: conversions visible in Meta vs in the MMPshare60%
approximate
Meta-reported results as a share of MMP-measured results14:47
Product where only 70% of installs opened the appconversion rate70%
approximate
true install (App Store) -> first app open19:35
Content app where six stories meant hard activationcount6 storiesper userAverage number of stories listened to that marks hard activation21:42
Content app where six stories meant hard activationcount10 storiesper userFree stories given to every user so more reach the 6-story activation point21:42
Content app where six stories meant hard activationconversion rate+2 x
approximate
trial -> paid for users who completed six stories before starting a trial, vs those who had not22:08
Content app where six stories meant hard activationretention98%
approximate
Share of users who listened to six stories who went on to listen to a seventh (and similar step to step after)26:48
Bar app giving a free drink per visitcount21 daysAverage days between a user's bar visits27:17
benchmarkCPM for direct response ads for Aperture's app clientscpmUSD 7–12
approximate
32:19
benchmarkCPM for awareness/engagement boosts of organic posts reaching similar peoplecpmUSD 1–2
approximate
32:19
Aperture client shifting spend from Meta to Googleroas2 x
approximate
Google Ads, summer 2023, while Meta costs rose33:14
App whose Apple Search Ads rivals ran out of budget by noonad spendUSD 10K/day
illustrative
Daily Apple Search Ads spend cap competitors exhausted by noon ('or whatever it was')37:36
personHannah Parvaz: number of companies worked withcount250 companies
approximate
37:07