The first web purchase is the expensive one: you paid for it with a channel, an offer and a leap of faith by the player. Every purchase after that is nearly free. So the question that decides whether a web store pays is not "how many players tried it" but "how many came back". This guide is about the second purchase, and the third.
Measure it first: cohorts from the webhook
You don't need a new tool. Every paid order already reaches your backend as a signed order.paid webhook with the order ID, player ID, pack, price, currency and time (reference), and order.refunded carries the same order ID. Keep them in a table and you have everything below.
| Question | Query |
|---|---|
| Repeat rate | Of players whose first web order was in month M, the share with a second web order within 30 and 60 days |
| Time to second purchase | Median days between a player's first and second web orders |
| Web share of a player's spend | Web orders ÷ (web + in-app orders) per player, before and after their first web order |
| Cannibalisation | In-app spend per player in the 60 days before and after their first web purchase |
| Offer effect | Repeat rate of players whose second order used an offer vs those whose didn't |
Three cohorts (the last three months of first-time web buyers) are enough to see the shape. Build the table once; it's also the source for attribution.
Why players don't come back
The reasons are the same four everywhere.
- Nothing changed. The store looks exactly as it did last time. There's no reason to check.
- The discount is permanent. A store that's always 20% cheaper becomes a utility: players use it when they were going to buy anyway, and never visit otherwise.
- It's hard to get back to. The player found the store once through a push. Without a link in the game, Discord or their inbox, they can't find it again.
- The first purchase was bad. Slow delivery, a confused return to the game, or a pack that didn't feel like the game. One bad first purchase is usually the last.
The fourth is a launch problem (checklist). The first three are retention design, below.
Four offers that bring players back
All four exist in the Appside Studio and change without a release (live ops guide).
1. Timed offers that end. An offer with a start and end time in UTC. The end is the point: "ends Sunday" is a reason to come back this week. Run one every week, on the same day, so returning becomes a habit.
2. Bundles that rotate. A bundle is a pack that doesn't exist in the app. Change it weekly. Players who've learned that the web store has something new will check it.
3. The next-purchase bonus. After a player's first web purchase, a bonus on the second, limited per player. In Appside a promo code has a per-player limit, a total limit and a window; a "welcome back" code with a per-player limit of one does this.
4. Targeted offers. An offer only for players at a level, in a spender tier, in a country, or new players. Your backend puts those attributes into the signed player token; the store shows each player what's meant for them. A whale and a first-week player shouldn't see the same store.
A weekly rhythm
Retention is a calendar, not a feature. The cheapest version:
| Day | Change |
|---|---|
| Monday | New bundle goes live; last week's ends |
| Wednesday | Push to players with no web order in 14 days: this week's bundle |
| Friday | Weekend timed offer, ends Sunday 23:59 UTC |
| Monthly | A code for players who bought in the app but not on the web in 30 days |
Set all of it on Monday morning; the start and end times do the rest.
What not to do
- Don't discount everything. One bonus per visit, on one thing. Everything-on-sale is nothing-on-sale.
- Don't make the bonus bigger each time a player doesn't return. That teaches them to wait.
- Don't change the store's look between visits. The offers change; the game's look doesn't. Familiarity is what makes a web store feel safe.
- Don't measure revenue alone. Revenue rises with traffic; repeat rate tells you whether the store works.
Appcharge's version of this
Appcharge's post on the subject (January 9, 2025) frames the same journey as first visit, repeat visit, first purchase and repeat purchase, and reports, from its own partners rather than an external study, that 80–100% of daily purchases come from repeat purchasers. That number is the point of this page: the repeat purchase is the business. Where that post leans on VIP account managers sending personalised deals, the version above is one you run yourself, from the Studio and your own order table, for 3.9% per successful payment.
Create your store free. No card needed.