← Exploration

Turning 0 conversions into a testable ad system

Cheerbit's social was reposting the app's own affirmation cards to no effect. Here is how I diagnosed it, and built a set of reels designed as experiments to learn what actually makes someone stop scrolling.

For months, Cheerbit's Instagram did one thing: repost the images and short videos the app itself generates. Pretty affirmation cards, straight from the product. Total conversions from all of it: zero.

The diagnosis

The problem was not the art. It was that I was posting the product, not marketing it. An affirmation card is the exact thing the app makes. Give it away for free in the feed, with no hook and no context, and a scroller gets the entire value up front. There is no reason left to download.

Worse, the one thing that makes Cheerbit different never appeared on screen. Cheerbit matches affirmations to the mood you are actually in, including the hard ones: angry, sad, overwhelmed. That is the whole idea, and none of the posts showed it. The reels had color and energy, but no hook, and nothing that only Cheerbit could say.

The idea: treat every ad as an experiment

Instead of guessing at one "good" video, I wrote five, each betting on a different reason someone stops scrolling. Held production roughly equal, changed only the hook. Whichever wins does not just hand me a video to boost. It tells me what this audience responds to, which makes every ad after it sharper.

#ConceptThe bet it tests
01Not Today, Toxic PositivityDoes meeting a hard mood (anger as a valid start) out-hook a happy one?
02Mood MorphDoes the pure visual mechanic, no problem framing, hook on its own? Best for reach.
03Midnight POVDoes story-first, with the app hidden for four seconds, beat leading with the product?
04It Changes With YouDoes a plain feature demo hook on curiosity alone? The cheap baseline.
05The Chameleon TalksDoes a voiced character with attitude out-hook faceless text reels?

What I built

Three of the five, produced as finished vertical reels. Every frame is built from the app's real mascot poses and its exact in-app mood gradients, so the ads and the product feel like one thing. All three are silent-legible, because most people scroll with the sound off.

01 · Angry
Not Today, Toxic Positivity
Meets anger as a valid start, then moves.
02 · All moods
Mood Morph
The mechanic itself: mood to matching line.
03 · Sleepy
Midnight POV
Names the feeling first, product as payoff.

Build note: these are not template exports. Each reel is a deterministic HTML and CSS animation with a seek(t) timeline, rendered frame by frame with headless Chrome and encoded to 1080×1920 H.264 with ffmpeg. That let me drive every motion from the app's own color tokens and art, and re-time all three for readability in one pass.

How the test runs

Post all three organically first. Same time of day, a few days apart, so they do not compete and the read stays clean. No paid promotion yet. The numbers that decide it are not likes.

3-second retentionDid the hook hold? The single most important number.
Saves and sharesThe best predictor of what is worth putting spend behind.
Watch-throughDid the arc land, or drop before the call to action?
Profile taps to installsThe one number that has to move off zero.

Only once one hook clearly wins does budget go behind it.

The guardrails I held

No competitor comparisons. The tension comes from the cliche "just be positive," never from another app, and every concept resolves to momentum rather than negativity. No clinical or medical claims, because Cheerbit is a wellness product, not treatment. The brand can be direct and still stay honest.

Where it goes next

Two concepts are still on the bench (the voiced mascot and the feature demo), waiting on what the first three teach me. Results are pending by design: the point was not to declare a winning ad, it was to build a system that can find one, and keep finding the next one. When the retention and saves data comes back, it sets the direction for the following batch.


See the app on the App Store