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.

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_video call (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 referenceHooks and settings
What you provideA source ad video to cloneMenu choices you assemble
What it controlsThe 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 generationNo — 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_ids on 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.