Building for Rev Share: a Monetization Guide for RUN creators
Learn how to monetize your RUN game with retention-first strategies, SDK tools, and live-ops patterns that turn players into paying customers while respecting their time.
By RUN.team · June 15, 2026

We rolled out Revenue Share on May 26, and we're pretty stoked about what it means for creators on the platform. The split: 70% to standard creators, 80% to Founders Program members, and monthly payouts through Tipalti. Full mechanics live in the announcement: https://run.game/blog/revenue-share-is-coming-to-run/
This post is the companion. Now that the platform pays you back, here's how to build a game that earns. The tools come from the Rundot SDK. The patterns come from the free-to-play playbook we've been refining internally.
FIRST, MAKE IT WORTH COMING BACK TO
Monetization sits on top of retention, and there's no shortcut around that. The cleanest offer in the world doesn't matter if the player closed your game on day one and never came back. So before tuning your offers, get your game to a place where players genuinely want to open it tomorrow.
A few things that reliably help:
• Give players something to look forward to that isn't a paywall: a daily quest, a recipe that's been simmering overnight, the next beat of a story, a recurring event. The hook to return doesn't have to cost them anything.
• Daily quests that fit a real day. Three to five quests, totaling 20 to 40 minutes, beat anything that demands two hours of someone's evening. People come back for games that respect their time, and they spend in games they come back to.
• Forgiving login streaks. Wiping a 25-day streak because someone missed Day 26 doesn't motivate a comeback; it just feels like a punishment for being human. Build in grace days, or let players spend a currency to repair the streak.
Once the loop hums, the rest of this post starts to matter.


MAKE YOUR STORE WORTH VISITING
Players who avoid your store don't buy from it, so make it a place they actually want to drop by. The healthiest in-game shops feel generous on their own: free daily refreshes, unlocks you earn through play, cosmetics that just look cool sitting on a shelf. A store that gives also gets; players who feel taken care of don't bristle when something does have a price tag.
You can open RUN's hosted shop UI directly:
const { purchased, newBalance } = await RundotGameAPI.iap.openStore();
Or pull the catalog and render your own with shop.getCatalog(). Either way, mix the free with the paid, refresh the picks, and give players a reason to drop in even when spending isn't on their mind.

HOW TO CHARGE BUCKS
RUN Bucks are the platform currency. Players top up on the platform; you sell things to them inside your game. The SDK takes care of the wallet, the confirmation dialog & the auto-topup flow when a player's running low.
await RundotGameAPI.iap.spendCurrency(
"starter\_pack",
99,
{
screenName: "starter\_offer\_modal",
description: "Starter Pack: 500 coins \+ first-day boost",
},
);
Five rules of thumb from real game data:
• Price your icebreaker at the smallest tier that still feels worth it. The jump from $0 to first-purchase is the biggest behavioral wall in free-to-play. Once a player crosses it, the resistance to their second purchase drops sharply, so chase first-purchase count first; revenue per sale on the icebreaker matters less than the number of players who cross.
• Bundle some currency into everything you sell. A pack that leaves a player with 50 leftover after the headline item starts a spending habit. A pack that spends to exactly zero ends the relationship before it really starts.
• Show the bonus on the art; don't make players do the math. "BONUS: +200 currency" lands harder than expecting someone to calculate per-unit savings in their head.
• One well-timed offer beats four at once. Don't pile a stack of bundles on a new player; pick one, time it well, and let the others show up at natural progression points.
• The "insufficient currency" moment is your highest-intent moment of the whole session. The player wants the thing right now and is blocked. Give them one tap to the smallest pack that closes the gap. A tour of your store at that moment is a lost sale waiting to happen.


TRACKING WHAT PLAYERS OWN
When a player owns a skin, has 50 of a consumable, or holds a 30-day pass, that's an entitlement under the hood. The SDK takes care of the bookkeeping (granted, consumed, expired) and gives you an audit trail for free.
// what do they own?
const owned = await RundotGameAPI.entitlements.listEntitlements();
// how many?
const coins = await RundotGameAPI.entitlements.getQuantity("coins");
// spend some (referenceId makes retries safe)
await RundotGameAPI.entitlements.consumeEntitlement(
"coins", 50, undefined, "revive", "revive_run_82a3"
);
Use it for consumables (energy, currency, lives), non-consumables (a permanent unlock) & time-limited items (a 30-day boost).
USING REWARDED VIDEO ADS
Rewarded ads are opt-in by design: the player chooses to watch in exchange for a clearly named reward. Done well, they can actually lift retention rather than dent it. Done carelessly, they're the fastest way to lose player trust, so it's worth getting them right.
if (await RundotGameAPI.ads.isRewardedAdReadyAsync()) {
const watched = await RundotGameAPI.ads.showRewardedAdAsync({
adDisplayName: "double_offline_earnings",
});
if (watched) grantReward();
}
Two rules:
• Put rewarded ads where they solve a real problem the player has right now. "Watch an ad to double your offline earnings." "Watch an ad to retry the level." "Watch an ad to skip the timer." Generic flat offers ("watch an ad for 5 gems") convert way worse than contextual ones, often by an order of magnitude.
• Never show an ad button when no ad is available. Check isRewardedAdReadyAsync() first and hide the CTA if it returns false. A button that pops up "no ads available" or throws an error breaks player trust on the spot, and once they've been burned, they stop trying.
Rewarded ads are mobile-only at the moment. The SDK degrades gracefully on desktop, so nothing breaks, but design the placement so it doesn't sit in the way on web.

LIVE-OPS AFTER LAUNCH
After launch, the biggest single lift you can pull comes from a steady event cadence. Tentpole events on the holidays players already care about, themed mini-events monthly, weekly challenges. Publish a rough calendar somewhere your community can see it; anticipation is free retention.

Two patterns that aren't obvious until you've tried them:
• Tier your event difficulty. Easy, medium, and hard tracks inside the same event. Casual players complete the easy track and feel included; dedicated players push the hard track for the exclusive stuff. All-or-nothing event design quietly excludes most of your audience.
• Pair new content with missions that nudge players to try it. A new character, weapon, or recipe ships alongside a mission that needs it; players who start the mission notice on their own that the matching bundle would help. Engagement and intent move together.
Track everything so you can tune:
RundotGameAPI.analytics.recordCustomEvent("event_complete", {
event_id: "spring_festival",
tier: "hard",
bucks_spent: 250,
});
A FEW THINGS NOT TO DO
• Don't sell raw power in PvP. Cosmetics, convenience, time skips: all fine. Stat-bumping items in competitive modes are the fastest way to make your community turn on you.
• Don't dump every offer on a new player at once. Decision fatigue kills conversion. One offer at a time, well-timed, beats four piled up.
• Mind your anchoring. If your first offer is 90% off, the next one at 50% off automatically looks overpriced. Use the deep discount sparingly, then switch to value-based messaging.
• Don't show ad buttons when no ad is available. Mentioned above; it's important enough to say twice.
• Don't reset long login streaks like an axe. Forgive a missed day; the alternative is the player who quietly stops opening the app.
HOW REV SHARE PAYS OUT
Your earnings (Bucks spent in your game plus ad revenue) flow into a single creator balance on the platform side. You don't have to track per-purchase splits or run reconciliation; RUN handles all of that for you. Payouts are calculated from the real cash value behind each Buck at the time of purchase, so what you see in your balance is what was actually paid in.
Withdrawals run through Tipalti. Hop into your Finances page and set up your details once before your first payout. Payouts go out 30 days after the end of the earning month they cover. The standard withdrawal threshold is $500, but for the first 90 days of the program it's $100, so most creators should see their first payout pretty quickly.
Full API names, signatures, and snippets for everything above live in the Rundot docs: https://series-1.gitbook.io/rundot-docs

YOUR MOVE
The honest version of "how to monetize" is pretty short. Build something fun. Give players a reason to come back. Treat your store like a place worth visiting. Lean on the SDK to skip the plumbing you don't need to write yourself. Everything else is dialing knobs on top of that foundation.
Now that the foundation pays you back, the knobs are worth dialing thoughtfully. We can't wait to see what you build.