Ad Policy
Third-party ad and tracking scripts are blocked. Monetize through the RetiPie SDK instead — the platform does the ad negotiation, you keep the higher share.
RetiPie exists so that indie games can reach a real audience without their creators also having to become ad-ops engineers. The platform handles ad sales, mediation, consent, fraud detection, and payouts. Your job is to make the game great.
This page is the policy: what's blocked, what's allowed, and why — so there are no surprises during review.
The rule
- Not allowed: any third-party ad network SDK, tracking pixel, analytics library, tag manager, or network call whose purpose is advertising or tracking.
- Allowed: the first-party RetiPie Ads SDK, which the platform injects into every game automatically. See Ads SDK reference.
There's no configuration step for the SDK — it's already there in every game. You either call it or you don't.
Why
Player experience. Players come to RetiPie because games load fast, play clean, and don't surprise them with random ad formats. If one creator ran a popup-heavy integration and another ran a forced video SDK, the feed would feel inconsistent and retention would drop for everyone. The platform enforces a uniform experience so each creator's game benefits from the shared trust.
Revenue for you. Platform-level ad mediation (AppLovin MAX with multiple bidder networks in a real-time auction) pays materially more per impression than any single creator can negotiate alone. Routing through our SDK means you earn more, not less.
Security. Third-party ad scripts are a common malware vector — they can inject popups, redirect to phishing sites, or exfiltrate data. The platform's Content Security Policy blocks that class of attack at the network layer.
What the upload scanner blocks
Anything whose job is advertising or tracking. Common examples:
- Ad network SDKs (Google AdSense, AdMob, Unity Ads, ironSource, etc.)
- Tracking pixels (Facebook Pixel, Google Analytics, etc.)
- Analytics libraries (Mixpanel, Amplitude, Hotjar, Segment, etc.)
- Tag managers (Google Tag Manager, etc.)
- Scripts that load from known ad or tracker domains
If the scanner finds any of these in your HTML or JavaScript at upload time, the upload is rejected with a specific reason. Fix and re-upload.
What works fine
- Your own game code
- Self-contained analytics that never leave your bundle
- Locally-bundled fonts, images, audio, 3D assets
localStorage/IndexedDBfor saves- The RetiPie SDK itself
The policy targets the ad-tech ecosystem specifically. Regular game logic is untouched.
How to earn from ads
Two paths. You can use either or both, per game:
- Pre-start ad — enable it in the game settings with a checkbox. RetiPie runs a single full-screen ad before the game loads. No code. Easiest way to earn on day one.
- In-game Ad API — call
retipie.ads.showRewarded()orretipie.ads.showInterstitial()from your game code at natural moments (level end, revive prompt, continue screen). Higher revenue share because you designed the moment. See Ads SDK reference.
Both paths use the same platform infrastructure underneath. Both honour the player's consent, frequency limits, and age restrictions automatically — you never implement that.
Technical enforcement
Content Security Policy
Every game served through RetiPie runs under a strict CSP:
script-src 'self' 'unsafe-inline'— only your own bundle and inline scripts in it.connect-src 'self' ${API_URL}— only the game origin and the RetiPie API. No external network calls.frame-src 'none'— no nested iframes.
This is enforced by the server on every response.
Upload scanning
Every .html and .js file you upload is scanned against a block list of known ad/tracker patterns and domains. The scanner runs on direct uploads and inside ZIP extractions.
Calls to the RetiPie SDK (retipie.ads.*) don't match any of those patterns — they're plain in-page function calls. Your SDK code passes the scanner without special handling.
FAQ
Can I use Google Analytics to track my own game metrics? Built-in analytics (plays, retention, engagement) are already in your creator dashboard. Third-party analytics scripts are blocked.
What about loading fonts or assets from a CDN? Bundle everything with your game. External resource loading is blocked by CSP, and a single-origin game loads faster anyway.
I had ads in my game on another platform. Do I need to rewrite it?
Strip the third-party ad SDK and replace those calls with retipie.ads.showRewarded() or showInterstitial(). The Ads SDK reference has migration notes for the common platforms.
Can I add my own in-game purchases or tipping?
Creator tipping is planned. When it ships, retipie.tips.prompt() will be the entry point. Direct third-party payment integrations are not allowed.
Why not just let me choose whether to show ads? Consistent player experience is core to how the platform works. If half the games had custom ad setups and half didn't, the platform's "one swipe away from any game" promise would break down. Platform-level mediation also pays you more than any self-negotiated integration.