Craft

JSON prompting for AI ads: a practical guide

By James Tumbucon
Updated · 5 min read

JSON prompting means writing an image or video prompt as labelled fields (product, scene, lighting, camera, style) instead of one paragraph. The model still reads it as text, and no official guide we checked requires it. Its real value for ads is control: change one field, keep the rest, and compare models fairly.
On this page
  1. What is JSON prompting?
  2. Do Google, BytePlus or Kling recommend JSON prompts?
  3. Which tools do creators use JSON prompts with?
  4. How do creators use JSON prompts for ads?
  5. A JSON prompt template for product ads
  6. Can you use JSON prompts for AI video?
  7. Common problems and fixes

What is JSON prompting?

JSON prompting means writing your prompt as a set of named fields in JSON format, for example a product block, a scene block, a lighting block and a camera block, each with its own values. It replaces one long paragraph with a structure you can read, reuse and edit field by field.

The model doesn't run the JSON as code. It reads the braces, keys and values as text, the same way it reads a sentence. Whether that helps depends on the model and on how specific your values are, not on the format.

Do Google, BytePlus or Kling recommend JSON prompts?

No. None of the official prompt guides we checked on 12 Oct 2026 use JSON for prompts:

All of them show prose prompts or labelled shot lists.

What the vendors do document lines up with why JSON can work. Google's image advice is to be hyper-specific, to explain the purpose of the image, and to break complex scenes into steps. Its formula has five named parts: subject, action, location or context, composition, and style. A JSON prompt with those five keys is the same formula with brackets around it.

So treat JSON as a way to organise your thinking, not a special mode the model switches into.

Which tools do creators use JSON prompts with?

JSON prompts in the tutorials we reviewed are mostly for product stills, and the authors often run one prompt on two image models side by side. Based on 9 public tutorials posted between 31 Jan 2026 and 15 Sep 2026, reviewed by Anglr.

Tool What it is used for in this workflow Tutorials that used it
Nano Banana (Pro or 2) Renders the JSON product-photography prompt 7
GPT Image (1.5) The second model in a side-by-side test 5
Claude Writes the JSON from a product or a reference image 2
Seedance Animates a still, or renders straight from a JSON video prompt 2
MakeUGC The app the image or video is generated in 2

How do creators use JSON prompts for ads?

Three patterns come up across authors.

  1. Product fields kept separate from the scene. @Fujimoto_hina, @mehvishs25 and @Just_sharon7 give the product its own block (type, container, flavour or label) and put the action, the model or the setting in other blocks. For ads this is the useful part: you can swap the product block and keep the look, or keep the product and test a new scene.
  2. A settings block at the top. @john_my07 and @mehvishs25 open with global settings such as aspect ratio, style and focus, so every variant shares the same frame.
  3. The same JSON on two models. @Fujimoto_hina, @john_my07, @mehvishs25 and @Naiknelofar788 run one JSON prompt through Nano Banana and GPT Image and post both results. A fixed structure makes that a fair test, because only the model changes.

Two authors have an LLM write the JSON for them, so this step is attributed rather than general advice. @FynCas has Claude convert a reference look into a structured JSON prompt before generating the image. George Stock does the same for video, with Claude filling in "scene, framing, motion, dialogue, all locked in" before the JSON goes into Seedance 2.5.

A JSON prompt template for product ads

This template is ours. Its keys follow Google's documented formula for Nano Banana (subject, action, location, composition, style), plus Google's advice to quote any on-image text and state the purpose. Replace every value in brackets.

{
  "purpose": "static ad for [product] aimed at [audience]",
  "reference": "Image 1 is the product; keep its shape, colours and label exactly",
  "subject": "[product] [held by / placed on] [person or surface]",
  "action": "[what is happening in the frame]",
  "location": "[setting], [time of day]",
  "composition": "[camera angle], [shot size], [lens or depth of field]",
  "lighting": "[light source and mood]",
  "style": "[photographic or illustrated style]",
  "text_on_image": "\"[exact headline]\" in [font description], [position]",
  "keep_clear": "top and bottom of the frame free of text and objects"
}

Set the aspect ratio and the resolution in the tool, not in the JSON. Google's image models output 1K, 2K or 4K as a setting, so a resolution value in the prompt doesn't change the file you get.

If the model ignores a field, rewrite the same values as sentences in the same order. That is exactly what Google's guide shows, and it is the fastest way to tell whether the JSON or the content is the problem. The AI ad prompt builder writes the sentence version for you, and Nano Banana prompts has finished templates by ad format.

Can you use JSON prompts for AI video?

You can, but video models are documented around shot order, not fields. BytePlus recommends writing a complex Seedance video as a timeline-based storyboard: Shot 1, Shot 2, Shot 3, each with who, where, the action and the camera move. Google's Veo guide shows a timestamped list of beats.

A JSON video prompt with scene, framing, motion and dialogue keys, as George Stock describes, carries the same information. If a render skips beats, move the fields into ordered shots, keep one camera move per shot, and put spoken lines in the syntax the model documents: curly braces for Seedance, quotation marks for Veo. Our Seedance guide and Veo 3 guide cover the rest of each workflow.

Common problems and fixes

Problem Fix Source
The JSON names a resolution the tool doesn't output Set 1K, 2K or 4K in the tool; treat the prompt value as a style hint Google
Negative fields (no clutter, no text) don't give the result you want Describe what you want instead: an empty, clean surface Google
Long nested JSON for a multi-shot video loses beats Convert it into Shot 1, Shot 2, Shot 3 in event order BytePlus
Mixed languages inside the values Keep every value, and every spoken line, in one language BytePlus
You can't tell whether a model or a prompt is worse Run one fixed JSON on both models and change nothing else @Fujimoto_hina, @john_my07, @mehvishs25

JSON is a working method, not the result. What brands pay for is the ad that wins the test. If your ads already perform, Anglr pays AI creators on performance to remake winning scripts: see what we look for. More methods are on AI ad guides, including AI static ads and AI storyboards.

FAQ

What is JSON prompting?

Writing a prompt as JSON: named fields such as product, scene, lighting and camera, each with a value, instead of one paragraph. The image or video model reads the whole thing as text.

Does JSON prompting work better than normal prompts?

Not by itself. The official guides we checked from Google, BytePlus and Kling show prose prompts, and Google's advice is to be specific and give context. JSON helps you be specific and consistent, which is where the gain comes from.

Can you use JSON prompts with Nano Banana?

Yes. Creators paste JSON into Nano Banana Pro and Nano Banana 2 and get usable product images. Google's documentation doesn't mention JSON, so map your fields onto its formula of subject, action, location, composition and style.

Can you use JSON prompts for AI video?

Some creators do, with keys for scene, framing, motion and dialogue. For Seedance, BytePlus recommends a storyboard written as Shot 1, Shot 2, Shot 3, so convert JSON fields into ordered shots if results drift.

Should I put resolution in a JSON prompt?

Set it in the tool instead. Google's image models output 1K, 2K or 4K as a setting, and Veo takes resolution and duration as parameters, so a resolution value inside the prompt is at most a style hint.

Sources

Checked: 12 Oct 2026