AI Game Ad Generator

Turn a game's store link — or whatever media you have — into a finished, captioned mobile-game video ad. Paste an App Store / Google Play URL or drop screenshots and gameplay footage, and it builds a thumb-stopping UA creative (hook, mid payoff, and CTA end card) with burned-in captions for sound-off feeds. A store-link-to-video and gameplay-to-ad generator for mobile-game user acquisition.

Input
Output
Play Store URL → Video Ad Creative

~$4.50 per video·Run it free in the playground, then call it from your app.

What the game is, who it's for, and the angle you want. Can also carry a full creative direction — an ad scenario / shot list, specific gameplay moments, a hook, spoken lines, on-screen text, pacing, tone, or CTA — which the ad then executes (it only invents what you leave open). An App Store / Google Play link on its own also works.

Loading…

No inputs handy? Try one of these

Output appears here — run the skill, or pick an example to see a real input/output pair.

For developers

Run it from your own stack.

This skill is an API. One call runs the whole pipeline server-side as a long-running job and returns the result — from Python, plain HTTP, or an MCP-connected coding agent.

API access — MCP · Python SDK · cURL · JSON schemas
MCP· recommended for coding agents
claude mcp add --transport http puras https://mcp.puras.co/mcp

OAuth on first call — no key to paste. Then ask the agent to run game-ad-generator from skill puras/game-ad-studio.

CLI
pip install puras puras login # or set PURAS_API_KEY puras run puras/game-ad-studio/game-ad-generator -i key=value
Python SDK
import puras client = puras.Client() # PURAS_API_KEY from env result = client.run("puras/game-ad-studio/game-ad-generator", {"brief":"https://play.google.com/store/apps/details?id=com.supercell.brawlstars&hl=en","aspect_ratio":"9:16"})
HTTP API· wait=true blocks until the job finishes
curl -X POST "https://api.puras.co/v1/jobs?skillpack=puras/game-ad-studio&wait=true" \ -H "Authorization: Bearer $PURAS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"skill":"game-ad-generator","inputs":{"brief":"https://play.google.com/store/apps/details?id=com.supercell.brawlstars&hl=en","aspect_ratio":"9:16"}}'
Input schema (JSON Schema)
{
  "type": "object",
  "required": [
    "brief"
  ],
  "properties": {
    "logo": {
      "type": "image",
      "description": "The game's logo / icon (transparent PNG preferred). Shown on the end card."
    },
    "brief": {
      "type": "text",
      "maxLength": 2000,
      "description": "What the game is, who it's for, and the angle you want. Can also carry a full creative direction — an ad scenario / shot list, specific gameplay moments, a hook, spoken lines, on-screen text, pacing, tone, or CTA — which the ad then executes (it only invents what you leave open). An App Store / Google Play link on its own also works."
    },
    "style": {
      "enum": [
        "auto",
        "bold",
        "playful",
        "minimal",
        "premium"
      ],
      "type": "string",
      "default": "auto",
      "description": "Visual tone of the end card. `auto` decides from the game's genre."
    },
    "cta_text": {
      "type": "string",
      "default": "Play Now",
      "maxLength": 24,
      "minLength": 2,
      "description": "End-card button text, e.g. \"Play Now\", \"Install\"."
    },
    "language": {
      "type": "string",
      "maxLength": 12,
      "description": "Optional language code for the script / voiceover (e.g. \"en\", \"tr\"). Empty = the brief's language."
    },
    "template": {
      "enum": [
        "auto",
        "fail_to_success",
        "save_the_character",
        "talking_creator",
        "reaction_pip",
        "screen_record_pov",
        "satisfying_asmr",
        "before_after",
        "pattern_interrupt",
        "custom"
      ],
      "type": "string",
      "default": "auto",
      "description": "Which winning ad structure to build. `auto` picks the best fit for your media + genre; `custom` composes a bespoke one. Templates are starting points, not rails. See references/creative-playbook.md for what each does.\n"
    },
    "game_name": {
      "type": "string",
      "maxLength": 60,
      "description": "Optional. The game's name (otherwise read from the store listing / brief)."
    },
    "brand_color": {
      "type": "color",
      "description": "Accent color for the end card / caption highlight. Derived from the logo / art if empty."
    },
    "screenshots": {
      "type": "array",
      "items": {
        "type": "image"
      },
      "maxItems": 10,
      "minItems": 0,
      "description": "Gameplay screenshots / key art. Used as demo footage source, end-card references, and to read the art style."
    },
    "aspect_ratio": {
      "enum": [
        "9:16",
        "1:1",
        "16:9"
      ],
      "type": "string",
      "default": "9:16",
      "description": "Output frame — 9:16 (vertical), 1:1 (square), or 16:9 (landscape)."
    },
    "gameplay_videos": {
      "type": "array",
      "items": {
        "type": "video"
      },
      "maxItems": 5,
      "minItems": 0,
      "description": "Screen recordings of real gameplay. The strongest proof of gameplay — used as the hero footage of the ad."
    },
    "duration_seconds": {
      "type": "integer",
      "default": 15,
      "maximum": 60,
      "minimum": 8,
      "description": "Target length of the ad, including the end card. 15 s is the sweet spot; longer ads stitch extra segments."
    }
  }
}
Output schema (JSON Schema)
{
  "type": "object",
  "properties": {
    "video": {
      "type": "video",
      "description": "The finished ad creative (ends on the end card) — the single playable video on drive. The playground renders it with a <video> player.\n"
    }
  }
}
SpecDocs

Call AI Game Ad Generator from your app.

Run it free in the playground above, then wire it in with one call — from Python, TypeScript, or your coding agent over MCP. Every run returns an exact cost receipt.

Every run is billed to the cent — see pricing.