πŸ—ΊοΈ The Map Β· start here

The Map β€” four tasks, one status each

Everything you do lives in four tasks. Click any box on the map or any Β§ link under a step to read the full rule. Status pills: Done βœ“ = you run it Β· Learning = you run it, we check together Β· Missing rule = no rule yet, goes to the call Β· Pending = task not built yet Β· In testing = the tool part works but is still being edited to be "no-thinking" for you. Pick the status from the dropdown β€” saved in your browser.

1TASK 1 Β· NEW PRODUCT β†’ SCALEhandoff Testing dept β†’ Scaling dept Β· trigger = NEED SCALLINGβ‘  Flag arrivesClickUp task β†’ NEED SCALLING.Nita takes it.NITA βœ“ DONEβ‘‘ OnboardCode + URL β†’ Auto-fill β†’ Save.Research β†’ Creative Map.NITA βœ“ DONEβ‘’ GateTest to THREE winners.3 Γ— (β‰₯€100 Β· ROAS β‰₯ 2) β†’ CBO.NITA βœ“ DONEβ‘£ Launch CBOAcq - (DACH) #01 Β· CBO €50/day.All 3 winners duplicated in.CT €20 ABO stays Β· IN SCALING.NITA βœ“ DONE2TASK 2 Β· WEAKEST PRODUCTS (last 7 days)two parts: ADS / STORE-LP β†’ act on the weak oneβ‘  Find the weakestDashboard, red cards first (7 d).ROAS Β· CPC Β· Cost/ATC Β· sales.NITA βœ“ DONEβ‘‘ Which part is weak?CPC β‰₯ €0.99 / no carts β†’ ADS.CPC <€0.80 Β· cATC >€25 β†’ STORE.NITA βœ“ DONEADS weak β†’ refresh creativeStatics from the tool β†’ done.Video scripts: revise + approve.STATICS βœ“ DONEVIDEO Β· LEARNINGVideo: approve/revise β†’ launchFollow up the editor until the adis approved, then launch it.LEARNINGSTORE-LP weak β†’ offer moveβˆ’β‚¬5 / βˆ’β‚¬10 or free gift (default).1 change β†’ 3 days β†’ keep or revert.MISSING RULELog the case β†’ the callproduct Β· move Β· 3-day result.Learn from the live case together.NEED CALL Β· rule from live cases3TASK 3 Β· DAILY MONITORevery live ad Β· KILL / SCALE to CBO / LAUNCH new ads Β· βœ“ DONEEvery day Β· ⚑ Needs actionLive Ads: rules sorted every ad.Kills first, then scales.NITA βœ“ DONEπŸ”΄ KILL rowsCopy ad ID β†’ Ads Manager β†’ pauseβ†’ βœ“ Done (winner guard Β§2.3).NITA βœ“ DONEπŸ† SCALE rows β†’ CBOVideo: >€50 Β· ROAS >1.5Image: β‰₯€100 Β· ROAS β‰₯2 β†’ duplicate.NITA βœ“ DONEπŸš€ Launch the new adsApproved ads β†’ CT adset (€20 ABO).NITA βœ“ DONE4TASK 4 Β· NEW TASKS TO BUILDsupport Β· supplier Β· email Β· each becomes its own task linked into Task 2 / 3Support β†’ loopSame defect Γ—3 β†’ pause product ads Β· open case.Repeated question β†’ LP / FAQ fix.PENDING Β· NEW TASKSupplier β†’ loopStock cover < 15 d + lead time β†’ no scale / pause.Shipment delay β†’ pause the product's ads.PENDING Β· NEW TASKEmail β†’ loopPlan ready each week.Nita confirms β†’ send.PENDING Β· NEW TASKgate NO
Read of the map: Task 1 and Task 3 β€” you run them. Task 2 β€” statics done; video scripts (revise + approve) learning; STORE-LP has no rule yet: each case is logged and taken to the call, the rule is learned from live cases. Task 4 β€” support Β· supplier Β· email are new tasks to build. The tool itself is still in testing: being adapted for better output and direct actions, so you execute without thinking β€” every "Done" is done on today's tool and gets easier as it improves.

The process β€” one line per step

Nita β€” how to use this list: pick the status from the dropdown on each line. If a step is not clear or you want it explained, set it to Need call ❓ β€” that is the list we go through on the weekly call. Everything is saved in your browser.
AEvery day Β· ~15 min
1
Open Dashboard β†’ red cards first
2
⚑ Needs action β†’ kills first β†’ pause in Ads Manager β†’ βœ“ Done
3
πŸ† Scale rows β†’ duplicate winner (video or image) into CBO β†’ βœ“ Done
4
πŸ”§ Fix rows β†’ do what the row says
5
πŸ“ž rows β†’ open product case for the call
6
Check NEED SCALLING list β†’ new flag = start Task D
7
Launch approved ads β†’ CT adset (€20 ABO)
BWeakest product Β· ADS weak β†’ refresh
1
Confirm on 7 d: ROAS < 1.6 or CPC β‰₯ €0.99
2
Open refresh queue (worst adset first)
3
Statics: generate β†’ check β†’ 🎯 to media buyer β†’ launch CT01-Statics
4
Video scripts: generate β†’ revise β†’ approve
5
Video: follow up editor β†’ approve or revise β†’ launch CT01-Video
CWeakest product Β· STORE-LP weak β†’ offer move
1
Product πŸ“ž for 7 d β†’ open product case
2
Pick the move on the call (βˆ’β‚¬5 / βˆ’β‚¬10 or free gift)
3
One change β†’ 3-day read β†’ keep or revert
4
Log: product Β· move Β· result β†’ next call
DNew product β†’ NEED SCALLING β†’ onboard β†’ CBO
1
Take the task, write the numbers in
2
Onboard: code + Shopify URL β†’ Auto-fill β†’ Save
3
Research β†’ Creative Map
4
Gate: test to 3 winners (each β‰₯ €100 Β· ROAS β‰₯ 2.0 in CT) β€” only then the CBO
5
Create CBO €50 Β· Acq - (DACH) #01 Β· duplicate winners (video or image)
6
CT stays: Video + Statics €20 ABO, never mixed
7
Feed CBO: top-3 angles β†’ scripts β†’ editors β†’ β™» iterate
8
ClickUp β†’ IN SCALING
ENew tasks to build Β· support Β· supplier Β· email
1
Support β†’ loop: defect Γ—3 β†’ pause ads Β· repeated question β†’ LP/FAQ
2
Supplier β†’ loop: stock < 15 d + lead time β†’ no scale Β· delay β†’ pause
3
Email β†’ loop: weekly plan ready β†’ Nita confirms β†’ send
1️⃣ Task 1

New product β†’ Scale

Handoff from the Testing dept: a product flagged NEED SCALLING β†’ onboard β†’ gate β†’ launch our structure. Two sub-sections: Β§3 onboard β†’ gate β†’ CBO Β§1 campaign structure & launch. Map: πŸ—ΊοΈ

Task 1 Β· sub-section Β§3

New product β†’ Scale β€” NEED SCALLING β†’ onboard β†’ gate β†’ CBO

A NEED SCALLING flag starts a LEARNING phase β€” not a scale. Onboard the product β†’ generate new videos + statics β†’ test until THREE ads each pass the winner line (β‰₯ €100 Β· ROAS β‰₯ 2.0 in CT) β†’ only then build the new €50 CBO with all 3 winners inside. Three winners rotating = ad fatigue much harder to hit.

πŸ”’
A flag lets you look at scaling β€” not scale. When a product is flagged you onboard it and build fresh creative, but duplicating its ads into the €50 CBO is gated (Β§3.2). Everything below the bar goes back into testing.

3.1 The trigger β€” "Need Scalling" in the testing list

  • Source: the ClickUp list 03 - Media Buyer - Product Testing.
  • The media buyer sets a winner's status ACTIVE β†’ NEED SCALLING (currently e.g. DEN-047 Pflegebock, DEN-039 Zielruhe, DEN-059 ZoomMeister). That flag is the only trigger.
  • Every task in NEED SCALLING = one product to onboard. The tool pulls this list live (Dashboard β†’ πŸ” Products to onboard).

3.2 The decision β€” one gate, three paths

The gate (updated 18 Aug 2026): no CBO before THREE proven winners. After NEED SCALLING the product is onboarded, gets fresh videos + statics, and stays in TESTING until 3 ads each pass the winner line (β‰₯ €100 spend Β· ROAS β‰₯ 2.0 in CT β€” the Β§2.2 graduation row). Only then is the new €50 CBO created β€” with all three winners duplicated in. One winner burns out; three rotating make ad fatigue much harder to hit.
🏷️ Product flagged NEED SCALLING
β–Ό
THE GATE1️⃣ onboard β†’ 2️⃣ new videos + statics β†’ 3️⃣ THREE winners (each β‰₯ €100 Β· ROAS β‰₯ 2.0 in CT) ?
β–Ό
YES 3 winners found
πŸ† Build the NEW €50 CBO Β· duplicate all 3 in
NO CPC < €0.80 Β· good ads
πŸ“ž FOR THE CALL
NO CPC > €0.80 Β· weak ads
🎨 ITERATE on testing

The gate decides where the ads go β€” to the CBO, or back into testing. Good ads + low ROAS = a funnel problem (Β§2.4), not a creative one.

πŸ† SCALE Gate passed Β· 3 winners in CT (each β‰₯ €100 Β· ROAS β‰₯ 2.0)

Do:

  1. Onboard the product (Β§3.4) and build fresh creative (Β§3.5–3.6) to keep the CBO fed.
  2. Duplicate the winner videos into a new €50 CBO (Β§3.7). Originals stay running in the test campaign.
  3. Move the ClickUp task β†’ IN SCALING (Β§3.8).
Never: duplicate an ad that has not hit its trigger (Β§2.5) β€” a winner is a winner, video or image.
πŸ“ž FOR THE CALL ROAS < 2.0 Β· CPC < €0.80 β€” good ads, weak conversion

Do:

  1. Notify the team to fix the conversion rate β€” LP / offer / price / checkout (Β§2.4).
  2. Hold β€” the creative isn't the problem, so don't scale and don't burn new creative on it.
  3. Re-check once conversion is fixed; if it clears the gate β†’ take the SCALE path.
Never: duplicate the ads to the CBO.  (This is the DEN-039 case β€” see Β§3.3.)
🎨 ITERATE ROAS < 2.0 Β· CPC > €0.80 β€” weak ads, fix the CPC first

Do:

  1. Onboard the product (Β§3.4) β†’ research (Β§3.5) β†’ new creatives to fix the weak hook / high CPC (Β§3.6).
  2. Launch them on the TESTING campaign β€” not the CBO.
  3. Iterate until a creative hits ROAS β‰₯ 2.0, then follow the SCALE path.
Never: duplicate the current (weak) ads to the CBO.

3.3 Real case β€” DEN-039 Zielruhe Tripod Shooting Rest

€514
Spend
10
Sales βœ“
1.58
ROAS βœ— (<2)
€0.73
CPC (good)
83.7%
LP reach
Reading: 10 sales βœ“ but ROAS 1.58 < 2.0 βœ— (lifetime). The ads are good β€” CPC €0.73 (< €0.80), strong CTR (2.06%), 84% reach the LP β€” so the weakness is conversion, not creative. β†’ πŸ“ž FOR THE CALL fix the conversion rate. Do NOT scale to the CBO.

3.4 Onboard the product in the tool

With Tailscale connected (Β§0), open the tool at http://100.91.34.1:8100/ β€” you land on the Dashboard (no deep-link to a tab).

  1. Open πŸ” Products to onboard β€” it lists exactly the NEED SCALLING products (↻ pulls live from ClickUp). Click the product (or + Add new product).
  2. Enter the Product code (digits, e.g. 15) + the Shopify URL.
  3. Auto-fill β†’ scaffolds name, price, proof and live Meta campaigns from Shopify + Windsor. Review it.
  4. Save β€” the product is now in the tool.

3.5 Research (Deep Research File β†’ Creative Map)

Go to the Research tab. Order matters:

  1. (Optional, better results) paste the Voice-of-Customer / extract the Reddit voice bank first.
  2. 🧠 Generate Deep Research File β€” a 20-section research brief (background job).
  3. πŸ—ΊοΈ Generate Creative Map β€” auto-starts once the deep file finishes (locked until it exists). Turns research into idea-ready angle / hook / proof banks.
These two files are the foundation every angle and script is built on β€” don't skip them.

3.6 Scripts β†’ brief β†’ assign editor β†’ publish

Produce the first batch of videos and hand each to an editor β€” all inside the tool. Use the Script Generator tab (one at a time) or ⚑ Fast Production (all at once, with one review gate).

  1. Always start from the top 3 angles. The tool auto-ranks the deck and picks the deduped top 3 (spanning β‰₯2 audiences, β‰₯1 untested). In ⚑ Fast Production they're auto-selected β€” keep them, swap only at the review gate; in the Script Generator, click the top-3 angle cards yourself. Keep the default of 3 scripts. Each ships 3 hook variations (A / B / C) β€” same body, only the first 3 seconds change.
  2. Generate the plan, then the full script + editor brief. For each angle the tool builds the plan (keep / change per layer), then the video script β€” Hook A/B/C + body + CTA + captions β€” with an English "Editor Notes" block. That Editor Notes block is the production brief.
  3. Approve & Publish to ClickUp + Drive. Hit βœ… Approve & Publish to ClickUp + Drive. The tool creates the Drive delivery folder first, then the editor task 🎬 <code>–Or#NN-VD in the video list β€” carrying the script, the editor brief, the delivery-folder tree (the exact filenames the editor must produce), and a "βœ… Ready to launch β€” CONFIRM (editor)" checklist.
  4. Assign the least-busy editor. The Editor dropdown shows each editor's live open-task count (e.g. "Edgar β€” free βœ…", "Nabeel β€” 3 open tasks") and auto-selects the one with the fewest open tasks. Keep that pick β€” πŸ”„ Refresh live re-pulls the counts. This keeps the load balanced across the team.
  5. Track the task on ClickUp until it's ready. It starts at TO DO; the editor delivers the cuts into the Drive folder and ticks the CONFIRM (editor) checklist.
Where they launch depends on the gate (Β§3.2): for a weak-ads product these go into the TESTING campaign and must earn ROAS β‰₯ 2.0 before any CBO; for a gate-passed product they run alongside the duplicated winners to feed the CBO.

3.7 Launch / feed the €50 CBO β€” only when the gate is passed

Only if Β§3.2 is passed β€” THREE winners, each β‰₯ €100 Β· ROAS β‰₯ 2.0 in CT. Otherwise stop β€” keep testing/iterating (or πŸ“ž the call for funnel cases); do not create or feed a CBO. All 3 winners go in together β€” one winner alone fatigues fast.
  1. Create the scale campaign (CBO): <code> - <Product> - Acq - (DACH) #01 β€” budget €50/day, Sales Β· DACH.
  2. Duplicate the winner ads from the test campaign (<code> - <Product> - CT - (DACH) #01) into the CBO. The originals stay running in the test campaign.
  3. Scale unit = any winner, video or image (Β§2.5). A winning πŸ–ΌοΈ static also graduates its angle to a video (Β§2.1).
  4. Launch at 23:45 Berlin.
  5. As Β§3.6 scripts produce winning videos (ROAS β‰₯ 2.0), duplicate those into the same CBO to keep it fed.

3.8 Close the handoff β€” set the ClickUp status

Once onboarded and the path is underway (CBO live, or new creatives testing / team notified), move the ClickUp task NEED SCALLING β†’ IN SCALING. This signals the scaling department now owns it and removes it from the tool's "Products to onboard" queue (which only shows NEED SCALLING).

3.9 Quick checklist (per graduated product)

  • Task flagged NEED SCALLING in the testing list
  • Scale gate checked β€” 3 winners found (each β‰₯ €100 Β· ROAS β‰₯ 2.0 in CT)? If not β†’ notify team (good ads) or iterate on testing (weak ads); don't touch the CBO.
  • Onboarded in the tool (code + URL + saved)
  • Deep Research File generated
  • Creative Map generated
  • First 3 scripts generated (top-3 angles)
  • Gate passed only: €50 CBO created + winner videos duplicated Test β†’ CBO (originals stay)
  • ClickUp status β†’ IN SCALING
βœ“ DONE Worked example β€” DEN-059 ZoomMeister 25-75Γ— a real Β§3 run Β· click to expand

A completed, real run of this whole runbook on one product β€” kept here as the reference example. DEN-059 was flagged NEED SCALLING (a confirmed test winner, Β§3.1), then taken through gate β†’ onboard β†’ research β†’ scripts β†’ publish β†’ scale. Do it once and the process is yours.

1 Β· Ran the gate (Β§3.2) β€” its real lifetime numbers, not the flag, decided the path. (This trial ran under the old product-level gate; since 18 Aug 2026 the gate is 3 winners, each β‰₯ €100 Β· ROAS β‰₯ 2.0 in CT β€” the steps below are unchanged.)

Our ruleDEN-059Verdict
β‰₯ 10 sales12PASS βœ“
lifetime ROAS β‰₯ 2.02.73PASS βœ“
CPC < €0.80 (ads good, not weak)€0.47GOOD ADS βœ“

Lifetime test-campaign figures (DEN059#Test): €397.27 spend Β· €1,086 purchase value β†’ ROAS 2.73. All rules pass β†’ πŸ† SCALE. (Had ROAS come in below 2.0 with these good ads β†’ πŸ“ž FOR THE CALL, Β§3.3.)

2 Β· Then ran it end-to-end:

  1. Onboard β€” tool β†’ πŸ” Products to onboard β†’ ZoomMeister β†’ Auto-fill β†’ Save. (Β§3.4)
  2. Research β€” Deep Research File β†’ Creative Map. (Β§3.5)
  3. Scripts β€” top 3 angles β†’ plan β†’ 3 scripts (Hook A/B/C). (Β§3.6)
  4. Publish + editor β€” βœ… Approve & Publish β†’ least-busy editor auto-picked β†’ 🎬 <code>–Or#NN-VD. (Β§3.6)
  5. Scale β€” gate passed β†’ winner videos duplicated into a €50 CBO; originals stay testing. (Β§3.7)
  6. Handoff β€” DEN-059 task β†’ IN SCALING. (Β§3.8)
Task 1 Β· sub-section Β§1

Campaign structure & launch β€” CT €20 ABO / Acq CBO €50

Every product runs through two campaigns: a €20/day ABO Test, and β€” only once it's confirmed β€” a €50 CBO Scale. A creative is never launched straight into the CBO.

1.1 The model β€” two campaigns per product

CampaignPurposeBudget typeWhen it exists
TEST (Creative Testing)Test every new creative here first€20/day ABO β€” one adset per formatFrom day 1 of the product
SCALE (Acquisition / "Acq")Run only the proven winners to scaleCBO €50/dayCreated once, after the product is confirmed
Golden rule: a creative is never launched straight into the Scale (CBO) campaign. It must first prove itself in the Test campaign.

1.2 Naming conventions (use these exactly)

CampaignNaming patternExample
TEST β€” established<code> - <Product> - CT - (DACH) #01024 - Schutzmeister - CT - (DACH) #01
TEST β€” new productDEN-<code>–C001#Test - <Product>DEN-030–C001#Test - Doppelblick
SCALE (Acq)<code> - <Product> - Acq - (DACH) #01024 - Schutzmeister - Acq - (DACH) #01

Both … - CT - (DACH) #01 and DEN-…–C001#Test are test campaigns (the naming evolved). New products use the DEN-…#Test form.

1.3 Adsets inside the TEST campaign β€” one per format

The Test campaign holds a separate ABO adset for each format, each €20/day:

FormatAdset nameBudget
Video<code> - CT01 - Video€20/day ABO
Statics<code> - CT01 - Statics€20/day ABO
β›” NEVER launch videos and statics in the same adset. Videos β†’ the Video adset, statics β†’ the Statics adset β€” always separate. If a format's adset doesn't exist yet, create it (€20/day ABO) with the matching name.

1.4 The launch flow

A) New product (unproven β€” Test campaign only)

  1. The product already has its Test campaign (DEN-<code>–C001#Test). Do NOT create a new one β€” use the one that exists.
  2. Test all new creatives there, each format in its own €20/day ABO adset. Never mix videos + statics in one adset.
  3. No Scale (Acq) campaign yet β€” the product isn't confirmed.

B) Product gets confirmed β†’ build the Scale campaign

  1. After an internal decision that the product is confirmed, create the €50/day CBO named <code> - <Product> - Acq - (DACH) #01.
  2. Duplicate the winning test ads into this new Acq/CBO campaign.

C) Established product (both campaigns exist)

  1. Keep testing every new creative in the CT campaign.
  2. Scaling trigger: any ad that has spent > €50 with good KPIs β†’ duplicate it into the Acq (Scale) campaign.
  3. The Acq counterpart already exists, so no new campaign β€” you just duplicate the winner across.

1.5 Quick reference β€” what to do when

SituationAction
New creative to testLaunch in the product's Test campaign β€” video in CT01 - Video, static in CT01 - Statics (each €20/day ABO). Never the same adset.
Test ad spent > €50 with good KPIsDuplicate it into the Scale (Acq) CBO campaign
New product needs a statics testAdd a €20/day ABO CT01 - Statics adset inside the existing Test campaign
Product just confirmed (flagged NEED SCALLING)Run the full Graduate β†’ Scale runbook (Β§3) β†— β€” onboard β†’ generate videos + statics β†’ test to 3 winners β†’ then create the €50 CBO Acq with all 3 inside
New product, need a test campaignDon't create one β€” DEN-<code>–C001#Test already exists
2️⃣ Task 2

Weakest products β€” ADS / STORE-LP

Find the weakest products (7 days), see which part is weak. ADS weak β†’ refresh: Β§4 refresh Β§5 statics. STORE-LP weak β†’ offer move: no rule yet β€” open the case for the call (Β§2.4).

Task 2 Β· sub-section Β§4

ADS weak β†’ refresh creative (2 videos + 1 static)

This works at the adset level, not per ad. When an active campaign's overall KPIs fall below target, the move is not to kill or scale (that's Β§2) β€” it's to refresh: feed it fresh creative. Generate 2 fresh videos + 1 fresh static from the tool so the adset has new angles to find a winner. They are two separate jobs β€” the videos go to an editor, the static you make and launch yourself (Β§5 β†—).

πŸ”
This section is campaign-level, not per-ad. Killing dead ads and scaling winners is Β§2's job (already handled) β€” don't repeat it here. Here you watch the whole campaign: when its overall numbers slip below target, you don't touch the existing ads β€” you feed it fresh creative (new videos + statics) so it has new angles to find a winner.

4.1 πŸ“‰ When to refresh β€” the campaign-level trigger

Look at the campaign as a whole on the 7-day window, not ad by ad β€” and read two signals together, the same logic the tool uses: CPC (do the ads / hooks still work?) and ROAS (is it still profitable?). A campaign is healthy while ROAS β‰₯ 2.0 and CPC < €0.80. When either slips, the fix is not to kill or scale β€” it's to refresh with new creative.

Campaign 7-day read (ROAS + CPC)StateAction
ROAS β‰₯ 2.0 and CPC < €0.80HEALTHYLeave it β€” keep feeding winners (Β§3). No refresh needed.
ROAS 1.6 – 2.0, or CPC €0.80 – 0.99SLIPPINGRefresh (Β§4.2) β€” the hooks / angles are tiring; feed new ones before it drops further.
ROAS < 1.6, or CPC β‰₯ €0.99NEEDS REFRESHRefresh now (Β§4.2) β€” the creative is spent: weak hook (high CPC) and/or unprofitable (ROAS under the ~1.6 break-even at 62% margin).
Refresh β‰  kill β‰  scale. Killing dead ads and scaling winners is the Β§2 decision table (already automated). Refresh means one thing: feed the campaign fresh creative. CPC tells you the hook is tired; ROAS tells you it's not selling β€” either one, read on the whole campaign, means it's out of live angles. Give it new ones.

4.2 πŸ–ΌοΈ Refresh β€” generate new ads in the tool

When Β§4.1 says a campaign is below target, refresh it with a fresh batch of creative β€” both videos and statics. Three steps, all in the tool. You are only adding new ads β€” not pausing, not changing budgets.

#StepExactly what to do
β‘ Open the refresh queueTop of Live Ads. It already lists the adsets below target, worst first, and how much creative each one takes β€” the click path is Β§6.7 β†—.
β‘‘The video jobStart Β· generate + review β†’ approve the angles β†’ publish. Each becomes a 🎬 …–Or#NN-VD editor task on the least-busy editor. Detail: Β§3.6 β†—.
β‘’The static jobStart Β· generate statics β†’ generate the images, check every one, send to the media buyer. Full walk-through: Β§5 β†—. Statics launch into the Statics adset, never the Videos one.
A refresh = 2 videos + 1 static. Videos carry the story, the static probes a new angle cheap. They are two separate tasks on two different clocks β€” the video task goes to an editor and comes back in days; the static you generate and launch yourself the same day (Β§5 β†—). Do not wait for one to finish the other. New creative is the only lever here β€” you are not touching budgets or pausing anything.
Then let it run. The new ads test into the campaign and the Β§2 decision table judges / kills / scales them automatically. Re-check the campaign's 7-day ROAS next cycle β€” repeat the refresh whenever it slips below target (Β§4.1).
Task 2 Β· sub-section Β§5

Statics β€” generate & check

The tool writes the briefs and generates the images. Your job is to check them. AI gets one thing wrong more than anything else: it invents details β€” a product that does not match the real one, or a product being used in a way that is not possible. Fix the reference, generate again. Only accurate images are approved.

πŸ‘€
The tool can generate a hundred images. It cannot judge them. You are the quality check β€” and there are only two questions to answer: is the product accurate, and is it being used realistically?

5.1 Generate β€” three clicks

  1. Open Script Generator β†’ select the product.
  2. Go to πŸ“· Step 3 β€” Static briefs. The briefs are already written for you.
  3. Press πŸš€ Generate all and wait a couple of minutes.

That is the whole generation step β€” no prompts to write, no layouts to choose. The next step is the one that decides whether the ad is worth launching.

5.2 Check every image before you approve it

Open each image at full size and look at it carefully. You are checking for AI errors β€” details the model invented that do not exist in reality. Four things, and any one of them is enough to reject the image:

What to check❌ Reject the image if you see…
The product is accurateWrong shape, wrong colour, invented parts, extra buttons, distorted or melted edges, a duplicate product that does not exist, or text and logos that are not on the real product.
The product is used realisticallyHeld the wrong way round, used on the wrong body part, at an impossible angle, or doing something the product cannot actually do. A customer who owns the product notices this immediately.
Anatomy is correctSix fingers, fused or deformed hands, a twisted wrist, a paw with the wrong number of toes. This is the most common AI error β€” always look at hands and paws.
The scene is possible for OUR customerA German hunter or sport shooter would never be in that situation with the product: a pistol in a supermarket or on the street, magazines lying on a car roof in a public car park, US-flag patches, police/military gear. In Germany the pistol lives at the range and travels unloaded and locked. If the scene is illegal or foreign, the ad is not believable β€” and Meta may reject it too.
The German text is correctDistorted letters, invented words, missing umlauts, or text that runs off the edge.
If you have to ask yourself whether it looks right, it is not right. The image has to be believable at a glance β€” that is the standard. You are not measured on how many images you approve: two accurate images are a valid test, five with a distorted product are not.

5.3 The reference photo β€” where the accuracy comes from

The generator does not know your product. It copies it from the πŸ“Έ product reference, and that single choice decides whether the product comes out right. The best reference is the product on its own, on a white background β€” nothing else in the frame, no text, no hands, no scene. Given that, the model has one clear thing to copy. Given a lifestyle photo, it has a scene to reinterpret, and that is where invented parts and wrong colours come from.

You do not have to hunt for it. Open the photo picker on a brief and the tool does two things by itself:

ButtonWhat it does
πŸ–ΌοΈ Import ALL landing-page imagesPulls every product image from the landing page into the picker. Runs automatically the first time a product has no reference yet β€” you will see it filling.
⭐ Pick the best automaticallyLooks at every imported photo and selects the best reference: product alone, white background, first choice. Photos are then sorted best-first, each with a short reason.

The picked photo is marked ⭐ best Β· product on white. If the landing page has no white-background shot, the tool says so and picks the closest thing β€” that is your cue to look extra carefully at the result.

You can always overrule it. The auto-pick is a starting point, not a lock β€” click any other photo to use it instead. If the generated images come out wrong, the reference is the first thing to change.

5.4 If an image is wrong β€” change the reference, maximum 3 attempts

When an image fails the check, the problem is almost always the πŸ“Έ product reference, not the prompt. Give the model a better photo to copy from and generate again.

AttemptWhat to do
1stOpen the photo picker and choose a different reference β€” the next photo down the ranked list (Β§5.3) β€” then generate again.
2ndStill wrong β†’ pick a different angle: a shot where the product is larger, sharper, and on the plainest background available. Generate again.
3rdStill wrong β†’ stop, deselect that image and continue with the rest.
Three attempts, then move on. If the model cannot reproduce the product correctly after three tries, a fourth will not fix it β€” the reference is the limit, not the prompt. Deselect it and approve only the accurate images.

Once the batch is approved, press 🎯 To media buyer β€” the tool uploads the approved images and opens the launch task. Launch them into the product's Statics adset in the test campaign.

5.5 Real cases β€” how the decision is made

Same three questions every time: is the product right, is the person using it the way our customer would, is the German clean? One "no" = reject. Then decide how to regenerate β€” the fix depends on what was wrong, not just that something was wrong.

Since v3.763 the tool enforces the Germany rule itself β€” at the angle, not the image. Step 1 (angles): an idea built on carrying / using the product in a public place, on everyday carry, on police / US identity or on self-defence is a blocking validator violation β€” the writer must transpose or replace it; if it still fails after the retries the angle is dropped. Step 3 (briefs): a brief whose copy or image prompt still carries such a scene is dropped before generation and listed in red as "NOT approved β€” Germany use-case gate". After render, a πŸ›‘ reality check looks at the image with the same question; a fail is not re-rolled β€” it is unticked (❌ NOT approved) with the short reason list. Your eyes remain the final gate β€” the checks catch the obvious, not everything.
What was wrongWhat to change before you press πŸ”„ Regenerate
Product looks wrong (shape, colour, invented parts)Change the πŸ“Έ product reference (Β§5.3). Keep the prompt.
Product looks right, but the scene / idea is impossible, illegal or foreign for a German customerDo not re-roll. Uncheck the brief β€” the idea is wrong, not the render. Only if the emotional engine is worth saving: rewrite the brief's copy + πŸ–ΌοΈ Image prompt for where the customer really is (range, club car park, Revier, home workbench), then generate once. The tool blocks most of these at Step 1/3 since v3.763.
Anatomy or German text broken, everything else fineJust press πŸ”„ Regenerate (keeps this one) β€” pure roll of the dice, no change needed.
Wrong after 3 attemptsUncheck βœ“ Selected for media buyer on that image and move on (Β§5.4).

Case 1 Β· Schutzmeister (024) β€” "Ganze Tasche vs. Ein Griff"

Case 1 β€” rejected static: pistol belt at a supermarket checkout
❌ NOT APPROVED β€” the angle does not exist in Germany

Product itself is roughly fine, the German headline is fine. The idea kills it β€” "no more emptying your bag at the checkout" is a public-carry story. Our buyer is a DACH sport shooter who wears this belt 4–8 h at the range β€” not a cop at the supermarket. This is not a bad render to re-roll; it is an angle that must never be generated. Why:

  • 1Pistol at a supermarket checkout. In Germany a civilian cannot carry a pistol in a shop β€” not a sport shooter, not a hunter. The pistol goes range β†’ home, unloaded, locked. Every customer knows this in one second; the ad becomes a joke.
  • 2US-flag patch on both sleeves. Reads "American police / TV". Our audience is German club shooters who explicitly do not want the tactical-wannabe look β€” that is the product's whole promise.
  • 3Hand on the pistol grip in a public place. Weapon-in-hand in a civilian scene = Meta firearms-policy risk on top of being wrong for us.
  • 4Left side makes no sense either. Ear muffs on in a car park, loaded magazines + ID + keys spread on a car roof in public, a stranger staring. That is not "without system", that is a scene no shooter has ever lived.
  • 5"Ohne System" already wears a holster. The before-side contradicts the message.
  • 6Headline vs. use case. "Kein Auskippen mehr am Kassenband" sells a supermarket problem for a range belt. The message must live where the product lives.
  • 7Small text garbage. "STOPERK", cut-off "STA", fake German shop signs β€” minor on its own, but it is one more tell that the image is AI.
Decision: uncheck it β€” do not re-roll the image; a new render of a supermarket idea is still a supermarket idea. If the emotional engine is worth keeping ("everything in one grip, nothing dumped out"), it has to be re-written for where the customer really is: gear dumped on the range bench vs. one grip on the belt. Since v3.763 the tool blocks this itself: the angle validator rejects public-place / public-carry / police-identity / self-defence ideas at Step 1, and a brief that still carries one is dropped at Step 3 and listed in red as "NOT approved β€” Germany use-case gate".
Rule of thumb for every static: ask "where is this person, and would our customer be there with this product?" β€” if the answer is a shop, a street, a car park with a gun out, or anywhere with a foreign flag, it is a reject before you even look at fingers.
3️⃣ Task 3

Daily monitor β€” Kill / Scale / Launch

Every live ad, every day: the rules decide. Β§2.2 decision table Β§2.5 scale Β§1.5 launch.

Task 3 Β· sub-section Β§2

Daily monitor β€” Kill / Scale / Launch (decision table)

Read the ad's numbers, find the first row that matches in the decision table, do what it says. CPC = is the ad working?  Cost/ATC + ROAS = is the funnel working?

🎯
Read the ad's numbers, find the first row that matches, do what it says. Three signals do the whole job β€” each one is a different job, so read them separately.

2.0 KPI color thresholds (copied from the tool)

The exact per-KPI colour coding the tool uses. Reference only β€” a quick read of good / ok / bad. The decision is the Β§2.2 table.

Metric🟒 Green🟑 YellowπŸ”΄ RedDirection
CTR (link)> 1.8%1.2 – 1.8%< 1.2%higher = better
CPC (link)< €0.68€0.68 – 0.76> €0.76lower = better
Cost/ATC< €15€15 – 24> €24lower = better
ROASβ‰₯ 1.91.4 – 1.9< 1.4higher = better
The core idea: CPC tells you if the ad works (cheap clicks = good hook). Cost/ATC and ROAS tell you if the funnel works. When the ad clearly works but the sale doesn't come, it's a funnel problem β€” you notify the team, you do not kill the creative.

πŸ“’ The Creatives ledger β€” same colours, weekly view

The Ads Check β†’ πŸ“’ Creatives ledger uses the KPI colours above, so a weekly review reads like the Live Ads table. Each creative is graded on the ROAS bands: 🟒 STRONG (β‰₯1.9) Β· 🟑 THIN (1.4–1.9 β€” iterate the angle, do not kill) Β· πŸ”΄ LOSING (<1.4) Β· ⏳ TOO EARLY (under €50 spent). Β· off is appended when the ad is no longer delivering.

Where a Shopify UTM join exists the grade uses REAL Shopify sales, not Meta's β€” shown as ROAS 1.33 real Β· 2.18 Meta. Meta over-attributes in this account, so the badge and the number beside it always come from the same source.

Pick the batch with the range selector: Last 7 days Β· This week Β· Last week Β· This month Β· Last month Β· All time. Weeks start Monday.

2.1 Format β€” both scale, videos carry the story

  • πŸ† A winner is duplicated into the CBO whatever the format β€” video or image. 🎬 Video: > €50 Β· β‰₯1 sale Β· ROAS > 1.5. πŸ–ΌοΈ Static: β‰₯ €100 Β· ROAS β‰₯ 2.0 (a static needs more spend to prove it).
  • πŸ–ΌοΈ STATIC / IMAGE = also the angle test lab. A static that works proves the angle β€” besides scaling it, that angle also graduates to a video (row 6). Managing statics = keep the winning variant, kill the weak siblings.

2.2 The decision table β€” top to bottom, STOP at the first match

The first row that matches is your action. If no row matches β†’ no action, leave the ad running. "fewer than 2 ATC" = 0 or 1 cart; "not converting" = ROAS < 1.0.

#If the ad's numbers are…→ Action
0CPC β‰₯ €2.00 Β· ROAS 0KILL dead hook
1Spend €5+ (under €30) Β· CPC > €1.50KILL broken hook
2Spend €15+ (under €30) Β· CPC β‰₯ €0.99 Β· < 2 ATCKILL high CPC + no carts
3Spend β‰₯ €30 Β· < 2 ATCKILL dead creative
4Spend β‰₯ €60 Β· CPC β‰₯ €0.99 Β· not converting (ROAS < 1.0)KILL weak ad + broken conversion
5🎬 VIDEO Β· ROAS > 1.5 (β‰₯1 sale, β‰₯ €50)SCALE duplicate video β†’ CBO
5bπŸ–ΌοΈ STATIC Β· ROAS β‰₯ 2.0 (β‰₯ €100, in CT)SCALE duplicate image β†’ CBO
6πŸ–ΌοΈ STATIC Β· Cost/ATC ≀ €15 (β‰₯2 ATC)🎬 MAKE THE VIDEO the angle wins β†’ also generate a video on it
7Spend β‰₯ €70 Β· CPC < €0.80 Β· Cost/ATC > €25πŸ“ž FOR THE CALL cheap clicks, no cart β€” store side, nothing to execute
Tell the tool when you have done it. Killing and duplicating happen in Ads Manager, where the tool cannot see your click β€” so every πŸ”΄ KILL and πŸ† SCALE row carries a βœ“ Done button. Press it after the work is done: the row clears immediately, and the tool then confirms it against the ad account (a kill must read paused, a scale must show a copy in the CBO). Anything marked done that the account cannot confirm within 2 days comes back flagged, with what it has cost since. Nothing is trusted because a button was pressed, and nothing is lost because a pull was late.
Rows 0–4 (kills) apply to both formats. Fix rows only fire above €50 spend β€” under that there is not enough data to act on. Row 5 is video, 5b is static; row 6 is static-only. A converting video at ROAS 1.0–1.5 matches no row β†’ keep running.

2.3 ⚠️ Before you KILL β€” the winner & dip guards

If you recognise the ad as a past winner (real sales / good ROAS before), do NOT auto-kill it on a bad week. A winner can dip from ad fatigue or attribution lag, not death. Check whether the drop is real, and re-check in 7 days and kill it then if it is still weak before pausing a proven creative. (New, unproven ads follow the table as-is.)

🟑 WATCH β€” proven, in a dip

Same idea, measured instead of recognised. β‰₯ €100 lifetime with both the 14-day and the all-time ROAS at β‰₯ 2.0, while the last 7 days are under 1.5 β†’ this is a dip, not a verdict.

Read the bars, not the number. Real case: 024–Or#1-VD-H3 – Copy β€” 3d 1.15 Β· 7d 0.50 Β· 14d 3.15 Β· all-time 2.46 on €944 lifetime. The headline ROAS said 0.50x and the tool called it a conversion stall. But an ad that ran 3.15 over 14 days and 2.46 over its whole life has already shown it converts β€” it has the option to recover.
  • Do not kill it and do not cut its budget.
  • Re-check in 14 days β€” longer than the other guards on purpose: judging a dip on a window shorter than the one that proved the ad is how a proven ad gets killed on noise.
  • Still weak at re-check β†’ kill it. The guard buys one recovery window, not permanent immunity.
  • Both windows must be healthy. One good stretch is not a track record.

2.4 πŸ“ž The funnel check β€” a call topic, not a task

Cheap clicks, no cart (CPC < €0.80 Β· Cost/ATC > €25 Β· β‰₯€70 spent): people click and then leave before add-to-cart. The ad is doing its job β€” the landing page or the offer is losing the sale.

Nothing to execute here. This is store side and the offer structure is not built yet, so it is not an action: the tool marks it πŸ“ž FOR THE CALL, it stays out of ⚑ Needs action, and you never kill the creative for it. Open the πŸ“ž For the call chip before a call and read the list out with the numbers.

Break B β€” cheap carts but no sale β€” was removed in August 2026: this account does not have that problem, and a rule that never fires only teaches you to ignore rules.

2.5 πŸ† The scale triggers β€” three confidence tiers

A video earns a scale the moment, at > €50 spend with β‰₯1 real sale, it has ROAS > 1.5. A static earns it at β‰₯ €100 spend with ROAS β‰₯ 2.0. Cost/ATC does not gate the scale β€” ROAS alone decides.

β†’ Duplicate that exact ad β€” video or image β€” into <code> - <Product> - Acq - (DACH) #01 (the CBO). The original stays running in the Test campaign. (A winning static also graduates its angle to a video β€” row 6 β€” so the story can travel further.)

Three confidence tiers β€” who decides

The move is always the same duplicate. What changes is how much proof you have, and therefore who makes the call.

  • πŸ† WINNER β€” β‰₯ €100 at ROAS β‰₯ 2.0. The tool recommends it. Duplicate it.
  • 🟑 EARLY β€” β‰₯ €30 at ROAS β‰₯ 2.0. The tool recommends it only when the CBO is starving. Otherwise your call.
  • βšͺ VERY EARLY β€” under €30 but already selling (1+ purchase at ROAS β‰₯ 2.0). You decide β€” the tool never recommends this one.
Why VERY EARLY exists. A flat €100 bar hides real signal. Campaign 063 Fixpunkt Red Dot had a CBO starving on one active product while its CT held an ad at ROAS 29 on €8.30 with 2 sales β€” and the tool said "nothing to duplicate". That is a starving CBO sitting next to a selling ad.

Read the tier as confidence, not as quality. Two sales on €8 is promising, not proven β€” at that spend one refund flips the ROAS. So:

  • βœ… Use it when the CBO is starving (under 3 live ads) or the product has no proven winner yet. A weak CBO loses more to having nothing to spend on than to a copy that later fades.
  • ❌ Don't use it when the CBO already has healthy winners running β€” no reason to take an €8 bet next to a €250 proven ad.
  • πŸ‘ After you copy one, watch it. It has not earned profit immunity (Β§2.3): still under ROAS 2.0 at €100 in the CBO β†’ it goes through the normal Β§2.2 table like any other ad.
Paused ads are never candidates in any tier. A paused winner already sitting in the CBO is a re-enable, not a duplicate β€” and an ad you already duplicated never shows up again.

Where you see it: dashboard β†’ the campaign's NEXT ACTION β†’ the popup lists candidates under "Not recommended by the rules yet", tagged EARLY or VERY EARLY with spend, sales and ROAS on each. Click an ad name to copy its ID for Ads Manager.

2.6 The kills β€” only when the CREATIVE failed

  • KILL Broken hook β€” under €30 (€5+) Β· CPC > €1.50 (0 historical winners ran this high).
  • KILL High CPC + no carts β€” under €30 (€15+) Β· CPC β‰₯ €0.99 Β· < 2 ATC. The €15 floor means 2 carts was a fair expectation.
  • KILL Dead creative β€” €30+ Β· < 2 ATC. Nobody engages.
  • KILL Weak ad + broken conversion β€” €60+ Β· CPC β‰₯ €0.99 Β· not converting (ROAS < 1.0).
Never kill a converting ad (ROAS β‰₯ 1.0), a proven past winner on a bad week (Β§2.3), or an ad whose only "bad" number is CPC below €1.50 β€” 31% of our winners ran CPC > €0.80.

πŸ—‘οΈ Removed β€” πŸ’Ž FUND IT 2026-08-21

A starved-but-converting ad (ROAS β‰₯ 2 lifetime on under €25) used to carry a πŸ’Ž FUND IT badge telling you to "duplicate it into the CBO, or give it its own adset budget". Neither is a move you make from this table: budgets are fixed and never touched, and duplication is decided at campaign level. Repeated down the ⚑ column on 19 ads at once, it was noise.

Where these ads live now: they are the βšͺ VERY EARLY tier in Β§2.5 β€” shown next to their CBO's actual state (starving or healthy) so the copy decision is made on evidence. The ad keeps its immunity: it is still never swept up by the never-funded kill. It simply no longer shouts an instruction you cannot follow.

2.7 The data behind the numbers

  • Cost/ATC is the funnel separator β€” winners median €8, losers median €24 (3Γ— gap). The €25 line is the loser median.
  • CPC does not separate winners from losers β€” winners €0.76 vs losers €0.87. That's why CPC never kills alone below €1.50.
  • CTR is not used β€” ~1% for winners and losers alike, so it separates nothing. Context only.
Note: the tool's ⚑ Action column is a helper, but this table is the source of truth β€” when in doubt, follow the table, not the badge.
4️⃣ Task 4

New tasks to build β€” support Β· supplier Β· email

Not built yet. Each becomes its own task linked into Task 2 / Task 3. Content follows once the tasks exist.

Support β†’ loop

Same defect Γ—3 on a product β†’ pause its ads Β· open a product case. Repeated question β†’ LP / FAQ fix. PENDING

Supplier β†’ loop

Stock cover < 15 d + lead time β†’ no scale / pause. Shipment delay β†’ pause the product's ads. PENDING

Email β†’ loop

Plan ready each week β†’ you confirm β†’ send. PENDING

🧭 Reference · §6

Using the tool β€” which buttons, in what order

Sections 1–5 are the rules. This one is the click path: what to open, what to press, and in which order. Nothing here repeats a rule β€” where a decision is involved it points back to the section that owns it.

🧭
You never have to guess what to work on. The tool decides, you execute. If a screen shows nothing to do, that is an answer β€” not a broken page.

How much you make β€” the only limit

3 videos + 3 statics per product, per week. That is the whole rule. Pick the product, look at the strip above the generator β€” 🎬 1/3 videos Β· πŸ–ΌοΈ 0/3 statics β€” and make what is left. It resets on Monday by itself.

The strip turns amber and says "3 videos already made this week" when a type is full, so you see it before you spend anything.

Nothing else blocks you. There is no batch to finish, no cycle to close and nobody to ask.

6.1 Your day, in order

The same four moves every day β€” about 15 minutes when nothing is on fire, longer when there is creative to produce.

#Do thisWhere Β· why
β‘ Open the DashboardOne card per product, red first. The buttons on a card are the only things that need you today (Β§6.4).
β‘‘Work ⚑ Needs action β€” kills, scales and fixesClick the button β†’ Live Ads opens filtered to exactly those ads. Do the work in Ads Manager (or on the page / checkout for a πŸ”§ Fix), then press βœ“ Done (Β§6.6). Rules: Β§2.2 β†—. None of it needs the founder's approval.
β‘’Work the refresh queueTop of Live Ads. The adsets running out of creative (Β§6.7). Trigger: Β§4.1 β†—.
β‘£Leave yesterday's launches aloneUnder €25 an ad has not been tested, only shown. Nothing to judge for ~3 days.
The one habit that matters: do the kills first, before generating anything. A test adset holding 40 ads will not deliver your new creative properly, and a good angle then looks like a failure for a reason that has nothing to do with the angle.

6.2 Say who you are β€” once

The first time you open the tool on your computer it asks one question:

Who is using the tool?   [ Mustapha ]   [ Nita ]

Pick Nita. The browser remembers it β€” you are never asked again, and your name shows top right (click it to switch). Everything you generate, publish, kill or mark done is recorded under that name, and every ClickUp task the tool creates remembers who launched it. Reading a page is never recorded β€” only actions that change something.

6.3 The menu β€” the exact tab names

TabWhat it is forYou use it
DashboardOne card per product with today's buttons.Every day β€” start here
Ads CheckOne product in depth, campaign by campaign.Digging into one product
ResearchMarket + competitor research per product.Rarely
Script GeneratorAngles β†’ scripts β†’ πŸ“· static briefs β†’ images.Every static batch (Β§5)
PublisherSend a finished script to ClickUp.Rarely β€” publishing happens inside the other screens
Learning LogWhat has been tested and what won.Before writing new angles
Live Ads the working screenEvery live ad, the refresh queue, πŸ“‹ Today.Every day β€” this is where the work is
LP AuditLanding-page check for a product.When the funnel, not the creative, looks wrong
⚑ Fast Production has no tab. It opens by itself when you start a video refresh (Β§6.7) β€” you never go looking for it.

6.4 Reading a Dashboard card

94 Stahlblick πŸ”΄ LOSING MONEY ROAS 1.01 CPC 0.75 CATC 14.79 SPEND 621 CTR 2.00 SALES 9 CT #01: €359 Β· ROAS 1.08 Β· 19 ads Β· 6 sales [β†’ Open Ads Check] [πŸ“’ Learning Log] [⏸ Pause] [πŸ† Scale 1 ad] [πŸ”„ New creative Β· 1 adset]

KPI colours are the same everywhere β€” Β§2.0 β†—. The CT #01 line is the test campaign on its own, separate from the scale campaign.

ButtonDo what
πŸ”΄ Kill N adsOpens Live Ads filtered to those ads. Pause each in Ads Manager, then βœ“ Done. Hover first to read why each is flagged.
πŸ† Scale N adsThey won in CT (Β§2.2 β†—). Duplicate into the CBO β€” never move.
πŸ”„ New creative Β· N adsetsThose adsets are below the refresh trigger (Β§4.1 β†—). Click β†’ the refresh queue.
⏳ Creative in progressA batch is already being made. Finish that one first.
A red card with no refresh button is normal. The card says why: "every live test adset is above ROAS 1.6 (best 4.72) β€” the loss is in ads already paused, not in the creative running now." The damage is already dealt with. Do not generate creative to feel productive.

6.5 Live Ads β€” one line per ad

Pick a product at the top; every row below is one real ad from the ad account over the last 7 days. Start with the chips:

All 401 Β· ⚑ Needs action 86 Β· πŸ”΄ Kill 45 Β· πŸ† Scale 4 Β· πŸ”§ Fix 37 Β· πŸ“ž For the call 2 Β· 🟑 Watch 4 Β· πŸ“ˆ Recovered 1
ChipWhat is in itToday?
⚑ Needs actionKill + Scale + Fix β€” everything that needs you today.Yes
πŸ”§ FixReal jobs that are neither a kill nor a scale: fund a starved winner, refresh a fatiguing ad, iterate one that cannot scale, check the page, check the checkout (Β§2.2 β†—). Each reason says exactly what to do.Yes
πŸ“ž For the callStore-side findings β€” the ad works, the page or offer does not (Β§2.4 β†—). Nothing to execute in the ad account.Read out on the call
🟑 WatchThe only bucket that asks for nothing today β€” an ad on probation, or one that already recovered.Read, do not act
πŸ“ˆ RecoveredThe bad stretch is already behind it; the last 3 days are back up.Leave it alone
ColumnWhat it is
⚑ ActionWhat the rules say about this exact ad. Click the badge for the reason.
TaskThe ClickUp task β€” 94–Or#01-IM. Click to copy. Several ads share one task.
Ad / ad setThe real Meta ad name (94–Or#01-IM-H3) over its adset. Click the ad name to copy its ad ID β†’ paste into Ads Manager search.
ROAS 3/7/14/allFour bars: 3 days, 7, 14, all time. Dashed line = break-even 1.61.
Always read the four ROAS bars before killing an ad past €100. One window lies: an ad can read 1.16 on 7 days and 2.84 on 14. The tool already protects those (Β§2.3 β†—) β€” you should still see it with your own eyes.

6.6 βœ“ Done β€” and πŸ“‹ Today

The work happens in Ads Manager and on the store, where the tool cannot see your click. So every πŸ”΄ KILL, πŸ† SCALE and πŸ”§ FIX row carries a βœ“ Done button. Press it once the work is done.

Nothing waits on the founder. There is no "notify the team" action any more: every rule ends in something you can do yourself in the ad account or in the creative. The one exception is πŸ“ž For the call β€” store-side findings you cannot act on. You do not chase those; you collect them and raise them on the call.
What happensWhen
The row goes and the counts dropImmediately β€” the list matches what you just did
The tool checks the ad account: a kill must read paused, a scale must show a copy in the CBONext daily pull β€” or now, if you press πŸ’Ά Pull spend
Confirmed β†’ closed for goodYou never see it again
Not confirmed after 2 days β†’ it comes back, flagged, with what it cost sinceNothing gets quietly lost
A πŸ”§ Fix has no proof in the ad account, so it is taken at your word β€” and it expires after 7 daysIf the ad still trips the same rule a week later, it comes back: the fix did not hold
⚠ Not confirmed β€” 94–Or#01-IM-H3 Nita marked this killed on 13 Aug, but the ad account does not show it β€” it is still delivering (€23 since). [ βœ“ Done again ] [ it's fine, dismiss ]

Usually the pause did not save, the duplicate failed, or the copy is still called … – Copy. Fix it in Meta and press βœ“ Done again. If it genuinely is fine, dismiss β€” that is recorded too.

A kill sweep is a dozen ads, not one. Every actionable row has a checkbox, and the one in the header selects everything currently listed β€” so filter to πŸ”΄ Kill first, pause them all in Ads Manager, then tick the header box and press βœ“ Mark 12 done. One press, one record.

12 selected 12 kills [ βœ“ Mark 12 done ] [ clear ]

The selection follows the chip you are on and resets whenever the list changes, so you can never mark something you are not looking at.

The click is for speed, the ad account is the truth. Pressing Done never makes something true β€” it only stops the tool asking twice while it checks.

The πŸ“‹ Today strip at the top of Live Ads is the honest answer to "am I finished?"

πŸ“‹ Today πŸ”΄ 12 to kill πŸ† 3 to scale πŸ”„ 2 refreshes βœ“ 4 done today Β· Nita 4

It empties as you work. When it reads nothing outstanding β€” the list is clear, you are done for the day.

6.7 The refresh queue β€” three kinds of row

Top of Live Ads, worst ROAS first. When an adset qualifies is Β§4.1 β†—; this is how you work it.

RowMeaningYou do
πŸ–ΌοΈ 1 staticA Statics adset β€” it only runs images.Generate 1 static β†’ Β§5 β†—
🎬 2 videosA Video adset β€” it only runs videos.Start Β· generate + review β†’ approve the angles β†’ publish to an editor (Β§3.6 β†—)
πŸ† needs a winner creativeThe adset is in the scale campaign.Generate nothing. Duplicate the listed winner into it β€” click the ad name to copy its ID.

After you press Start, the tool opens the right screen with a yellow brief naming the adset, and the creative launches back into that same adset β€” the ClickUp task carries the destination, so you do not have to remember it. That adset is then locked until the batch is live and judged.

Left a job half-finished? The row shows ⏳ in production Β· Continue β†’. It reopens your saved batch exactly where you left it, images included. Pressing Start on a running job does the same thing.
❓ Reference Β· Β§7

Every situation

The cases that actually come up. Find yours, do that.

"β›” 3 videos for this product are already made this week"

The weekly limit. Per product you make 3 videos + 3 statics per week β€” nothing more, nothing to unlock. The strip above the generator shows where you are (🎬 2/3 Β· πŸ–ΌοΈ 0/3) and turns amber with the words "3 videos already made this week" before you spend anything. When a type is full the other one usually still has room, and the message says so.

It resets by itself on Monday. There is no report to write, no call to wait for and nobody to ask β€” if it says the week is done for that product, move to another product.

Counted when the creative is sent to ClickUp, not when the ad goes live.

"N creatives marked launched in ClickUp, but there is no such ad in the ad account"

ClickUp is the record. When a task is set to launched, the ad is supposed to exist in Meta. This line appears when the tool looked for it by name and found nothing at all β€” checked against every ad the account has ever had, so a paused ad still counts.

Press Show me: each creative is listed with its ClickUp status and a link to the task. One of the two sides is wrong β€” either it was never actually launched, or the ad was named differently from the task. Fix whichever it is.

A task still in production is never listed here, however old it is.

"Pick your name first" / "your daily Claude budget is used up"

Pick your name once per browser β€” every generation is recorded under it. Re-opening something you already generated is free β€” it does not cost a new run.

The dashboard shows a red product but no "New creative" button

Read the line under the card β€” it will say every live test adset is above the trigger and the loss is in ads already paused. That is the correct answer. Do the kills and scales, generate nothing.

An ad says KILL but it has a great all-time ROAS

Check the four ROAS bars. If the older windows are strong the tool does not say KILL β€” it says 🟑 WATCH β€” kill if still weak: leave it running, come back in 7 days, kill it then if the recent window is still dead (Β§2.3 β†—). If it genuinely reads πŸ”΄ KILL, kill it.

An ad has barely spent and shows STARVED

Do not kill it. Under €25 it has not been tested, only shown. πŸ’Ž STARVED WINNER already converts β€” give it budget. 🌱 STARVED β€” HAS CARTS pulls demand β€” fund it in a clean adset or retire it deliberately. The usual cause is a crowded adset: 15 ads maximum.

The test adset already holds 40 ads

Clear it before generating anything. Open πŸ”΄ Kill for that product and pause what is listed, starting with ads launched 30+ days ago that never spent. New creative into a crowded adset gets no delivery.

I generated statics β€” which adset do they go in?

The one written on the ClickUp task, which is the adset the refresh started from (e.g. 94- CT01 - Statics). Statics never go into a Videos adset. If the Statics adset does not exist yet, create it (€20/day) rather than parking the images somewhere "for now".

The images come out wrong β€” invented parts, wrong colour

The reference is the problem, not the prompt. Pick a different reference β€” ideally the product alone on white β€” and generate again. Three attempts, then deselect that image (Β§5.4 β†—).

A product has no reference images at all

Nothing to do β€” the tool imports the whole landing page itself the first time and picks the best product shot. If the page has no clean product-only photo it says so, and that is your cue to check the results extra carefully (Β§5.3 β†—).

An ad gets cheap clicks but nobody adds to cart

The creative is working β€” that is what a cheap CPC means. The page or the offer is not. It shows as πŸ“ž FOR THE CALL and it is not yours to fix: do not kill the ad, do not cut it, do not rewrite the page. Note it and raise it on the call (Β§2.4 β†—).

A whole campaign is weak but no single ad is flagged

That is what the refresh queue is for β€” it works at adset level, not ad level (Β§4.1 β†—). If the adset is not in the queue it is fine, and the loss is elsewhere: the scale campaign, or ads already paused.

An adset in the scale campaign is losing money

It appears as πŸ† needs a winner creative with the winners listed underneath. Duplicate one in. Do not generate new creative for it. If nothing is listed, no creative has passed the graduation gate yet β€” the fix is upstream: get a test winner first (Β§3 β†—).

I killed an ad but it is still on the list

Press βœ“ Done on the row β€” the tool cannot see your click in Ads Manager (Β§6.6 β†—). For confirmation right now, press πŸ’Ά Pull spend.

Something I marked done came back "not confirmed"

The ad account disagrees. A kill is still delivering β€” the pause did not save. A scale has no copy in the CBO β€” the duplicate failed, or the copy is still named … – Copy so it cannot be matched. Fix it in Meta and press βœ“ Done again, or dismiss if it really is fine.

A scale row disappeared on its own

Correct: the tool found a copy of that creative already running in the CBO, so the job is done. It clears itself whether or not anyone pressed Done.

I closed the tab in the middle of generating

Everything is saved. The refresh row shows ⏳ in production Β· Continue β†’ β€” it reopens the batch with your generated images restored.

The numbers do not match Ads Manager

Small differences are normal β€” Meta keeps re-attributing for a day or two. If a banner says the account total does not reconcile, treat kill and scale calls as unsafe until it is fixed and fix the naming that caused it (renamed ads stop reconciling β€” Β§6.5 β†—). Off ads are excluded here, so an adset total will be lower than an Ads Manager view that includes paused ads.

I am not sure whether to kill something

Read the reason, the four ROAS bars, and the spend. Under €25 β†’ too early, always. Over €100 with a strong 14-day or all-time number β†’ watch, do not kill. Otherwise follow the reason on the row β€” it is the decision, not a suggestion. When you genuinely cannot tell, leave it one more day: a wrong kill costs a winner, a day of waiting costs a few euros.

πŸ“… Weekly plan Β· Β§9 Β· DRAFT

Nita's Week

One focus per day β€” the whole week on one board. This is a draft: check it, then give your suggestions on the call.

πŸ“… The week at a glance

Mon β€” Analyze. One deep pass on the ad account: stop losing ads, scale the winners, classify every weak product into the CREATIVE list (ad is the problem) or the CONVERSION list (page is the problem).

Tue β€” Create & launch statics. Video scripts + statics for Monday's creative list; finished statics go live the same day; new versions of the winners.

Wed β€” Publish & pages. Publish the ready ads first, then walk the weak pages like a customer and note the problems for the call. Ads first, pages second β€” always.

Thu β€” Push the editors. This week's videos must be finished; launch what lands.

Fri β€” Verify & report. Is everything the week made actually live? Onboard the new product (research + first ads β€” live today). Write the week report: the week on one page.

Sat β€” Launch, call & plan. Anything missing goes live FIRST, then the call, review wasted spend, plan next week.

Sun β€” off.

πŸ“… Open the full board β†—   hover any task there for its full meaning Β· every rule is in its NOTES

πŸ’¬ The answers Β· Β§10

Q&A β€” every answer from the calls

You don't have to remember what was said on a call, or wait for the next one to ask again. Every answer is kept here, by date.

πŸ’¬ What's in it

Every call, kept by date. Each call you ask questions and get answers β€” they all stay on one page, with a tab per date. Nothing gets lost when the call ends.

Search across all of them at once. One box at the top. Type a word β€” kill, CBO, editor, statics β€” and every answer that mentions it comes up, from any date.

Use it before you ask. If the question was answered on an earlier call, the answer is already there β€” that is faster than waiting for a reply. If it isn't there, then ask.

πŸ’¬ Open the Q&A β†—   press q from anywhere in this SOP Β· search box: press /

❓ If your question isn't answered there

Ask it anyway β€” don't sit on it. A question you're holding is usually the reason a task didn't move. Put it in the ClickUp task, or bring it to the call.

Every new answer goes into this page under that call's date, so the same question never has to be asked twice.

Coming soon: an Ask box on that page β€” type a question in your own words and get the answer built from what has already been answered on the calls. It is being tested now and will appear there when it's ready.

πŸ” Section 0 Β· start

Access & Confidentiality

Start here. You reach the tool privately over Tailscale β€” a secure connection, not the open internet. Access is personal, non-transferable, and confidential. Read Β§0.3 before you start.

🀫
Everything here is confidential. Never share the brand name, product names, domains, creatives, data, or even that you work on this account β€” with anyone. Your access is yours alone and can be revoked at any time.

0.1 Get access (Tailscale) β€” one-time setup

The tool lives on a private network. To reach it you install Tailscale and accept the invite we send you.

  1. Install Tailscale on your computer β†’ https://tailscale.com/download (Windows / macOS).
  2. Sign in with your own account (Google / Microsoft / email) β€” the same address the invite was sent to.
  3. Open the invite link we send you and click Accept / Connect. This shares one machine with you β€” nothing else.
  4. Make sure Tailscale is running and connected (the icon is on/green) whenever you work.
  5. Open the links in Β§0.2.
Private by design: the tool links below only open while you're signed in to Tailscale with the invited account. They will not load in a normal browser without it β€” that's intentional.

0.2 Your links

WhatLink
ClickUp β€” work queue03 - Media Buyer - Product Testing β†—
Creative tool Β· Tailscalehttp://100.91.34.1:8100/ β†—
This SOP Β· Tailscale…/HEAD_OF_PERFORMANCE_SOP.html β†—

ClickUp opens in your ClickUp login β€” your daily work queue, where products flagged NEED SCALLING start (Β§3.1). The tool, SOP & guide need Tailscale connected first (Β§0.1).

Everything is in this one document. Β§1–§5 are the rules, Β§6 is the click path through the tool, and Β§7 answers the situations that come up. New here? Start with Β§6.1 β€” your day β†—.

0.3 Confidentiality β€” read before you start

By using this access you agree:
  • Never share the brand or company name, product names, domains, or account details with anyone.
  • Never share, copy, screenshot, download or repost any creative, image, video, script, research, angle or data outside the agreed workflow.
  • Don't reference this brand in your portfolio, case studies, socials, or to any other client β€” and don't disclose that you work on it.
  • Your access is personal and non-transferable β€” never share your login, the invite, or the Tailscale link.
  • When in doubt, ask first before sharing anything externally.

Access is granted on trust and can be revoked at any time. Treat every asset as the client's property.

0.4 If a link won't connect

  • Check the Tailscale icon is on/connected (reconnect if it dropped).
  • Confirm you're signed in with the invited account, and that you accepted the invite.
  • Try the other address form in Β§0.2 (IP vs machine name).
  • Still stuck β†’ message the team β€” don't try other routes or ask outsiders.
Deinster Β· Head of Performance Living SOP Β· source: docs/HEAD_OF_PERFORMANCE_SOP.md
β™» Iterate winners Β· Β§11 Β· START WITH STATICS

Iteration β€” mine the winners

A winner already paid for its learning. Iteration re-uses it: the winning words never change β€” one thing changes per test. For now: statics only β€” they are the fastest and cheapest tests we have.

🧠 Rule #1 β€” understand the winner BEFORE you generate

The feature works β€” we are now confirming the QUALITY of what it writes. So for this first phase: quality over speed.

Before you press Generate: read Step 1 slowly and make sure you can say, in one sentence, why this ad won β€” its main idea, its angle, and its structure. If you cannot say it, do not generate yet β€” re-read the WON BECAUSE and the words on the winning picture.

After it generates: check every brief against that one sentence. The iteration must keep the same core winning idea β€” same promise, same meaning. If a brief changed the meaning (a different promise, a weaker claim, a new idea that was not in the winner), do NOT publish it β€” regenerate, or flag it to Mustapha.

Once we see the iterations come out consistently accurate, we rely on the tool more and speed up. Until then, you are the quality gate.

β–Ά The whole job β€” 5 clicks

1. Open β™» Iterate in the tool. The yellow bar shows START HERE β€” the best winner. Press it.

2. Step 1 opens β€” 10 seconds of reading: which picture actually made the money, and the exact words on it. (The tool merged all "– Copy" ads and picked the proven image for you.)

3. Step 2 β€” pick ONE card with the πŸ–ΌοΈ image icon. Skip the 🎬 video cards for now.

Video winner β†’ one image card: T1 β€” the video's message becomes 8 static images.

Static winner β†’ three image cards:
  S1 Β· same text β†’ new layouts β€” the winning words on 8 frames they never wore. Tests: is the MESSAGE the asset?
  S2 Β· winner layout β†’ new text β€” the winning frame, 8 new lines. Tests: is the FRAME the asset?
  S3 Β· same layout + text β†’ new design β€” same everything, a sibling design skin. A twin Meta can place separately.

4. Press Generate β†’ review the briefs β†’ Send to the Publisher β†’ publish. The tool makes the ClickUp task, the Drive folder, assigns the winner's editor, and puts the ad copies in the task.

5. When the images come back from the editor: launch them in the product's CT adset the same day. Name each ad exactly like its Drive file (without .png) β€” that is how the tool learns which layout sells.

πŸ“ The rules (the tool enforces most of them)

Statics only for now. Video tiers (T2/T3) come later β€” do not pick 🎬 cards yet.

One card per winner at a time. Generate it, launch it, let it spend β€” then come back for the next card.

Never repeat a tier marked β–Ά testing / βœ“ done. The card tells you; a running test must finish first.

Ad copy: use Variant 1 first β€” it is the winner's own proven text, reused on purpose.

Winner bar: an image is iterable from €50 spend at ROAS 2. Below that the tool will not offer it β€” nothing for you to check.

🀝 What the tool already did for you

βœ“ Held the winner's words word-for-word Β· βœ“ attached the winner's proven ad copy Β· βœ“ excluded the layout that already won (S1) Β· βœ“ rotated in layouts never tested on this product Β· βœ“ blocked the layouts that lose account-wide Β· βœ“ banned the lines that already failed. You never have to remember any of this β€” if a card is offered, it is safe to press.