URL-to-ad is the zero-decision front door: one product URL in, a brand-grounded ad battery out. It chains three things you could also run separately — site research, a brand kit, and the static-ads pipeline — into a single call.
POST /url-to-ad { url, sessionId?, includeVideo?, maxPages? }
What happens, in order:
- Site research — Wavemaker maps and scrapes the URL (billed the same as
POST /research/site) and compiles a factual brief. Claims in the ads are grounded in your pages, not invented from the domain name. - Brand kit — an org brand kit for that source URL is created or reused, so repeat runs stay consistent.
- Static ad battery — a mixed-format battery of 3 formats × 2 variants = 6 ads is queued, bound to your chat session if you passed one.
- Optional video ad — with
includeVideo(default on), a UGC-style commercial video is queued alongside. If the video engage fails, the response reports it — the ad battery still runs.
In the product, the Discover panel and the chat hero starter route pasted URLs through this same door. For a full brand video from a URL instead, see Brand videos from a URL.
Brand kits
A brand kit is structured brand truth: logos, palette, typography, voice, and rules.
GET /brand-kits → list org kits
POST /brand-kits → create
GET | PATCH | DELETE /brand-kits/{brandKitId}
POST /brand-kits/from-research → draft a kit from a completed site research
from-research prefills a draft from a succeeded research brief (the first ingested image is the logo guess) and returns it without saving — you review the draft and POST /brand-kits it yourself.
How a kit shapes a run
Reference a kit on a run (brandKitId) and engage applies it three ways:
- BRAND LOCK — palette, voice, and rules are stamped into the generation prompts so scenes stay on-brand.
- Logo — static ads prefer the kit’s real logo instead of re-rendering one.
- End card — the branded close of a video is built from kit props.
URL-to-ad wires all of this automatically; on other runs the kit is opt-in per run.