๐ Deployment Guide
How to deploy playable ads to major ad networks.
Overview
Each generated creative is packaged for 9 ad networks with network-specific formats. Below are the deployment instructions for each network.
Ad Network Quick Reference
| Network | Format | Upload Surface | Max Size |
|---|---|---|---|
| AppLovin | .html | SparkLabs / MAX | 5 MB |
| Mintegral | .html | Playturbo / Mindworks | 5 MB |
| Unity Ads | .html | Unity Ads Dashboard | 5 MB |
| IronSource | .html | LevelPlay / Supersonic | 5 MB |
| Vungle | .zip | Vungle Dashboard | 5 MB |
| Meta | .zip | Ads Manager | 5 MB |
| Google AdMob | .zip | AdMob / Campaign Manager | 5 MB |
| TikTok/Pangle | .zip | Ads Manager โ Playable Ads | 5 MB |
| Cocos Creator | Source project | Cocos Dashboard | N/A |
Deployment Steps
1. Preview & Validate
Before uploading to any network, validate your creative:
# Using the local validation tool
node playable-ad-tools/validate.mjs --target=mraid dist/playable.html
# TikTok-specific validation
node playable-ad-tools/validate.mjs --target=tiktok tiktok/playable.tiktok.zipExpected output: VALID: All checks passed
2. AppLovin (MAX / SparkLabs)
- Log into AppLovin MAX Dashboard
- Navigate to Creative Management โ Playables
- Click Upload Creative
- Select the
playable.applovin.htmlfile - Set targeting and bid settings
- Submit for review
Requirements:
- Single HTML file (no ZIP)
- Must call
mraid.open()on CTA tap - โค 5 MB
- Portrait + Landscape orientations
3. TikTok / Pangle
- Log into TikTok Ads Manager
- Go to Assets โ Creative โ Playable Ads
- Click Create โ Upload ZIP
- Select the
playable.tiktok.zipfile - Generate preview QR code for testing
- Set campaign objective to App Promotion
Requirements:
- ZIP file containing
index.html+config.jsonat root - Must include
<script>to Pangleโs Playable-sdk.js - Use
window.openAppStore()for install โ NOTmraid.open() - No external network requests
- โค 5 MB (recommend โค 3 MB)
4. Meta (Facebook) Audience Network
- Log into Meta Ads Manager
- Create/Edit an app install campaign
- Under Creative, select Playable Ad
- Upload the
playable.meta.zipfile - The ZIP must contain
index.htmlandmeta-audience-network.jsat root
5. Google AdMob
- Log into Google AdMob
- Go to Campaigns โ Create campaign
- Select App install objective
- Under Creative, upload
playable.google.zip - The ZIP must contain
index.htmlat root + Googleโs wrapper files
6. Unity Ads / IronSource / Vungle / Mintegral
Each uses similar flow:
- Log into respective dashboard
- Navigate to Creative / Ad Units
- Upload the corresponding network file (HTML or ZIP)
- Set campaign parameters
- Submit for review
MRAID 3.0 Checklist
The factory generates MRAID 3.0 compliant ads. Verify these before submission:
-
mraid.getVersion()returns"3.0" -
mraid.addEventListener('exposureChange', handler)registered -
mraid.open(url)guarded with try/catch -
clickedflag prevents double-fire on CTA - No
console.errorin first 3 seconds - First reward within 3 seconds of first tap
- Persistent CTA visible throughout gameplay
- End-card CTA with retry option
- All assets inlined (no CDN, no fetch)
- Bundle โค 5 MB
- Viewport-fit cover CSS applied
- Touch-action: none to prevent browser gestures
Local Testing
# Serve the playable locally for testing
cd playable-ad-poc-12-hybrid
python3 -m http.server 8080
# Open http://localhost:8080/dist/playable.html in browser
# Run health audit on entire factory
cd /path/to/OpenGame
node playable-ad-tools/health-audit.mjs
# Check project statistics
node playable-ad-tools/factory-stats.mjs --prd-anchorsCI/CD Pipeline
# .github/workflows/deploy-playable.yml
name: Deploy Playable Ad
on:
push:
paths:
- 'playable-ad-poc-*/**'
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: node playable-ad-tools/validate.mjs --target=mraid dist/playable.html
- run: node playable-ad-tools/health-audit.mjs
package:
needs: validate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: node playable-ad-tools/pack-all.mjs
- uses: actions/upload-artifact@v4
with:
name: network-bundles
path: networks/