Watch And Earn docs
v3.1.0
Live demoConsole demo Get help
● Monetise · Store products 3.1

VIP, boosters and point packs
and the store rules around them.

What you can sell through Google Play and the App Store in 3.1, what each product does, and the store and ad-network rules that decide which of them you should switch on. Everything here is off by default.

Verified on the serverOff by defaultPoints never become money

01What you can sell

Console → Subscriptions and purchases. Every purchase is verified on the server by verifyPurchase (firebase/functions/src/iap.ts) before anything is granted. Setting up the products in the stores and server verification are described in In-app purchases.

ProductStore typeSwitchDefaultWhat it does
VIP monthly, VIP yearlyAuto-renewing subscriptionSell VIP and remove-adsoffPoints multiplier, ad-free, VIP-only games, VIP season track, vip badge (below).
Remove adsNon-consumableSell VIP and remove-adsoffNo app-open, interstitial, banner, native or rewarded-interstitial ads. Rewarded videos stay.
BoostersConsumableSell boosters (consumable)offA points multiplier for a number of minutes, for example 2× for 30 minutes.
Point packsConsumableSell point packs (consumable)off, and no packs definedAdds a fixed number of spendable points. Read Store policy first.

02VIP

BenefitWhere it is setDefault
Points multiplier on rewarded-ad, rewarded-interstitial, spin, scratch, quiz, task, check-in and mini-game credits (rounded down)Rewards economy → VIP multiplier1.5 (1 to 5)
No non-rewarded adsAd placements → No non-rewarded ads for VIP userson
VIP-only mini-gamesMystery box and mini-games → Memory / Word game: VIP onlyoff
VIP season track (the VIP column of each tier)Season pass → Tiersdefined in the default tiers

Default product ids: vip_monthly, vip_yearly, remove_ads. Change them in the console if your store products use other ids.

03Boosters

Console → Boosters, one per line as productId|multiplier|minutes. The default is booster_2x_30m|2|30. Multiplier 1.1 to 5, minutes 1 to 1440.

  • The server sets boostUntil and boostMultiplier on the user after verification.
  • Boosters do not stack with VIP. The higher of the two multipliers applies, never both. A booster applies to the same credits as the VIP multiplier (docs/CONTRACT-3.1.md §10.3).
  • Boosters are consumables: create them as consumable products in both stores. The app consumes them after verifyPurchase succeeds, and each order is applied once.

04Point packs

Console → Point packs, one per line as productId|points (1 to 1000000 points), for example points_1000|1000. The list is empty by default.

  • Bought points are written with ledger type purchase. They add to the spendable balance only. They do not raise lifetime points, level, leaderboards, season XP or today's earned points (docs/CONTRACT-3.1.md §10.3).
  • Consumable, applied once per order, like boosters.

05Store policy: read before you switch on boosters or packs

Selling points or boosts for money changes how stores and ad networks look at a rewards app. You are the publisher, and nothing here is legal advice. These are the rules that apply, quoted from pages checked on 2026-10-05. Read the current versions before release.

Google Play Payments policy

Google Play Payments policy:

  • In-app purchases of items "such as virtual currencies" must use Google Play's billing system. The app uses it through in_app_purchase.
  • "In-app virtual currencies must only be used within the app or game title for which they were purchased." Points in this app cannot be transferred or exchanged.
  • Apps "offering mechanisms to receive randomized virtual items from a purchase including, but not limited to, 'loot boxes' must clearly disclose the odds of receiving those items in advance of, and in close and timely proximity to, that purchase."

Apple App Review Guideline 3.1.1

App Review Guidelines, 3.1.1 In-App Purchase:

  • Subscriptions and in-game currencies must use in-app purchase, as the code does. Do not add links or buttons to other payment methods.
  • "Any credits or in-game currencies purchased via in-app purchase may not expire." The code has no expiry for points. Do not add one for bought points.
  • "Apps offering 'loot boxes' or other mechanisms that provide randomized virtual items for purchase must disclose the odds of receiving each type of item to customers prior to purchase."

The mystery box

The mystery box is bought with points only, never with money (openMysteryBox), and its prizes are points and cosmetics only. The app shows the odds of every prize in percent before the user opens it (app/lib/ui/screens/mystery_box_screen.dart). Keep that screen. Once point packs are on, points can come from a purchase, so the odds disclosure above applies to the box.

Consumables

Boosters and point packs must be consumable products in Play Console and App Store Connect. Subscriptions are auto-renewing subscriptions, and remove-ads is a non-consumable. Apple requires a working "Restore purchases" for non-consumables and subscriptions. Test it in Sandbox.

Ad points stay points

AdMob's policies for ad units that offer rewards say "Direct monetary items may not be offered as rewards under any circumstance" (examples: cash, cryptocurrency, gift card). Other rewards must be usable only in your app and must not be transferable. Points in this app follow that rule. Selling more points does not change it: no points, bought or earned, may ever be exchanged for cash, gift cards or crypto.

06Operator rewards in the store

The rewards store (Rewards store) has an item kind Operator reward: something you hand over yourself, which always waits in console → Redemptions for you to fulfil. The console refuses titles that name cash, gift cards, vouchers or crypto, and the backend has no such item kinds.

Points earned from ads must not buy anything of cash value

Users earn points by watching ads, so every operator reward falls under the AdMob rule quoted above. Never offer cash, gift cards, vouchers or crypto. AdMob also forbids rewards that can be transferred to another person, "physical items or loyalty points that can be transferred to another person are not permitted", and caps discounts or vouchers for physical items at 25% of the item's value. Prefer rewards that only work inside your app or for that account, like the console's own examples: a shout-out in your community, a profile badge you award by hand, early access to a feature.

07Checklist before you sell

  • Products created in both stores with matching ids and the right type (subscription, non-consumable, consumable)
  • Server verification set up for Google Play and the App Store (In-app purchases)
  • Your store listing describes the app as a rewards app with points, never as a way to earn money
  • If point packs are on: the mystery box odds screen is unchanged
  • No operator reward of cash value
  • The right Envato license for an end product with in-app purchases (Your license)