The onboarding was the drop-off, so I made the feature teach itself

LiveOps Campaign: a 1.5 month test that lifted new user engagement by 214% and opened a new revenue line

Role

Product Design Team Manager, sole designer

Industry

Health & Fitness / Growth and monetisation

Timeline

August 2024, 1.5 months from idea to shipped test

Scope

Feature concept, UX and UI, onboarding model, prototype

Platform

iOS, Android

Status

Shipped as a live test. Revenue hypothesis confirmed

Two phone screens showing the alongID wallet interface, floating on a dark premium background with the wallet view holding multiple identities.

In 60 seconds

Sweatcoin paid people to walk. Daily Boost was one of its core features, and around 30 million people were active in the app.

The company had a hypothesis worth money: that a partner would pay to sponsor an in-app activity, and that sponsoring it would push daily active users up rather than annoying them. Nobody had tested it.

I had 1.5 months, one PM, one front-end engineer and borrowed QA time to find out.

The design problem underneath was older than the project. Every feature launch at Sweatcoin opened with two or three full-screen onboarding modals, and every launch lost users to them. I proposed the opposite: no blocking screens, and a feature that teaches itself while you use it, borrowed from how RPG and MMO games hand out quests.

New user engagement rose 214% and returning user engagement 75%, both on iOS. Daily active users rose 7% month on month, and Nike saw 20% more leads than in the same sales period without the campaign.

Two phone screens showing the alongID wallet interface, floating on a dark premium background with the wallet view holding multiple identities.

The problem: a revenue hypothesis with 1.5 months to prove it

Sweatcoin made money from partners, but partners could only appear in the Marketplace, on a subpage, next to other offers. Reach was limited by the fact that people had to go looking.

The idea was to let a partner sponsor something on the home screen instead, attached to a behaviour people already had. If it worked, it created a new revenue line and lifted daily active users at the same time. If it didn't, we would have spent 1.5 months finding out cheaply.

Four goals, set with the PM:

  • Increase engagement with Daily Boost, for new and returning users

  • Increase daily active users by giving people a reason to come back

  • Validate that a LiveOps campaign could run inside the app infrastructure we already had

  • Test whether campaigns like this could be sold to partners later

The constraints were the interesting part. One developer. No dedicated QA, which I had to secure from another team as a manager, two weeks before the deadline, or the test would not ship. And we were not a formed team, we were three people who had not built anything together before.

Two phone screens showing the alongID wallet interface, floating on a dark premium background with the wallet view holding multiple identities.

What I decided, and why

Every launch was losing users to its own onboarding

This was the oldest problem in the product, and it had nothing to do with LiveOps.

Every new feature shipped with two or three full-screen modals explaining how it worked, blocking the user until they clicked through. We measured a meaningful drop rate on those screens, launch after launch. People were leaving before they saw the thing we had built for them.

I play RPGs and MMOs, and those games have solved this. They do not open with a manual. They put a quest marker in front of you and let you work it out by doing it.

So I proposed replacing the onboarding entirely with a learn-by-doing approach, and using LiveOps as the test case for it. No blocking screens. The user finds the campaign at their own pace, and the product leads them by the hand through action instead of explanation.

The work was less glamorous than the idea. It came down to placing the right starting points in the right places across the app, so that wherever someone encountered the campaign, they were pointed at the same next step. Consistency is what makes discovery feel like guidance rather than confusion.

What I gave up: certainty. A modal guarantees the user has at least seen the explanation. Learn-by-doing does not, and if the entry points are wrong, people simply never find the feature.

Side-by-side comparison of industry jargon and alongID's plain-spoken wording for the same screen, including an error state.

The people who want instructions still get them

Usability testing changed the shape of this decision.

I built a clickable prototype and ran tests, and the feedback pushed me away from an absolute position. Some people want to be told how something works before they touch it, and removing every explanation punishes them for that.

So the onboarding survived, as an optional page reachable from the progress tracker. It is there if you want it and invisible if you don't. That is the version that shipped, and it is a better decision than the one I started with.

Progress had to look like a quest, not a form

The tracker borrows directly from RPG quest logs. You can see where you are in the streak, what remains, and what waits at the end.

Two details carried more weight than their size suggests. The Boost Burst icon was animated and deliberately eye-catching, because the campaign had to be noticeable enough to be discovered without a modal announcing it. And a dedicated touchpoint let users check the campaign details and their own progress whenever they wanted, rather than only when the app chose to tell them.

A short, two-step verification journey used to sign in to a platform, shown as a compact guided flow.
Close-up of the two-step journey's completed and active step states.
Close-up of a single step within a longer, multi-step verification journey.
A longer, eight-step verification journey used to open a business account, built from the same guided-flow component as the two-step version.

Build it in the new design language, not the old one

We were mid-redesign. The new visual language existed but was missing many components, and the old one was complete and ready to use.

With 1.5 months on the clock, the safe answer was to build on the old system and ship. I chose the new one.

The reasoning was about what happens after the test succeeds. Building in the old language meant redesigning this feature again later, on top of every other screen already queued for the redesign. Choosing the new one meant I had to build missing components along the way, and it meant the test shipped in the direction the product was already heading.

What I gave up: speed, on a project where speed was the entire constraint.

Side-by-side comparison of industry jargon and alongID's plain-spoken wording for the same screen, including an error state.

Dark theme version of the app and liveops campaign feature

What shipped

The campaign mechanic

While a LiveOps campaign is live, completing five Daily Boosts in a row unlocks a partner reward. For the first test, Nike offered 30% off everything in their online store.

The home screen placement

Partners moved from a Marketplace subpage to the surface people open every day.

The progress tracker

RPG-style, showing position in the streak and what comes next, with campaign details on demand.

The optional onboarding

Available from the tracker, never blocking.

The Boost Burst icon

Animated, designed to be found rather than announced.

The results

In the product

New user engagement rose 214% and returning user engagement 75%, both measured on iOS.

For the partner

Nike recorded a 20% increase in key leads, comparing the same sales period with the campaign running against one without it.

For the business

Daily active users rose 7% month on month, comparing a month with a LiveOps campaign against a month without one.

The revenue hypothesis held. Nike got new customers and paid for reach into an app with around 30 million active users. Sweatcoin got partnership revenue, a measurable lift in daily actives, and evidence that these campaigns were worth selling.

And the user got something better than the usual reward. Daily Boost normally returns double sweatcoins. Here, finishing a five-day streak returned a real discount from a brand they recognised, which is why nobody inside the company or outside it read this as advertising. It was the core feature, branded, with a better prize at the end.

What I took from it

Test the idea before you can afford to be precious about it. We had 1.5 months, so the design had to be an argument that could be settled by shipping. Reusing Daily Boost instead of building something new is what made that possible.

Onboarding is usually a symptom. If a feature needs three screens of explanation before anyone can touch it, the problem is rarely that users are slow. It is that the entry points are wrong. Fixing the entry points is harder than writing the modals, which is why most teams write the modals.

Absolutes lose to usability tests. I went in wanting to delete onboarding entirely. Testing told me some people genuinely want it, and the version that shipped, optional and out of the way, is better than the one I argued for at the start.

Borrowed resources need a calendar, not a favour. The QA I needed belonged to another team. Securing it two weeks before the deadline was as much a part of delivering this as any screen I drew, and it is the part that would have sunk the test if I had left it late.