← Evidence
MOBILE APP / PERFORMANCE MARKETING

VixT: From Vanity Installs
to Paying Users

Measurement infrastructure for a mobile app launch - in-app event taxonomy, server-side event forwarding, and conversion restructuring that shifted optimisation from cheap installs to actual revenue.

The brief

VixT was a video meme creator app entering an overcrowded category. The founding team had a product, a small seed budget, and no measurement infrastructure. Their launch strategy relied on paid user acquisition across Meta and Google App Campaigns - but they had no way to distinguish a user who downloaded the app from one who actually created content, shared a meme, or upgraded to premium. They were about to spend money acquiring users they couldn't measure.

What we found

Install attribution was the only conversion event.

Google and Meta optimised for installs - the only event they received. Cost per install looked reasonable at £0.83. But 60%+ never opened the app again. Actual cost per activated user was £3.40, cost per premium subscriber was £14.20. None of this was visible in ad platform reports.

No post-install event pipeline existed.

Key in-app actions - first meme created, first share, third-day retention, premium trial, premium conversion - weren't flowing back to Meta or Google. The algorithms had no signal beyond the install.

Firebase and Meta SDK were double-counting.

Both platforms claimed credit for the same installs. Total reported installs exceeded store actuals by roughly 22%.

What we built

In-app event taxonomy.

8 post-install events: app_open, first_meme_created, first_share, day3_retention, premium_trial_start, premium_converted, meme_exported_with_watermark, meme_exported_clean. Each with parameters for content type, template, and share destination.

Server-side event forwarding to Meta CAPI.

Key conversion events forwarded server-to-server via Conversions API with hashed user identifiers. Meta received post-install signals enabling optimisation beyond installs.

Google Ads conversion restructuring.

Replaced the single "install" conversion with tiered structure: primary = premium_trial_start, secondary = first_meme_created and first_share. Smart Bidding shifted from cheap installs to engaged users.

Attribution cleanup.

Firebase and Meta SDK deduplication. Self-referral exclusions. Install attribution aligned between platforms and store actuals within 3% variance.

Looker Studio reporting.

Full funnel dashboard: impressions → clicks → installs → activations → retention → trials → conversions. By platform, campaign, creative, geography. Cost metrics at every stage.

Results

Over 90 days post-launch

Cost per install
£0.83 → £1.12
+35% - intentional, higher quality
Cost per activated user
£3.40 → £1.94
−43%
Cost per premium trial
£14.20 → £8.70
−39%
Day-3 retention rate
18% → 29%
+61%
Install-to-premium conversion
2.1% → 3.8%
+81%
Platform attribution variance
22% → <3%
Resolved

The cost per install went up - and that was the point. Google and Meta stopped finding the cheapest possible installs and started finding users who actually used the app. Premium conversion rate nearly doubled because the algorithms had real engagement signals to optimise against.

Tech stack

Firebase · Meta SDK · Meta Conversions API (server-side) · Google Ads App Campaigns · Looker Studio · Cloud Functions

Want similar results for your app?

We'll audit your current measurement setup, identify what signals your ad platforms are missing, and build the infrastructure to fix it.

Request an Audit →