Skip to content

Campaigns

A campaign is where a piece of work starts. It holds the brief, binds to one template, and defines the matrix of combination packages you want to produce.

What works today

Everything on this page is wired end to end: briefs, template binding, axes, exclusions, the live matrix preview, per-field binding, and activation. The steps that follow a campaign, expanding the matrix, rendering each combination package into a finished video, reviewing it, then pushing or exporting the approved ones to a channel, are wired too: a template whose video field binds the storyboard generates a fresh clip per combination. The nightly KPI pull is built for owned YouTube uploads and Tracked Campaigns; the cross-channel roll-up over that data is the frontier still ahead. See Generation and render and Activation.

Starting a campaign

A new campaign needs only a name. You then choose how to begin:

  • Set up manually. You land on the empty step rail and build each step yourself.
  • Guided start. Kai interviews you about the campaign, then proposes the matrix, the brief, and the language as approval cards you accept or edit. Nothing is locked in: everything it proposes stays editable by hand afterward, and you can keep building manually at any point.

The brief

Each campaign carries a structured brief: its key message, tone, and mandatories. You can also write the campaign as a plain note and let Draft with AI fill the three fields from it. The brief is versioned. Klyo keeps a version number that only moves when the content actually changes, and it guards against two people overwriting each other's edits. The audience is not a brief field: it is a matrix axis (an "Audience" catalogue), so it varies per combination.

One campaign, one template

A campaign binds to exactly one template. That template decides the shape of the creative: which media slots and fields need filling, and what orientation and resolution the output has. You pick the template from the ones already synced into Klyo, and you can clear the binding to choose another. See Templates for how templates get into Klyo.

Axes: the dimensions of the matrix

An axis turns one of your catalogues into a dimension of the matrix. Add the "Segments" list as an axis and you get one combination package per segment. Add "Products" as a second axis and you get every segment times every product.

For each axis you can:

  • Add a catalogue as a new dimension.
  • Rename it and reorder it.
  • Narrow it to a curated subset of catalogue items, instead of using the whole list.
  • Remove it.

Exclusions: dropping combinations

Not every combination makes sense. An exclusion is a rule that drops any combination containing all of the catalogue items you name (you name at least two). For example, exclude "Winter" together with "Beachwear" and every combination package that would pair them disappears from the matrix.

The matrix preview

Before you expand anything, the matrix preview does the arithmetic for you: the total number of combinations, how many survive your exclusions, and a warning when there are so many exclusions that the count is an estimate. It is a live read, so you can tune axes and exclusions and watch the combination package count move.

Field bindings: filling the template

A template's dynamic fields each bind to a source matched to the field's kind. You set these on the campaign's Package step, which also holds the reference images the generation looks at (the sample's catalogue item images plus any moodboards or product shots you add). The render config (video model, resolution, and the voice) lives in Campaign settings, the gear on the campaign row:

  • Pin an existing asset: fix a media field to a file from your asset library, the same image across every combination package (a logo, a brand shot). The asset picker also takes a fresh upload on the spot, including by dragging a file straight onto it, so you never have to leave the campaign to add one.
  • Bind a matrix axis: fill a media field from the linked image of each combination's catalogue item on that axis, so the field varies per cell.
  • Bind the storyboard video: fill a media field with the storyboard's assembled clip, generated fresh for each combination.
  • Hardcoded text: set a text field to a fixed literal.
  • Ad-copy reference: bind a text field to one of the campaign's four ad texts (headline, long headline, description, call to action).
  • Pin a voiceover: bind an audio field to a voiceover asset from your library, the same track across every combination.
  • Bind the storyboard voiceover: fill an audio field with the voiceover generated from the storyboard's scene lines, a fresh narrator track per combination. See Generation and render.

The storyboard owns the video slots and authors them scene by scene, so they are not bound here. How those bindings render is covered in Generation and render.

Activation

Once a combination package is rendered and approved, you activate it: push it live or hand it off to the channel it was built for. Activation runs in the Activate phase of the builder, and a cross-campaign Activation queue collects every approved combination in one place.

The target and release mode

You choose the campaign's activation target on the Activation plan step, ahead of the template, so Klyo can show only the templates whose format that target accepts. The step separates hosting from advertising, because they are not the same thing: uploading a video to your own YouTube channel is organic publishing, not a paid ad. A video only runs as a YouTube ad through Google Ads or DV360, each of which points at the YouTube-hosted video. The step walks the choice in order:

  1. How should these run? Organic (publish to your own YouTube channel), a paid ad, or files only (export and handle it yourself).
  2. Which ad platform? (paid only) Google Ads, the standard way to run a YouTube video ad, or DV360, the enterprise programmatic buy.
  3. Which campaign type? (Google Ads only) Demand Gen (YouTube, Discover, Gmail), Video reach (awareness on YouTube), Video view (views on YouTube), or Performance Max (every Google network).

Each later question appears once the one above it is answered, and changing an earlier answer resets the rest. The step closes with hosting: the video always hosts on YouTube (that upload is the release for organic, and the video each ad references for a paid path), and you can additionally upload a copy of each creative into a Campaign Manager 360 advertiser's library for cross-channel tracking and open-web serving (pick the advertiser when you turn it on; a CM360-hosted video cannot serve YouTube ads, so this never replaces the YouTube upload). The plan summary shows the resolved path (hosting, release, where it ends up), and the same preview appears on the Template and Publishing steps. The Template step shows the chosen target and jumps back here to change it. When the connection a path needs is missing, its card is locked with a "Connect X to unlock" pointer; every path uploads through YouTube first, so YouTube is the connection each one unlocks on. (Files only needs no connection.) Each target has a release mode that decides what activation does:

  • Automated (organic, your own YouTube channel): Klyo uploads each approved video to your channel as content and records where it went. You can upload ahead of the release with Hosting, so a push reuses the banked upload instead of uploading again. Until your YouTube API project passes its compliance audit the upload lands Private whatever privacy you set, then unlisted once it clears; set a video public in YouTube Studio to serve it.
  • Assisted (Google Ads: Demand Gen, Video reach, Video view, Performance Max): you build the campaign, budget, and targeting in Google Ads yourself, and Klyo delivers the finished creative into it. On the Publishing step you browse the connected account and pick the ad group the release lands in. For Demand Gen the delivery is a live push: Klyo creates a paused video ad in that ad group, referencing the hosted YouTube video, your ad copy, business name, and logo, and you enable it in Google Ads after its policy review. For Video reach and Video view Google's API cannot create the ad, so Klyo gives you a guided placement checklist (paste-ready ad name, video URL, and copy per creative), and after you create the ads in Google Ads a Verify pass reads the ad group back and confirms each one. Performance Max still hands off through the pack (a metadata sheet plus a checklist).
  • Export (DV360): Klyo builds the pack with a generated Structured Data File (SDF) that you upload into DV360.

The publishing profile

The Publishing step is where you name and describe every activated video. Its title, description, tags, and landing URL are templates that carry {{variables}}, so {{Product.title}} spring launch resolves to a distinct title per combination. The variables on offer are each matrix axis's catalogue item fields plus the campaign name and its ad copy, so a naming taxonomy reuses what you already authored. The profile also sets the upload's privacy, video category, made-for-kids flag, and synthetic-content disclosure, and for a Google Ads or DV360 target the business name, call-to-action preset, and display paths the pack carries. For a Google Ads ad target the step also holds the Google Ads ad group card: browse the connected account's existing campaigns and pick the ad group your release lands in, and for Demand Gen pick the square logo the ad requires (at least 128 by 128, from your asset library). The step needs a defined matrix, since those catalogue item variables come from it. A campaign with no saved profile activates under safe defaults (unlisted, synthetic-content disclosed).

Hosting

Hosting uploads an approved video to your YouTube channel as unlisted, ahead of any release. It creates no ad and serves nothing: the upload just sits on the channel, banked. A later Activate or handoff pack then attaches that same upload to your ads instead of uploading it a second time. Reuse holds per channel: a video hosted through one channel is skipped when you host or activate through that channel, and a different channel uploads it again.

Host from the builder's Hosting step, or from the Host on YouTube action in the queue. Both pick the approved combinations, run them through the host dialog, and mark each one Hosted with a link to the video. Hosting spends the daily YouTube upload quota, so the step and the dialog show today's headroom and let you stagger a large matrix across the midnight reset. You do not have to host: Activate still uploads an unhosted cell directly.

A campaign can also host a copy in Campaign Manager 360: turn it on in the Activation plan step's hosting section and pick the CM360 advertiser. The Hosting step then uploads each creative twice, to YouTube and into that advertiser's creative library, and shows both marks per row. The CM360 copy is for cross-channel tracking and open-web serving; it cannot serve YouTube ads, so it never replaces the YouTube upload, and it does not spend the YouTube quota.

Hosting is why you can split a release: upload everything on quiet days, check it on the channel, then activate or hand off later without spending the quota again. Until your YouTube API project passes its compliance audit every upload lands Private whatever privacy you set, then unlisted once the audit clears; set a video public in YouTube Studio to serve it.

The queue

The Activation queue lists approved combinations for the campaign (or every campaign, on the standalone page). A connection-health strip at the top answers "can I push right now": it stays quiet while every channel is healthy and expands with the reason and the repair when one needs attention. Select the ones you want, then Host on YouTube to bank the uploads unlisted ahead of release (see Hosting), Activate to push a YouTube selection, Push to Google Ads for a Demand Gen selection with a picked ad group (Klyo creates the paused ads live and reports per creative), Placement checklist and Verify placements for a Video reach or Video view selection (create the ads in Google Ads from the checklist, then let the verify pass confirm them), Prepare handoff for a Google Ads or DV360 pack, or Download files to build the export pack. Hosting leaves the combinations in the queue; handing off and downloading are terminal: those combinations leave the queue and their videos freeze, so Klyo confirms first.

The push dialogs guard the easy mistakes. If your selection mixes combinations built for different release paths, the dialog flags it. If a campaign in the selection is still publishing on defaults, the Activate dialog names that campaign and links its Publishing step. The channel picker defaults to the campaign's pinned channel.

The History tab is the durable record of what went out. Filter it by outcome, channel, and date, read the summary strip across the top, and note that its badge counts the rows that still need you (failed plus needs verification), not every row. Each row's status is one of Hosted, Uploaded, Activated, Handed off, Failed, or Needs verification. A Hosted row is an upload banked for reuse, with nothing released yet. Handoff and export packs are rows here too: re-download the stored pack, mark it imported once you have loaded it into the channel, and record the DV360 line-item id the checklist told you to capture.

Channels are connected once per Organization on the Organization page's Connections tab. See Channel connections.

What you can do today

  • Create, rename, edit, and delete campaigns.
  • Fill in and revise the brief.
  • Bind and unbind a single template.
  • Add, rename, reorder, curate, and remove axes.
  • Add and remove exclusions.
  • Preview the live matrix count.
  • Bind each dynamic template field to a source: a pinned asset, a matrix axis, the storyboard video, a hardcoded text, an ad-copy reference, a pinned voiceover, or the storyboard voiceover generated per combination.
  • Choose an activation target, name each video with a publishing profile, host approved videos to YouTube unlisted ahead of release, and activate approved combinations (push to YouTube, or hand off a Google Ads or DV360 pack).

The next step, turning the matrix into combination packages, is on the Render Queue page.

A Digitl product. This guide covers what is built today, not the full roadmap.