Networks & compliance

The rules are not opinions.

Each network has a specific idea of what a playable is, down to the JavaScript dialect and the wording of a legal line. We hold the current spec for four of them and build to it, rather than building once and hoping.

AppLovin

Single .html · modern JS

Delivery
One self-contained HTML file.
MRAID
Injected by the SDK — the build must not add its own script tag.
Store URL
Set at campaign level; the CTA opens without an argument.
Analytics
Playable Analytics events are required, fired from the exact event vocabulary and never duplicated.
Orientation
Responsive reflow, portrait and landscape.
Disclaimer
Required when a payout is shown.

Mintegral

ZIP · ES5 only

Delivery
ZIP with the HTML named index.html inside.
JavaScript
ES5 only. No arrow functions, template literals, const/let or spread.
WebView limits
No clamp(), no env() safe-area insets, no flex gap, no viewport-fit=cover.
Stage
Fixed canvas, scaled by transform — 375×667 portrait, 667×375 landscape. No media queries.
Lifecycle
gameStart, gameClose, gameEnd and gameReady hooks, with the win condition calling gameEnd before the win screen.
Disclaimer
Required on every build, verbatim.

Google UAC

Single .html · no money language

Delivery
One self-contained HTML file.
Exit
ExitApi where present, clickTag as the fallback.
Copy
No cash, earnings or payout wording, and no currency symbols anywhere. Rewards, points and gift cards instead.
Localisation
Copy dictionary preserved, so a language swap does not require a rebuild.
Orientation
Responsive reflow, portrait and landscape.

Unity Ads

ZIP · viewability-gated

Delivery
ZIP with the HTML named index.html inside.
CTA
Store URL passed explicitly, and only ever fired by a real tap.
Start
Gated on MRAID viewability — the mechanic waits until the unit is actually on screen.
Disclaimer
Not required.

What the QA report tells you before you upload

Every build carries its own report: file size against the network limit, external requests found, touch event coverage, safe-zone violations, disclaimer presence and exact wording, and whether the output is ES5 where ES5 is required.

It is the same document your legal team will ask for, and the same one that stops a rejection three days into a flight.

See where QA sits in the pipeline →