There are two ways to structure a UGC video ad in Higgsfield’s Marketing Studio. The hooks and settings path lets you assemble a concept from building blocks. The ad reference path does the opposite: you hand Marketing Studio a video of an ad that already works, it analyzes the whole scenario — scene composition, pacing, hook, narration — and rebuilds that structure around your product. It is the “make a video like this one” path.
This deep-dive covers when to use an ad reference, how to create one, the two gotchas that trip everyone up, and how to generate from it. It assumes the Marketing Studio overview.
What an ad reference is — and is not
An ad reference captures the scenario of a source video: how it opens, how it paces, what the hook is, how the narration is structured. It does not copy the original footage or the original product. Think of it as extracting the skeleton of an ad you admire, then refilling it with your own product and presenter.
Reach for it when you want to clone a proven structure rather than invent one: a winning ad of your own you want to scale, or a format you have the rights to reuse. If instead you want to design the concept yourself, use hooks and settings. The two are mutually exclusive on a single generation.
Step 1: Get the source video in
Here is the first gotcha, and it surprises people: there is no URL ingestion.
You cannot paste a TikTok, Instagram, YouTube, or plain HTTPS link. Marketing Studio
builds an ad reference from a video file you have uploaded as a chat attachment;
the attachment’s media id becomes the video_input_id the reference is created from.
So the real first step is: download the source video to a file, then upload that file in your Higgsfield-connected client. If you only have a link, the assistant cannot fetch it for you here — download it yourself first.
Use content you have the right to reference. Build references from your own ads, licensed material, or formats you are permitted to reuse. Recreating a competitor’s exact branded ad can raise real IP problems — use references to learn structure, and bring your own creative and brand.
Step 2: Create the reference
With the video uploaded, create the ad reference through the Marketing Studio tool
(show_marketing_studio with the create action, type: "ad_reference"), passing
the video_input_id. You can optionally link an avatar and a product to it for
organization:
show_marketing_studio
action: "create"
type: "ad_reference"
video_input_id: "<uploaded video media id>"
avatars: [ { id: "<avatar id>", type: "preset" } ] # optional, organizational
product_ids: [ "<product id>" ] # optional, organizational
Analysis runs asynchronously: the reference starts in a pending state and moves
to completed (or failed) once Higgsfield has parsed the scenario. The result is
a concept — the structured description of the ad it extracted.
Step 3: Review and edit the concept
Once the reference is completed, you can read and edit the extracted concept
before spending anything on generation. This is a free, text-level step, and it is
where you make the borrowed structure fit your product — fixing anything the
analysis misread, or adjusting a beat. Edit through the update action with the
reference’s id, supplying either plain text or structured JSON:
show_marketing_studio
action: "update"
type: "ad_reference"
ad_reference_id: "<the reference id>"
edited_concept_text: "<your revised scenario>"
Editing is only allowed once the reference has finished analyzing (status
completed or failed). Treat this as the cheap place to iterate: get the concept
right in text before you pay to render video.
Step 4: Generate around your product
Now generate a marketing video that follows the reference’s scenario. Here is the second and more important gotcha: the avatar and product are not auto-pulled from the ad reference. Even if you linked them in Step 2, those links are organizational only — the generator reads the avatar and product from the explicit fields on the generation call. You must pass them again:
generate_video
model: "marketing_studio_video"
ad_reference_id: "<the reference id>"
avatars: [ { id: "<avatar id>", type: "preset" } ] # REQUIRED here, not inherited
product_ids: [ "<product id>" ] # REQUIRED here, not inherited
generate_audio: true
The reference drives the scenario; the avatar and product fields drive who and
what appears. Want the same structure with a different product or presenter? Pass
different ids — the reference still shapes the scenario. And because an ad reference
replaces the explicit hook-and-setting composition, do not pass hook_id or
setting_id alongside it.
The link-versus-generate trap, stated plainly
This is the single mistake to avoid, so it is worth isolating:
- Linking an avatar or product to the ad reference (Step 2) is bookkeeping. It records an association; it does nothing at generation time.
- Passing an avatar or product on the
generate_videocall (Step 4) is what actually puts them in the video.
If your generated ad comes out with a generic presenter or the wrong product, this is almost always why: you linked but did not pass.
Ad reference vs hooks and settings
| Ad reference | Hooks and settings | |
|---|---|---|
| What you provide | A source ad video to clone | Menu choices you assemble |
| What it controls | The whole scenario (composition, pacing, hook, narration) | The opening beat and the location |
| Best for | “Make a video like this proven ad” | “Design this concept myself” |
| Combine the two? | No — mutually exclusive on one generation | No — mutually exclusive |
Pick one path per generation. To compare approaches, run two separate generations and judge the results.
Workflow tips
- Reference your own winners. The highest-value use is scaling an ad that already performs — clone its structure across new products.
- Edit the concept before you render. The text edit is free; a re-render is not. Fix the scenario in Step 3, not by regenerating repeatedly.
- Reuse one reference across products. A single strong scenario can generate ads
for many SKUs — just change the
product_idson each generation. - Watch the status. Do not try to generate before the reference is
completed; the concept is not ready until then. - Always pass avatar and product explicitly. Every time. The links do not carry.
Recap
An ad reference recreates a proven ad’s scenario around your own product. You upload
the source video as a file (no URLs), create the reference, let it analyze the
scenario into an editable concept, tweak that concept for free, then generate with
marketing_studio_video — passing the avatar and product explicitly, because the
reference’s own links do not carry into generation, and leaving hooks and settings
off, because the reference replaces them. Use it to scale structures that already
work, on content you have the right to reference.