Ad studio

Overview
In the ad studio an ad is created in three steps — like a post in the content studio:
- What is it about? An idea from your strategy, a sentence, a product page ("URL to ad"), an item,
your own image or video — or a competitor's ad as a template.
- What should it become? Ad network(s), ad type and placements (feed, Stories, Reels …).
- Result per network and placement: copy within the network's limits, several variants for the
test, an image brief in the right aspect ratio, preview and pre-check.
On top comes the variant factory: from the result, one click creates a set of real variants — four by default, two to eight. Each has its own angle (problem and solution, customer voice, offer, lifestyle …), its own copy per placement and its own visual in the format of every placement, with the product photo as reference, the brand colors and room for the logo. Visuals are created without a click within the brand's automatic media budget. You review the variants card by card — keep, discard or try again; kept ones form the variant test at launch.
Launch campaign creates one ad campaign per network — paused at the network. Money only flows once someone with the approval right switches it live; the budget cap always applies. The AI writes the copy in the voice of your brand profile and uses the learnings from finished tests.
Open the studio with the Ad studio button on the Ads page and from the tasks under Goal & strategy ("Create ad").
Which ad types work per network
| Network | Ad types | Placements |
|---|---|---|
| Meta (Facebook, Instagram) | Image, video, carousel (2–10 cards), lead form, catalog | Feed (1:1, 4:5), Stories (9:16), Reels (9:16) |
| TikTok | Video, Spark Ad (existing post), lead form | Feed (9:16) |
| Image, video, carousel (2–10 cards), document (PDF), lead form, message, conversation | Feed; messages in the inbox | |
| Google, Microsoft, Pinterest, ChatGPT | the campaign types of these networks (see Connect ad networks) | per type |
Copy limits (the networks' recommendation for the full ad on a phone): Meta headline 40, primary text 125, description 30 characters · TikTok ad text 100 · LinkedIn headline 70, introduction 150, description 100; message subject 60, body 1,500, button 20 · Google and Microsoft headline 30, description 90. The AI keeps to them; anything longer is cut at the end of a word.
Core tasks
Start from an idea. At the top are Ideas from your strategy: the open advertising tasks of the active goal and ad ideas. New ideas suggests more — each with an angle, short description, recommended format and network; a focus steers them. Turn into an ad takes the idea as the source and pre-selects network and type. A task counts as done after the launch.
Suggestions with a reason. Every idea carries an approach (problem and solution, customer voice, offer, lifestyle …), a preselected product from the brand knowledge — never a sold-out one — and a reason with the figures it is based on: units sold, revenue, margin and stock of the product over the last 90 days or the figures of the occasion. Every Monday and on occasions (new product, overstock, new goal, decided test, fatigued ad, upcoming calendar occasion) ideas appear on their own; they are marked "On its own" or with the occasion. Set amounts and the daily limit under Marketing → Goal & strategy → Autopilot.
From a sentence, a page or an item. In step 1 pick the source: Sentence (what it is about), Link (ideally a product page — read through the secured outbound gateway and the ad's destination), Item or Own media (your images and videos are matched to the fitting placements).
Pick network, type and placement. In step 2 click the ad networks. Per network choose the ad type (tile) and the placements (feed, Stories, Reels …). Add the destination address, the countries and the number of variants (three to five — the variant test compares them). Create ads writes the result.
Polish copy and media. Each card in the result shows the preview as in the network. Variants can be edited, added and removed; Rewrite with a wish ("shorter", "start with a question"). Generate with AI opens AI media with the image brief and the placement's aspect ratio pre-filled — the cost is shown before the run. From the library takes existing media. In a carousel every card gets an image and a headline.
Image briefs to choose from. In the Variants card, Suggest image briefs proposes several image ideas (scene, perspective, light) — from source, brand profile, imagery and product photo. Pick one, edit it in the text field, suggest new ones (previous ones are not repeated) or write your own brief. It sets the visual direction of all variants.
Create variants. Choose the number (2–8, default 4 — set the default under Settings → Marketing → Studio variants) and the medium, then Create variants. Each variant gets a hook, copy for every placement within the network's limits and an image brief; visuals run in the background — one per aspect ratio of the placements (feed 4:5, Stories 9:16 …). A video is created only if you choose it or the suggestion calls for video. If the automatic media budget is used up, copy and image brief are still there; the card says so, and Create missing visuals (after raising the budget), Create image by hand (cost shown first) or From the library close the gap. A new set replaces variants not yet reviewed; kept ones stay.
Review like swiping. Variants come one after another: Keep (→), Discard (←) or Try again — optionally with a wish ("more emotional", "shorter"). The preview shows every placement; Image brief opens hook, copy and image brief for editing. Discarded variants (and those replaced by "try again") go into the brand's learnings as a signal — new suggestions avoid that angle. Back to review undoes a decision, signal included. The overview below lists all variants with their state.
What the types additionally need. Lead form: one of your forms and the address of your privacy policy — its questions become the form in the network. TikTok lead form: the ID of the instant form from TikTok Ads Manager. Spark Ad: link or ID of your own TikTok post or the creator's authorisation code. Conversation ad: reply buttons with a destination.
Read the pre-check. Below each preview it says what the network would reject: copy too long, media missing, wrong aspect ratio (Stories and Reels need portrait), too few cards, form missing. Red holds the launch, yellow is a hint. The same check runs before every push to the network.
Launch campaign. Per network enter daily budget and cap, optionally start and end, then Launch campaign (paused). Per network a campaign is created with one group per placement and one ad per variant — paused at the network. If the draft carries variants, every kept variant becomes one ad per placement with its copy and visual; from two on, the variant test runs and pauses the losers. For a carousel each variant carries its own cards: its own headline and description per card, the first card with its visual, the others with the images of the slot; change them in the variant card via Image brief, together with the copy. Without a kept variant nothing launches; if all are discarded, the copy variants apply again. Without a connected ad account it stays a draft. Switch live is shown only to users with marketing.ads.publish in the brand.
Leads land in the CRM. For lead form ads Octibiz fetches the leads from Meta, TikTok and LinkedIn every 15 minutes and creates them through the chosen form — like a request through the website: lead in the CRM, source (utm_source = network, utm_medium=paid), every lead exactly once.
Competitor ads as templates. Source Competitors: search the ad library of Meta (Ad Library) or TikTok (Commercial Content Library) by keyword or page ID in an EU country, view an ad and Use as template. Only the concept is taken over — type of hook, structure, offer format. Copy and images are created anew in your brand's style; other advertisers' images are never taken over. Their ads are protected by copyright and trademark law — a 1:1 copy is not allowed.
Fields in detail
The column What it does answers what changes in the system. The grey name is the API field: the same runs under it through automation and AI tools.
Steps 1 and 2
| Field | Required | Values / format | What it does |
|---|---|---|---|
Source source | yes | idea, text, url, product, media, competitor | What the ad is made from. |
What it is about brief | for sentence | text, at most 2,000 characters | Content or wish for the AI. |
Address url | for link | https://… | Page that is read; also the ad's destination. |
Item productUlid | for item | an item | Name, description and price go into the brief. |
Own media fileUlids | for media | library files | Matched to the placements by kind and format. |
Idea / task ideaUlid, taskUlid | for idea | an idea or task | Source; the task is done after the launch. |
Template competitor | for competitors | hit from the ad library | Concept and origin only — no media. |
Networks, type, placements targets | yes | [{platform, type, placements}] | One slot in the result per network, type and placement. |
Settings settings | mostly | list of settings | Destination address landingUrl (https://…): where the click leads, the system appends source tags · Countries countries (ISO codes, default DE): target area of the groups. The settings per ad type are listed under Result and launch. |
Variants variants | no | 1–5, default 3 | How many copy variants per slot. |
Result and launch
| Field | Required | Values / format | What it does |
|---|---|---|---|
Result per slot slots | yes | one slot per network, type and placement | Variants variants (headline, primary text, description, call to action — one ad per variant, texts are cut to the limits) · Media media (file and aspect ratio — images without one are measured) · Image brief mediaPrompt (template for the AI media) · Cards cards (file, headline, description, target — carousel cards). |
Settings per ad type settings | per type | list of settings | Lead form leadFormUlid (one of the brand’s forms): questions of the form in the network, leads reach the CRM through it · Privacy policy privacyUrl (required for Meta and LinkedIn lead forms) · TikTok instant form networkFormId (ID from TikTok Ads Manager) · TikTok post sparkPostId (link or ID of the promoted post) · Authorization code sparkAuthCode (code from the TikTok app for another account’s post) · Reply buttons buttons (1–5 × text up to 25 characters and target, conversation ad). |
Budget per network budgets | yes | daily budget and cap in cents | Campaign budget; the cap is mandatory. |
Start / end startsAt, endsAt | no | date | Campaign runtime. |
Variants
| Field | Required | Values / format | What it does |
|---|---|---|---|
Number of variants variantCount | no | 2–8, default 4 | How many real variants are created; kept ones count towards the maximum of 8. |
Image brief mediaPrompt | no | text up to 1,000 characters (per variant up to 2,000) | On the set: the chosen or own image brief — the visual direction of all visuals. On a variant: its own brief, visible and editable. |
Medium mediaKind | no | image, video | Image or video; without it, video only if the suggestion calls for video. |
Wish instruction | no | text | For Suggest image briefs or Try again: a direction such as "more people" or "more emotional". |
Language locale | no | de, en | Language of copy and suggestions; without it, the draft's. |
Review state status | no | review (to review), kept, discarded | Kept ones become ads in the variant test at launch; discarded ones go into the learnings as a signal, review takes that back. |
Hook title | no | text up to 200 characters | The core of the variant in one sentence. |
Copy per slot texts | no | per slot headline, primary text, description, call to action | The ad of this variant in this placement; trimmed to the network's limits. |
Carousel cards cards | no | per carousel slot a list: headline, description per card | This variant's own cards, trimmed to the network's limits; as many cards as the slot has images — the first with the variant's visual. An empty list takes the slot's cards again. |
Visuals media | no | per aspect ratio one file of the brand (image or video) or empty | Own visual instead of the generated one; empty removes it. State per visual: creating, ready, skipped (budget, with notice), failed. |
Interface and automation only
Generate ad ideas (POST /v1/marketing/ad-studio/ideas) — the same path as the Ideas button in the studio:
| Field | Values / format | What it does |
|---|---|---|
brandId | a brand | Which brand the ideas are for; requires managing ads in that brand. |
count | 1–12, default 6 | How many ideas are created. |
focus | text | Focus, e.g. “autumn campaign” or “new B2B customers”. |
locale | de, en | Language of the ideas; without it, yours. |
Settings & permissions
marketing.ads.manage— use the studio, create and change drafts, launch campaigns (paused).marketing.ads.publish— switch campaigns live; only this right moves money.marketing.ads.view— see drafts and the access status of the ad libraries.platform.ai_media.create— generate images and videos with AI (cost shown first). The visuals of variants
do not need it: they run without a click within the brand's automatic media budget (Settings → AI).
- AI: tasks
marketing.ad_ideasandmarketing.ad_studio(model routing under AI settings, brand
budget, at most 20 calls per minute and person).
- Ad network access: Meta needs the Facebook page (
page_id), for the EU beneficiary and payor
(dsa_beneficiary, dsa_payor), for catalog ads catalog_id, optionally pixel_id · TikTok the identity (identity_id, identity_type) or a display name (display_name) · LinkedIn the company page (author_urn) and a sender for messages (sender_urn) — all on the network's integration (Settings → Integrations).
- Ad libraries: Meta uses the Meta connection's token (or
ad_library_token); identity confirmation
and access to the Ad Library API are required. TikTok needs an approved Commercial Content API app (research_client_key, research_client_secret on the TikTok connection). The studio shows the status under Competitors.
- API:
POST /api/v1/marketing/ad-studio/ideas,GET|POST /api/v1/marketing/ad-studio/drafts,
GET|PATCH|DELETE /api/v1/marketing/ad-studio/drafts/{ulid}, POST …/{ulid}/generate, POST …/{ulid}/regenerate, POST …/{ulid}/media-prompts, POST …/{ulid}/variants, POST …/{ulid}/launch, GET|PATCH /api/v1/marketing/ad-studio/variants/{ulid}, POST …/variants/{ulid}/retry, POST …/variants/{ulid}/media, GET /api/v1/marketing/ad-library, GET /api/v1/marketing/ad-library/access; rules per type under GET /api/v1/marketing/ad-platforms (formats).
FAQ & troubleshooting
"Launch campaign" is greyed out. A slot has a red issue — usually the image is missing or a text is too long. The reasons are shown below the preview.
After launching it says "Created as draft — the ad account is not connected". No ad account is connected for the network in this brand. The campaign stays a draft; after connecting it can be created and switched live from the campaign.
LinkedIn messages are rejected ("not to members in the EU"). LinkedIn does not deliver message and conversation ads to members in the EU. Pick a location outside the EU or another ad type.
Meta reports "beneficiary and payor (DSA)". For ads in the EU Meta requires both. Set dsa_beneficiary and dsa_payor on the Meta integration.
The video has "no thumbnail". The network is still processing the video. Launch again in a few minutes or attach a cover image as second media.
The ad library says "not set up yet". Access is missing — the steps are shown in the studio under Competitors. For TikTok, TikTok itself reviews the application for the Commercial Content API; that takes time.
The variants have copy, but no visual. The brand's automatic media budget is used up (or set to 0), or the image model has no price — the notice is shown on the variant. After raising it under Settings → AI, Create missing visuals catches up; otherwise Create image by hand or From the library.
An image is created instead of a video. Octibiz creates video via Higgsfield. Without Higgsfield access an image is created — the notice is on the card.
May I take over a competitor's ad? The concept yes, the ad no. The studio writes new copy and creates its own images; others' copy, images, slogans and brands stay theirs.