Mintegral playable specs at a glance
| File format | .zip → folder → HTML file, all with the same name (e.g. mygame.zip → mygame/ → mygame.html). Letters, numbers and underscores only. |
|---|---|
| Max file size | 5 MB for the zip |
| Assets | Everything other than JS and HTML converted to base64. The HTML must open locally. |
| External requests | None. No dynamic requests; Mintegral's creative policy bans external calls without approval. |
| MRAID | Not used. Mintegral has its own window.* API. |
| CTA call | window.install && window.install(); |
| Required calls | window.gameReady() after loading, window.gameEnd() when the game is won or lost |
| Optional hooks | Global gameStart() and gameClose() (Mintegral calls them), window.gameRetry() on replay |
| Orientation | Must adapt to portrait and landscape and handle rotation. No fixed size. |
| Don't include | A close button, a loading screen (Mintegral adds both) or code that overrides console |
| Where it runs | Display interstitial, interstitial video and rewarded video |
| Testing | Mindworks Playable Test Tool, then 3–5 business days of Mintegral QA |
Required code
Mintegral injects its functions into the page, so guard every call with window.x &&. That keeps the file working in a plain browser too:
// once every asset has loaded
window.gameReady && window.gameReady();
// every install button, including the one on the end screen
installButton.addEventListener("click", function () {
window.install && window.install();
});
// when the player wins or loses
function showEndScreen() {
window.gameEnd && window.gameEnd();
// ...
}
// Mintegral calls these two itself
function gameStart() { /* start the timer and the music */ }
function gameClose() { /* stop the music */ }
// only if the playable has a replay
function replay() {
window.gameRetry && window.gameRetry();
}
The HTML needs html, head and body tags and a UTF-8 charset. Mintegral's guideline recommends this viewport:
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
For custom tracking, add an action.json at the root and call window.HttpAPI.sendPoint("action&action=" + n) for up to five actions.
The naming rule that fails most uploads
The zip, the folder inside it and the HTML file must have exactly the same name:
tiles_v2.zip
└── tiles_v2/
├── tiles_v2.html
└── game.js (JS may stay separate; everything else is base64)
Use only letters, numbers and underscores. A hyphen or a space in any of the three fails the test tool with “The names of html, folder and the zip file need to be the same.”
Mintegral's asset table in the help center lists the playable format as “HTML (single file)”, but the official test tool only accepts a zip in the structure above. Follow the tool.
Design rules
- Keep an install button visible for the whole playable, and show one on the end screen with an effect that draws the tap.
- Every link to the store or a web page goes through
window.install(). The playable must never redirect on its own, on load or on a timer. - Build an end screen. The game has to finish, and
gameEnd()must fire on every path a player can take. - Make it work with a mouse. The test tool runs in a desktop browser, so swipes and taps must also work as clicks and drags.
- No fake close buttons, fake progress bars, misleading countdowns or audio designed to startle. These break Mintegral's creative policy.
How to test a Mintegral playable
- Open the Mindworks Playable Test Tool (mindworks-creative.com/review redirects there). No login needed.
- Upload the zip and play it all the way to the end, then tap the install button.
- Every row (HTML requirements, CTA, Game Ready, Game End and the rest) must turn green. “Undetected” on Game End usually means you didn't reach the end, or one path skips the call.
- Check the portrait and landscape previews, and the in-app test via the QR code.
After you submit, Mintegral's QA takes 3–5 business days. Auto-redirects aren't caught by the tool, so they surface here.
Why Mintegral rejects playables
- The zip, folder and HTML names don't match, or use characters other than letters, numbers and underscores.
- The zip is over 5 MB, or the upload isn't a zip.
window.install(),gameReady()orgameEnd()is never called.- Images, audio or fonts are loaded as files or from the web instead of base64.
- The playable redirects without a tap.
- A touch-only control the desktop test tool can't trigger.
- A custom close button or loading screen, or code that overrides
console.
Common questions
What is the file size limit for Mintegral playable ads?
5 MB for the zip file.
What is the CTA function for Mintegral playables?
window.install && window.install(); Every install button, including the one on the end screen, must call it, and the playable must not open the store any other way.
Do Mintegral playables need gameReady and gameEnd?
Yes. Call window.gameReady() once all resources have loaded and window.gameEnd() when the game is won or lost. The Mindworks test tool checks for both.
Does Mintegral support MRAID?
Mintegral's guideline doesn't use MRAID. It has its own API: window.install, window.gameReady, window.gameEnd, plus gameStart and gameClose functions that Mintegral calls.
Why does the Mintegral test tool say the names need to be the same?
The zip, the folder inside it and the HTML file must share one name, such as mygame.zip, mygame/ and mygame.html, using only letters, numbers and underscores.
Where do I test a Mintegral playable?
In the Mindworks Playable Test Tool at playturbo.com/review. Upload the zip, play to the end and tap the CTA until every check is green.
Sources
Networks change their specs without notice. These are the pages this summary was checked against. If anything here disagrees with them, follow the network.