Back to Portfolio
Case Log 02 / 03
Case Log 02 // Mobile App Acquisition

Zero to
1M Users

120-Day Sprint Meta Ads Google UAC Apple Search Ads Creative Testing Mobile Growth
1M+
Active Users
in 120 Days
Wk 6
ROAS Positive
Achieved
40+
Creative Hooks
Tested
20M+
Lifetime Installs
Portfolio Total
Situation // Context

A mobile app with viral potential — and zero acquisition infrastructure.

The client had a social utility mobile app with strong organic retention signals — DAU/MAU above 0.45 — but no paid acquisition engine. Their previous attempt at Meta Ads had burned $40K over 90 days with a CPI above $6.80 and no clear path to ROAS positive. They brought me in to build the system correctly.

The brief: reach 1M active users in 120 days. Hard constraint: ROAS must be demonstrably positive before scaling past $50K/month. No scaling broken economics.

This was a 3-channel operation from day one — Meta Ads for volume, Google UAC for intent-based installs, Apple Search Ads for App Store discovery. But the most critical variable wasn't budget. It was creative.

Diagnosis // Why the Previous Campaign Failed

The old campaign was scaling before it was ready.

Problem 01
Single Creative, No Testing System

The previous agency ran 3 ad creatives for 90 days. No rotation, no hook testing, no iteration. Ad fatigue set in by week 3. Frequency climbed, CPM spiked, CPI went to $6.80+ and kept rising.

Problem 02
Broad Audience Targeting

Meta campaigns were targeting 18–45, all genders, interest: "social networking." No lookalike architecture, no exclusion of installers who churned within 48 hours. The algorithm was finding the cheapest users, not the most valuable ones.

Problem 03
No Attribution Model

iOS attribution was broken post-ATT. They were using last-click in Meta's dashboard only — no SKAdNetwork calibration, no MMP integration, no server-side events. They had no idea which channel or creative was actually driving retained users.

The core issue was a creative testing deficit. Mobile app growth at scale is a creative operations problem as much as a media buying problem. If you're not testing 8–12 new hooks per week and feeding the algorithm consistent winning signals, your CPI will inflate until the economics collapse.

The second issue was attribution. Without knowing which users were actually retained at day 7 and day 30, there was no basis for campaign optimization. You can't optimize for LTV if you're measuring installs.

I paused all spend on day 2 of the engagement. We spent 10 days on the infrastructure before touching a dollar of the acquisition budget. This is always the right call — and it always surprises clients who want to see "something running."

Architecture // The System Built

Infrastructure first. Scale second.

Phase 01 // Days 1–10
Attribution Infrastructure

Integrated Adjust as MMP. Built server-side event pipeline feeding 7-day retention and D30 LTV signals back to Meta and Google. Configured SKAdNetwork for iOS. Set campaign optimization targets to D7 retention events — not installs. This alone was the biggest unlock.

Phase 02 // Days 10–30
Creative Testing Engine — 40+ Hooks

Built a weekly creative sprint system: 8 new hooks tested per week using a $50/day DCO campaign per hook. Hook formats tested: problem-pain (7 variations), social proof (6), curiosity/transformation (9), UGC testimonial (12), feature demo (8). Kill threshold: CPI >$2.80 or hook rate <25% at 2,000 impressions.

Phase 03 // Days 30–60
Meta Scaling + Google UAC

Three winning creatives (CPI $1.40–$1.80, D7 retention 38%+) were identified by day 28. These were moved to scaling campaigns using Meta's Advantage+ with our retained user lookalike as seed audience. Google UAC launched simultaneously targeting in-app event bids for D7 retained users.

Phase 04 // Days 60–120
Apple Search Ads + Retargeting Loop

Apple Search Ads activated for App Store search intent capture at $0.80–$1.20 CPI. Meta retargeting campaign reactivated users who installed but hadn't completed onboarding within 72 hours (push notifications had been failing — this closed the loop). Reached 1M actives on day 117.

Creative Testing Results
Hook Performance Summary — 40 Tests
Hook Type Tests Winners Best CPI Status
UGC Testimonial123$1.42Scaled
Curiosity/Transform91$1.58Scaled
Problem-Pain71$1.81Scaled
Social Proof60$3.20+Killed
Feature Demo80$4.10+Killed
Adjust MMPMeta Advantage+Google UACApple Search AdsSKAdNetworkServer-Side Events
Output // Verified Results

The numbers at day 120.

1M+
Active Users — Day 117

Hit 1 million active users on day 117 of the 120-day sprint. 3 days ahead of target. 87% of users acquired via the 3 winning creative hooks.

$1.58
Blended CPI (vs $6.80 prev.)

Blended cost per install dropped 77% from the previous campaign's $6.80. The creative testing system was the primary driver — not audience changes.

Wk 6
ROAS Positive Achieved

D30 ROAS turned positive at week 6 — exactly on the projection. Revenue from in-app purchases and subscription conversions exceeded acquisition spend by month 2.

38%
D7 Retention (Winners)

The 3 winning creatives attracted users with D7 retention above 38% — nearly double the industry average of 20%. Audience quality outperformed volume targeting.

Channel Diversification

Meta (58%), Google UAC (27%), Apple Search Ads (15%). No single-channel dependency. Attribution was clean across all three via the MMP integration.

20M+
Portfolio Lifetime Installs

This was one of 6 apps in the portfolio I managed. Total lifetime installs across all apps exceeded 20 million using the same creative testing and attribution architecture.

Signal // Key Learnings

Mobile growth is a creative operations problem.

The single biggest insight from this engagement: 80% of mobile app growth variance is explained by creative quality, not audience targeting or bid strategy. Meta's algorithm is exceptional at finding your users — but only if you give it winning creative signals to optimize toward.

The testing system is what matters. Not any single ad. The ability to produce, test, and iterate 8+ hooks per week — and have the attribution infrastructure to know which ones drive retained users, not just cheap installs — is the actual competitive advantage.

The second lesson: optimize for the user you want, not the install you can afford. Bidding for installs at lowest cost will find the cheapest users. They churn fastest. Bidding for D7 retention events (possible only with MMP + server-side tracking) finds the users worth keeping.

The Architecture Principle
"CPI is a vanity metric. D7 retention cost is the real number."

We ran campaigns where the "expensive" creative ($2.10 CPI) outperformed the "cheap" creative ($1.20 CPI) by 3× on D30 ROAS. Buying on CPI alone destroys LTV. The MMP integration that enables D7 optimization is the most valuable infrastructure investment in mobile growth.

The Creative Framework
Hook Rate → Hold Rate → CPI → D7 → D30

Every creative is evaluated in sequence. If hook rate (3-second view) is below 25%, kill it — the hook doesn't work. If hold rate (15-second) is below 18%, the narrative collapses. Only creatives that survive both filters get a CPI evaluation.

Building a mobile app or scaling one?
This system works.

90-day sprint. Results-based engagement. If ROAS isn't positive and installs aren't scaling, I rebuild the system until they are.

Book a Strategy Call →
No retainers · No guesswork · Results-based