Guide · Playable Ads
From a game to nine network packages
The scenario-playable-ads skill turns a gameplay recording, or a brief and two concept screens, into one HTML5 playable and packages it for Meta, Google, AppLovin, Unity, generic MRAID, Moloco, Mintegral, Liftoff and Pangle. An agent runs it with Scenario MCP for the art and sound.
- The agent skillscenario-playable-ads v3.0, ZIP.ZIP
- The making-ofPDF. The seven builds, step by step.PDF
1Set up
- Unzip the skill into your agent's skills folder (for Claude Code,
~/.claude/skills/). - Connect the agent to Scenario MCP at mcp.scenario.com and pick the team and project the art goes to.
- Install Python 3 with Playwright and a Chromium build (
python3 -m playwright install chromium), Pillow and ffmpeg. The QA and the video capture need them.
2Give the agent the game
- Best: a raw device recording of 30 s to 2 min, the logo, the HUD font if you have it, the App Store and Google Play links, and one line on what the player does.
- Or: store screenshots. The skill then takes the motion and timings from its genre guide.
- Only a brief? The skill stops when it has neither. Do what this exploration did: write one paragraph (the world, what the finger does, the big moment, how it ends), ask for two concept screens with Scenario (the calm first screen with every element of the genre, and the payoff), and hand those over as the screenshots.
- Say which networks you run, or "not sure": the build covers nine.
3Answer two questions
- Which genre is it? The agent offers the two closest genres with a reason each. Seven have a preset: tower defense, crowd runner, lane shooter, survivor, sort, match-3 and lane battle. With a preset, the level is a config file.
- Why would someone install after playing? A first touch that pays off at once, visible growth, one real choice, a near-fail ending with the player's own state on the end card.
4What the agent does
- Copies the preset, makes placeholders, and traces the level (paths, pads, lanes, board) on the plate with
preset_overlay.py. - Makes every asset slot with Scenario from your frames: the plate, the sprites, the HUD, the logo, a music loop and short sound effects. Each slot records the frame it was made from.
- Runs
tune.py: a good bot and a careless bot play the level until the good one wins and the careless one loses by a little. - Runs
build.py --networks all, thenqa.py --speed 2, thencapture.pyfor a win and a near-fail video.
5Check it yourself
- Open
qa/storyboard_vs_real.jpgfirst: every story frame of the good run next to its source frame. - Read
qa/report.json: 67 checks on all nine networks, including the exact CTA call per network. - Play
dist/web/index.htmlon a phone, with sound. - Load each package in its network's own preview tool before a campaign. The QA uses stand-in containers and proves the wiring; the network's own review is a separate step.
6Ship
| Network | Upload | Install tap calls |
|---|---|---|
| Meta | ZIP, 5 MB, index.html 2 MB | FbPlayableAd.onCTAClick() |
| ZIP, 5 MB | ExitApi.exit() | |
| AppLovin, Unity, MRAID | HTML, 5 MB | mraid.open(store) |
| Moloco | HTML, 5 MB | FbPlayableAd.onCTAClick() |
| Mintegral | HTML, 5 MB | install() |
| Liftoff | ZIP, 5 MB | postMessage("download") |
| Pangle | ZIP, 5 MB, with config.json | openAppStore() |
Google's Campaign Manager and Display & Video 360 profiles need a clickTag, which the google package does not carry: it targets App Campaigns.