Insights

Cracking the trust barrier for a real-money skill gaming app

57%
cost per purchase improvement from a zero baseline
18% to 33%+
install to purchase rate
~50%
cost per install reduction in the US at peak
100+
creatives tested across 20+ batches

The client is a real-money skill gaming app. Players compete in live one-on-one matches, mostly Blackjack, and cash out their winnings straight away. The client is anonymised here at their request.

It sits in one of the hardest user acquisition environments in mobile. Meta classifies the category as gambling-adjacent, which rules out the most obvious performance creative before you start. No cash-amount hooks. No win-screen close-ups. No odds language.

And the core product promise, that skill decides the outcome rather than chance, is also the creative problem. Convincing a cold audience to trust that and put money in takes precision. Broad hooks don’t land. Win-showcase ads get filtered or ignored. Every creative has to answer one specific objection: I don’t believe you.

I came in to build the paid acquisition system from scratch across Meta and TikTok. No campaign history, no winning creative, no benchmark.

Three problems at once

Platform constraints. The gambling classification ruled out direct cash hooks and win screens. Every creative had to communicate financial reward while staying inside policy. That’s a narrow brief.

Trust, not awareness. The category’s real obstacle is belief. Real-money gaming apps are widely distrusted, often for good reason. Every batch was really an attempt to find the angle that made this app feel legitimate, fair, and low risk to try once.

A structural problem that appeared mid-flight. As spend scaled, a single legacy ad was taking 72% of adset budget. Delivery concentrated on old creative and starved the newer, better-performing UGC of any chance to prove itself. That needed an architecture change, not another creative refresh.

What I did

Four tracks ran in parallel, each feeding the others week to week.

Settling the format question first

I opened with a straight UGC versus AIGC test in parallel adsets on equal budgets. UGC converted. AIGC mixed into UGC adsets did not. Production consolidated into UGC.

A later test refined that: AIGC in its own dedicated adset performed efficiently. So it stayed as a secondary format rather than getting written off entirely.

Analysing the early winners turned up something more useful. Ads that led with Blackjack gameplay, showing the cards and the match before delivering any pitch, consistently beat ads that front-loaded the value proposition. That became the gameplay-first principle behind every batch after it.

Decoding the formula

Across 20-plus batches and five formats, four mechanics separated winners from losers.

Anti-scam framing as the entry point. Opening with skepticism, some version of “I thought this was rigged”, beat direct win showcases every single time. Disbelief followed by resolution built trust faster than any positive hook.

Small, tangible wins. Anchoring on lunch money rather than life-changing sums consistently won. Small amounts lower the perceived risk and make the claim credible instead of exaggerated.

Live one-on-one commentary. Showing a real match with live narration made the skill visible. Explicit Blackjack mechanics on screen beat generic “skill game” framing, because the outcome felt genuinely uncertain and people stayed to find out.

Hooks that don’t oversell. Variant testing kept confirming the same thing: building tension or teasing the outcome underperformed against simply dropping the viewer into the action. Overselling the hook killed conversion.

Channel and placement

Budget moved between Meta and TikTok weekly, based on performance rather than a fixed split.

TikTok proved stronger for scale and conversion efficiency at key points. Meta was better for install efficiency and retargeting. Inside Meta, Instagram drove the large majority of purchases at the best cost per purchase once the placement mix was cleaned up, so Facebook Feed came out after generating almost no purchase volume against real spend. Reels stayed.

The Checkout Initiated campaign got paused and its budget folded into the Purchase campaign, once it was clear the deeper conversion event was the more reliable signal. I also found and fixed a Meta purchase value tracking issue that had been quietly blocking ROAS optimisation the whole time.

Audience and geo pruning

Targeting tightened progressively as evidence came in. Female targeting came out across all segments after consistently failing to respond to the winning formats. Ages 35 to 54 were excluded in stages. The 18 to 24 cohort stayed the most purchase-efficient throughout.

Geo analysis found five states burning consistent spend for near-zero results. They came out, and the budget concentrated on markets that were actually working. Eastern Europe went in via a separate install campaign, which added inventory without disturbing the US purchase funnel.

Fixing the account architecture

By the time the Scale campaign held 46 active ads, delivery had concentrated so heavily on legacy creative that nothing new could reach significance. I tapered the legacy campaign, launched a separate Test Purchase campaign with a clean low density adset, and consolidated all UGC into a single test environment. That reopened the path to further cost per purchase improvement.

The formula, written down

UGC format, gameplay first, anti-scam hook, small believable win, payment proof.

Every element answers a specific trust objection. It works because it’s honest. It shows exactly what the product does and exactly what you can win, narrated by someone who didn’t believe it either. Take any one element out and conversion drops.

That’s the part that outlasts the engagement. The client kept the formula, the testing structure and the brief. They can run the next hundred creatives without me.

Client anonymised. Percentages are real and taken from platform reporting; absolute spend figures are withheld.

Book a consult call More insights