Mini-program virtual payments and rewarded ads: where the compliance line sits
The common mini-program monetization mix is "ads + in-app purchases", but virtual content sits under explicit platform rules. We have run rewarded ads and coin systems across several mini programs; this post maps the boundary precisely — the lanes that work and the ones that never will.
First, distinguish two kinds of "payment"
- Physical goods and services: regular WeChat Pay, with entity qualification and category matching;
- Virtual content: memberships, coins, level unlocks — restricted on iOS by Apple's rules; on Android, route through the Android virtual-payment middleware or omit.
Many rejections come from dressing virtual goods as physical ones, or from leaving a virtual-purchase entry point live on iOS.
The coin system that actually passes review
Our final model is "one-way earn, benefits-only spend":
- Earn: coins from tasks — check-ins, watching rewarded videos, using features;
- Spend: coins convert to in-app benefits only — membership trials, themes, functional items;
- Boundary: coins are never withdrawable, transferable, or redeemable for cash, stated explicitly in copy.
This model has passed review repeatedly across our apps. The core is sealing the "coins → cash" exit permanently; any cashback or redeemable coupon drags the product into financial-category review, where individual entities rarely survive.
Rewarded ads: balancing yield and retention
- State the reward up front: "watch to unlock one use" — expectation precedes the tap;
- Cap frequency per user per day; beyond the cap, switch rewards or cool down;
- Videos must be genuinely completable — fake close buttons and unskippable styles are high-risk items reviewers sample for.
Integration completeness
Our self-audit standard: all six ad placements integrated, and every dynamic type (interstitial, rewarded) with an actual call site in a page. An exported function with no caller equals "not integrated" — a standard we wrote down after one rejection.
Lanes to avoid entirely
- Coin withdrawal, cash lotteries, referral cashback — financial attributes, near-certain rejection for individuals;
- Paid blind boxes with randomized outcomes — restricted in several categories;
- Viral share-to-earn-cash loops — the reddest of red lines.
The boundary of virtual monetization is crisp: closed loop inside the app, value expressed as benefits, no cash exit. Hold those three sentences and the ads-plus-purchases mix is safe to build on.