ScenarioExplorations Playable Ads
Create yours

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.

1Set up

  1. Unzip the skill into your agent's skills folder (for Claude Code, ~/.claude/skills/).
  2. Connect the agent to Scenario MCP at mcp.scenario.com and pick the team and project the art goes to.
  3. 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

3Answer two questions

  1. 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.
  2. 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

  1. Copies the preset, makes placeholders, and traces the level (paths, pads, lanes, board) on the plate with preset_overlay.py.
  2. 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.
  3. 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.
  4. Runs build.py --networks all, then qa.py --speed 2, then capture.py for a win and a near-fail video.

5Check it yourself

6Ship

NetworkUploadInstall tap calls
MetaZIP, 5 MB, index.html 2 MBFbPlayableAd.onCTAClick()
GoogleZIP, 5 MBExitApi.exit()
AppLovin, Unity, MRAIDHTML, 5 MBmraid.open(store)
MolocoHTML, 5 MBFbPlayableAd.onCTAClick()
MintegralHTML, 5 MBinstall()
LiftoffZIP, 5 MBpostMessage("download")
PangleZIP, 5 MB, with config.jsonopenAppStore()

Google's Campaign Manager and Display & Video 360 profiles need a clickTag, which the google package does not carry: it targets App Campaigns.

Create yours on Scenario