Google Ads = Keyword-matching. The user declares intent via search query. We match it with the right campaign, copy, and landing page. Each campaign owns a single intent cluster and a single market — never mix.
| Date | Decision |
|---|---|
| 18 Apr | Session 28 absorbed into Session 32 (active). Rogue v4.0 folder archived. Co-work full migration to F:/Claude Root/ (20 folders, 114 path rewrites). |
| 17 Apr | Daily Audit tab shipped — dynamic manifest-driven snapshot viewer. Windows Task Scheduler template for daily snapshot. |
| 14–15 Apr | Creative library locked: PIL v5 single source of truth, v3b three-format unified, canonical library auto-ingest, scale-anchor ref pack (kills oversized-bottle at source). |
| 13 Apr | ADHD SERP pivot — LP swap via adhd-supplements-guide.html (blog, editorial framing) replaces full rebuild. Wave 8.1 retired, 8.2 becomes primary path. |
| 12 Apr | 14 orphan v4.0-named AGs removed from 3 legacy brand PMax. Brand exclusions on 18 PMax (25 ops). Neg-keyword sets on 13 Search + 4 DG (43 ops). Purchaser exclusions on 18 PMax. YT Awareness (4 DG campaigns) deployed PAUSED. Wave 8 audit adds 15 items to tracker. |
| 11 Apr | US Brain Fog (23750480107) + US Gut-brain (23750480365) PMax deployed PAUSED. MC feeds linked, listing groups, custom audience signals wired. |
| 9 Apr | ROAS targets removed from all PMax — switched to max conv value. Audience signals applied to 13 Search (923 criteria, observation-only). “No retargeting layer” concern closed — PMax already retargets. |
| 6–7 Apr | Wave 0 blitz: logos, MC feeds, listing groups, sitelinks/callouts (104 each), UTMs on 28 campaigns. Wave 0.5 rapid-onset copy fixes across 11 RSAs. |
| 5 Apr | Creative formats extracted to creative dashboard. Matching principle defined — Google = keyword-matching, Meta = person-matching. |
| 4 Apr | v4.0b PMax split 4→16 campaigns. GABA prioritised over Dopamine. Never merge campaigns for low volume. Precursor Education page = Priority #1. |
| # | Campaign | Market | Intent | Budget/day | Landing Page | Status |
|---|---|---|---|---|---|---|
| 1 | UK Problem-Aware | UK | 88–95% transactional | £20 | QUIZ | PAUSED |
| 2 | DE Ritalin ADHS | DE | 59–74% commercial | £15 | COMP to build | PAUSED |
| 3 | DE Konzentration | DE | mixed transactional | £15 | CAT | PAUSED |
| 4 | FR Anti-Fatigue | FR | 88%+ transactional | £20 | PROD (Pro) | PAUSED |
| 5 | FR TDAH & Ritaline | FR | 59–74% commercial | £10 | COMP to build | PAUSED |
| 6 | UK Dopamine & Smart Focus | UK | 34–66% informational | £25 | GUIDE EN live | PAUSED |
| 7 | UK GABA | UK | 92–98% transactional | £15 | PREC EN live | PAUSED |
| 8 | DE Dopamin | DE | 73% informational | £10 | GUIDE DE to build | Pending LP |
| 9 | DE GABA | DE | 92%+ transactional | £10 | PREC DE to build | Pending LP |
| 10 | FR Dopamine | FR | 34–89% mixed | £10 | GUIDE FR to build | Pending LP |
| 11 | FR GABA | FR | 98% transactional | £10 | PREC FR to build | Pending LP |
| 12 | US Dopamine | US | 34–37% transactional | £25 | GUIDE EN live | PAUSED |
| 13 | US GABA | US | 92%+ transactional | £20 | PREC EN live | PAUSED |
| 14 | US Brain Fog | US | 88–95% transactional | £8 | QUIZ | PAUSED |
| 15 | UK Perimenopause | UK | Problem-aware | £15 | PERI to build | PAUSED |
| 16 | DE Gut-Hirn | DE | Problem-aware | £13 | GUT to build | PAUSED |
| 17 | US Perimenopause | US | Problem-aware | £14 | PERI to build | PAUSED |
| 18 | US Gut-brain | US | Problem-aware | £15 | GUT to build | Not created |
| Total | £275 | |||||
| Campaign | Market | Intent Cluster | Budget/day | Bidding | Compliance | Status |
|---|---|---|---|---|---|---|
| PMax UK Brand (legacy) | UK | Navigational | £200 | Max conv value | GREEN | ENABLED |
| PMax DE Brand (legacy) | DE | Navigational | £300 | Max conv value | GREEN | ENABLED |
| PMax FR Brand (legacy) | FR | Navigational | £100 | Max conv value | GREEN | ENABLED |
| PMax US Brand (legacy) | US | Navigational | £80 | Max conv value | GREEN | ENABLED |
| PMax UK GABA Precursor | UK | Transactional | £40 | Max conv value | GREEN | PAUSED |
| PMax UK Dopamine | UK | Educational | £30 | Max conv value | AMBER | PAUSED |
| PMax UK Brain Fog | UK | Problem-aware | £25 | Max conv value | GREEN | PAUSED |
| PMax UK Attention & Focus | UK | Transactional | £25 | Max conv value | GREEN | PAUSED |
| PMax UK Perimenopause | UK | Problem-aware | £27 | Max conv value | AMBER | PAUSED |
| PMax DE GABA | DE | Transactional | £30 | Max conv value | GREEN | PAUSED |
| PMax DE Dopamin | DE | Educational | £20 | Max conv value | GREEN | PAUSED |
| PMax DE Ritalin/ADHS | DE | Medication alt. | £40 | Max conv value | RED | PAUSED |
| PMax DE Gut-Hirn | DE | Problem-aware | £22 | Max conv value | GREEN | PAUSED |
| PMax FR GABA | FR | Transactional | £20 | Max conv value | GREEN | PAUSED |
| PMax FR Dopamine | FR | Educational | £15 | Max conv value | GREEN | PAUSED |
| PMax FR Anti-Fatigue | FR | Unique | £20 | Max conv value | GREEN | PAUSED |
| PMax US GABA | US | Transactional | £25 | Max conv value | GREEN | PAUSED |
| PMax US Dopamine | US | Educational | £15 | Max conv value | AMBER | PAUSED |
| PMax US Perimenopause | US | Problem-aware | £22 | Max conv value | AMBER | PAUSED |
| PMax US Brain Fog (11 Apr) | US | Problem-aware | £25 | Max conv value | GREEN | PAUSED |
| PMax US Gut-brain (11 Apr) | US | Problem-aware | £20 | Max conv value | GREEN | PAUSED |
| Total | £1,076 | |||||
| Campaign | Market | Campaign ID | Budget/day | Ad Groups | Status |
|---|---|---|---|---|---|
| YT Awareness UK | UK | 23747058437 | £12 | 14 AGs · 26 DG video ads | PAUSED |
| YT Awareness DE | DE | 23751692320 | £10 | (shared seed — 7 new UGC Shorts + 16 historical) | PAUSED |
| YT Awareness FR | FR | 23747062952 | £8 | PAUSED | |
| YT Awareness US | US | 23741770995 | £8 | PAUSED | |
| Total | £38 | ||||
v4.0/go-live-rundown.md.adhd-supplements-guide.html (built, content-fixed 14 Apr). Wave 8.2b awaiting Calum compliance review; Wave 8.2c = URL swap on campaign 11666978147. Wave 8.1 retired.feedback_negative_keyword_rules.md: "review"/"amazon"/"alternative to ritalin" are NOT negatives)._shared/style.css, config.js, components.js. 13 auto-rendering components (header, starRow, proofStrip, productTable, bundleBox, productCta, videoGrid, trustCarousel, scratchCard, stickyCtaBar, footer, disclaimer, progressBar). Both EN LPs refactored — ~1,600 lines removed. New pages inherit canonical product URLs, market strings, and trust data from config. LP production hardening (8 Apr): error resilience, a11y, performance, print stylesheet, cache versioning v4. All 26 tests pass.
| Intent Cluster | Daily Budget | Bidding | Campaigns | Notes |
|---|---|---|---|---|
| Brand (Navigational, legacy) | £680 | Max conv value | 4 PMax ENABLED | Elevated while new campaigns paused. Only currently-live spend. |
| GABA (Transactional) | £170 | Max conv value | 4 Search + 4 PMax | Priority #1 — 92–98% transactional intent |
| Dopamine (Educational) | £115 | Max conv value | 4 Search + 4 PMax | Lower intent — accept lower ROAS for pipeline |
| Brain Fog / Attention | £83 | Max conv value | 2 Search + 3 PMax | Inc. US Brain Fog PMax (£25/day, deployed 11 Apr) |
| Perimenopause (Problem-aware) | £78 | Max conv value | 3 Search + 2 PMax | Wave 3 — AMBER compliance (ASA + FTC). Awaits PERI LP. |
| Gut-Brain (Problem-aware) | £70 | Max conv value | 2 Search + 2 PMax | Wave 4 — US Gut-brain Search not yet created. Awaits GUT LP. |
| Ritalin / ADHS | £65 | Max conv value | 2 Search + 1 PMax | Compliance-sensitive — RED flag on DE PMax |
| Anti-Fatigue (FR) | £40 | Max conv value | 1 Search + 1 PMax | FR-unique positioning |
| Problem-Aware (UK quiz) | £20 | Max conv value | 1 Search | Quiz funnel — broad UK catch-all |
| Konzentration (DE catch-all) | £15 | Max conv value | 1 Search | Mixed transactional (category page) |
| YT Awareness (ToF) | £38 | Max conv | 4 Demand Gen | DEPLOYED 12 Apr — 7 new UGC Shorts + 16 historical winners. All PAUSED pending 0.11b UI purchaser-exclusions. |
| Total | £1,374 | 43 campaigns | +£15 rounding variance across market-level budgets |
v4.0/deployment-log.md and v4.0/go-live-rundown.md.| Date | Action | Details | Outcome |
|---|---|---|---|
| 18 Apr | Wave 0.12 decisions locked (no mutation yet) | 10 sub-waves reviewed against live Google Ads 180-day data. 0.12a/b/c/e/g/j approved (a/b/c/e trimmed per Calum notes; b includes focus 7; g flipped after 0-conv data verify; j clones 3,798 Austria Ritalin negs to Germany Ritalin 17883563191). 0.12d context-corrected (reject → approve-on-infants-only; kids/teen/kinder/enfant stay alive — child sub-niche banked to memory/feedback_children_supplement_niche.md). 0.12f heavily trimmed (6 off-topic on Shop-COM+Shop-DE only). 0.12h rejected (student terms deferred to Q5). 0.12i audit complete — 128/137 brand-out terms are purchase intent; scope expanded from 3 ENABLED to ~134 non-brand/non-legacy/non-retargeting campaigns incl. RecoverUp PMax UK/USA and Discovery UK Competitor-Leads. Full breakdown: v4.0/go-live-rundown.md 0.12a–0.12j rows. Decision JSON: v4.0/agent/wave-0.12-decisions-2026-04-18.json. |
Deploy script pending (awaiting final 0.12i scope confirmation, then --dry-run) |
| 18 Apr | Daily Audit automation live | BrainzymeSnapshot Windows Task Scheduler registered (AI-WORKSTATION-, runs daily 08:47, Interactive only). First snapshot pulled + pushed: CPA £28.09 (−2.5%), ROAS 1.45x (+2.8%), 226 campaigns, 0 critical / 12 warning alerts. Dashboard Daily Audit tab now self-refreshing. |
Done |
| 18 Apr | Dashboard v4.0-alt refresh (all 7 tabs + Wave 0.12 Review) | Overview/Architecture/Issues/Landing/Budget/Execution Log all reconciled to current state (43 campaigns, £41,670/mo, Perimenopause + Gut-brain + ADHD LPs added, max conv value, L2 done, H3 pivoted). New Wave 0.12 Review tab with 10 sub-wave decision cards + localStorage persistence. | Done |
| 18 Apr | Session 28 absorbed, rogue v4.0 archived, co-work migration | Session 28 superseded by Session 32 (active). Rogue v4.0 (at Desktop/co-work/) archived. Full co-work migration to F:/Claude Root/ — 20 folders, 114 path rewrites, Pinecone orphan purge (1,226 stale vectors). | Done |
| 18 Apr | PIL v5 overrun fix | 16 headlines rewritten to fit 936px 4:5 budget. Fail-loud _check_line_fits clamp wired into all 4 v3b composites in pil_v5.py. Auto-shrink permanently banned. 50 catalog entries PIL-recomposited 4x5+sq. |
Done |
| 17 Apr | Daily Audit tab + snapshot cron | Shipped dynamic manifest-driven audit viewer; pipeline/snapshots/manifest.json. Windows Task Scheduler template (tools/setup_snapshot_task.bat) — registered 18 Apr. |
Done |
| 14–15 Apr | Creative library lockdown | PIL v5 single source of truth. v3b three-format unified (4:5 / 1:1 / wide). Canonical library auto-ingest on approved heroes. Scale-anchor ref pack kills oversized-bottle at source. 2026-04-15 flat-colour PIL deferred until needs-work text/product overlap items cleared. | Done |
| 14 Apr | ADHD supplements blog LP built | Editorial blog framing for legacy SERP UK ADHD campaign. adhd-supplements-guide.html live. Content-fixed 14 Apr. Git 9f4b871. |
Wave 8.2b compliance review pending |
| 13 Apr | Wave 8 reconciliation vs Session 30 | 8.1 retired (no full rebuild needed). 8.2 becomes primary path (LP swap). 8.7 retired. ADHD SERP strategy pivoted: LP swap replaces full rebuild. | Done |
| 12 Apr | Wave 8 post-audit (15 items) | Carried forward into go-live-rundown.md. Orthogonal to v3.0 tracker (which is still valid). | Done |
| 12 Apr | PMax purchaser exclusions | Applied GA4 Purchaser lists as user-list exclusions on 18 v4.0 PMax campaigns. 18 ops. | Done |
| 12 Apr | Neg-keyword shared sets attached | Brand list (11004385546, 137 terms) + general (7843897972, 43 terms) + market-specific attached to 13 Search + 4 DG. 35 ops Search, 8 ops DG. | Done |
| 12 Apr | Brand exclusions on 18 PMax | 3 shared brand-exclusion sets (Universal 10711540331, DE 11010198918, FR 11011151287) applied. 25 ops. | Done |
| 12 Apr | YT Awareness (4 DG campaigns) deployed PAUSED | UK 23747058437 · DE 23751692320 · FR 23747062952 · US 23741770995. 14 AGs, 26 DemandGenVideoResponsiveAds, £38/day. Seeded with 7 new UGC Shorts + 16 historical winners. Manual unpause after Wave 0.11b UI purchaser exclusions. | PAUSED |
| 12 Apr | 14 orphan AGs removed from legacy PMax | 14 v4.0-named AGs (Professionals, Students, Brain Fog dupes, etc.) removed from 3 legacy UK/DE/FR brand PMax. Legacy AGs (GA4 All Users, Purchasers, seasonal) untouched. Script: cleanup_pmax_v4_brand_ags.py. |
Done |
| 11 Apr | US PMax campaigns deployed PAUSED | PMax US Brain Fog (23750480107, AG 6699372815) + PMax US Gut-brain (23750480365, AG 6699373220). MC feeds + listing groups + search themes + custom audience signals wired. Interim LPs until dedicated LPs built. | PAUSED |
| 9 Apr | ROAS targets removed from all PMax | Switched to max conv value on all 15 new PMax + 4 legacy brand. Allows learning without over-constraint. Revisit when creative assets are fully refreshed. | Done |
| 9 Apr | Audience signals on 13 Search campaigns | 923 observation-mode criteria: 39 remarketing lists (GA4 All Users + CPC Interactors + Customer Match per market) + 884 in-market audiences (68 universal health/wellness). bid_modifier=1.0 (observation only). Closes L4. | Done |
| 7 Apr | Wave 0.5 creative refresh | 11 RSAs rebuilt across 5 campaigns — removed stale seasonal, added rapid-onset hooks per feedback guardrails. | Done |
| 6 Apr | Wave 0 technical blitz | Logos (15 PMax × 2) · DE Gut-Hirn EU_POLITICAL_ADS exemption · MC feed link × 3 PMax · listing group filters × 3 PMax · 104 sitelinks on 13 Search · 104 callouts on 13 Search · UTM tracking on 28 campaigns. | Done |
| 6 Apr | LP modular system deployed | Shared component system: _shared/style.css, config.js, components.js. 13 auto-rendering components. Both EN LPs refactored — ~1,600 lines removed. Git 668efe5. |
Done |
| 5 Apr | Creative formats extracted | Separated creative format specifications into dedicated creative dashboard (creative.html) | Done |
| 5 Apr | Matching principle defined | Google = keyword-matching (user declares intent). Meta = person-matching (we target based on profile). Documented as core architectural principle. | Done |
| 4 Apr | PMax architecture split (v4.0b) | Expanded from 4 PMax campaigns to 16 (1 per intent cluster × market). Each campaign gets independent budget control and compliance status. Later expanded to 21 with Perimenopause + Gut-Hirn + 2 US additions. | Done |
| 4 Apr | GABA prioritised + merge philosophy | GABA 92–98% transactional vs Dopamine 34–73%. Precursor Education = Priority #1. Never merge campaigns for low volume alone. | Done |
| 1 Apr | v3.0 audit completed | Full account audit across Search, PMax, conversion tracking, budget, and creative. 17 issues identified (3 critical, 5 high, 5 medium, 4 low). | Done |
| 1 Apr | ROAS guardrails rolled back | PMax UK/DE/FR Target ROAS 200% removed. Campaigns were over-constrained, limiting spend and learning. Switched to Maximise Conversions. | Done |
Performance snapshots from tools/performance_snapshot.py. Current report shows active issues — mark resolved to hide. Older reports are archived below.
10 sub-waves proposed from 180-day 0-conv search-term mining (£2,715 waste across 500 terms). Empty account-level list 10439392410 is the mutation target. Review each sub-wave, approve/modify/reject, and add notes. Decisions auto-save to browser. Claude reads this state before executing the batch mutation.
Four risk-appetite decisions blocking Wave 1 campaign unpauses across UK, FR, and DE. Each question is tied to a browser-verified landing-page compliance issue from the 6 April audit. Answering all four unblocks ~11 PAUSED Search + PMax campaigns for unpause.
Live, in-play issues blocking Phase 1 launch. Each subsequent Go Live N tab will hold the next set of pending blockers. Answer the dropdowns + add notes — auto-saves to browser. Export JSON when done and paste back in chat.
All landing pages ship on Shopify going forward. GitHub Pages LPs (apps.nutritionalproducts.org/landing-pages/*) are DEPRECATED as legacy reference. No new GitHub Pages LPs. Memory ref: feedback_lp_deployment_policy_shopify_only.md.
Phase 1 launch order: 1) UK ADHD blog FIRST (Session 38 ports, ~95% ready). 2) Existing ENABLED brand catchers ranked by 90d revenue: PMax DE £29.9k → PMax UK £21.6k → PMax FR £10.3k → PMax US £3.7k → SERP brand cluster. 3) Wave 1 Quick Wins. 4) Wave 2 GABA/Dopamine (single-LP launch, A/B deferred). 5) DG last.
f-final./products/buy-gaba-supplements + /products/buy-dopamine-supplements; US /products/gaba-supplements + /products/dopamine-supplements; DE /products/gaba-supplement + /products/dopamin-supplement. Same ELITE/PRO products, different SEO handles. These are Phase 1 launch destinations; Shopify blog versions go in build queue.precursor-education.html, dopamine-guide.html, pre-port adhd-supplements-guide.html. Legacy reference only. Do not route new ad traffic.v4.0/utm-url-rules.md. Per-campaign register in sheet tab "2026 Launch UTMs", 38 rows.Reframed from Go Live 1 (decision tracker) into blocks of work that can be done quickly, ordered by speed-to-launch. Each block lists the action, who's blocked, and the step-by-step. Calum's directive 2026-04-27: ADHD ad campaign go-live + refresh of existing PMax brand campaigns are top priority because they're easy wins. Built from v4.0/quiz-rebuild/MORNING-BRIEF-2026-04-27.md + PENDING-TASKS-REGISTRY-2026-04-27.md + Opus 4.7 pre-launch review.
Layering note: Go Live 1 (left of this tab) remains the canonical decision-tracker for A–K + B2/C2. This tab is the execution view — sequence + steps, not options.
These two unlock the highest immediate revenue with the least effort. Both are mechanically ready — only Calum sign-off is needed before Claude executes.
11666978147)python tools/google_ads_get_ads.py --campaign 11666978147 → export current RSA final_urls + budget id.v4.0/utm-url-rules.md: bz_wave=8.2c-v2, bz_lp=adhd-blog-f-final, bz_compliance=clean.v4.0/deployment-log.md + cross off in go-live-rundown.md.campaign_shared_set to confirm whether brand-out shared set 11004385546 is attached. ~10 min.utm_source=google, utm_medium=cpc, utm_source_platform=google_ads, utm_campaign={campaign_id}, utm_id={campaign_id}, bz_wave=legacy_brand, bz_lp={destination_handle}, bz_product={product_slug_or_brand}, bz_compliance=clean.deployment-log.md.Each item below needs only Calum's call. Once approved, Claude executes immediately. Do these in parallel with Block 1.
python tools/shopify_theme_drift_check.py --store uk --report-only).relay.nutritionalproducts.org/quiz/submit when relay lands; until then to native Shopify Customer Account creation as fallback.tools/shopify_publish_page.py. Postcheck the 200 + verify form submits to GHL inbox.https://brainzyme.com/blogs/neurodiversity-tips/brain-fog-quiz?preview_theme_id=185834471805). Visual QC.python tools/shopify_publish_page.py config/shopify_publish/<handle>.json.published=true, log entry to v4.0/shopify-build/v1-firstsync/DEPLOYMENT_LOG.md + one-liner to v4.0/deployment-log.md.quiz-logic-spec.md §6.config/illustration_runs/ (5 JSON configs).tools/illustration_run.py with --dry-run first, then for-real with the approved configs. OCR + haiku QC gates fire automatically.output/approved/ → Claude inserts into Shopify articles via Admin API. Log batch to deployment-log.md.From the Opus 4.7 pre-launch review (banked in session 32 file). These don't block Block 1.1 ADHD swap or Block 1.2 brand stamping (those are edits to already-running campaigns). They DO block any new market unpause + DG launch.
purchase event fires with correct value + items array.deployment-log.md.v4.0/agent/state.json + crosses 0.11b off the rundown..accordion__content + .open class).deployment-log.md.These don't block Phase 1 launch but turn single-LP launches into proper A/B tests + extend coverage to deferred lanes/markets.
v4.0/quiz-rebuild/python-relay-spec.md; FastAPI service at relay.nutritionalproducts.org/quiz/submit; replaces console.log + localStorage queue.TEST-UK-BRAINFOG-QUIZ-{A,B,C}, TEST-UK-GABA-{ALT,BLOG}, TEST-UK-DOPAMINE-{ALT,BLOG} in v4.0/agent/ab-tests.json.recommendation_v2.choice values to campaign-lp-strategy Overview tab filter (line ~99 in index.html).smarter-brain LP: zero paid traffic but still indexable. Recommend noindex or rewrite within 2 weeks of launch.JmxIGIN-syw) is the only animated product-demo in the corpus and carries 95% of attributed conversions. Yet product-demos are 3% of corpus and testimonials soak 86% of impressions. PMax-broad outperforms every Demand Gen niche audience by 8-23x across UK / DE / FR / US. Single highest-leverage move: commission product-demos and route them through PMax. LP routing fix and 17-creator format-diversity test are secondary. See Master Decisions tab.
Product-demo CR is 6.6x testimonial CR. PMax-broad CR is 8-23x every Demand Gen niche audience across all 4 markets. The winner JmxIGIN-syw is the only animated product-demo in the corpus and carries 95% of attributed conversions, almost entirely from PMax-broad — not from the Students / ADHD / Workers DG segments that were carefully targeted to it. Commission more product-demos, deploy via PMax, pause Workers DG. LP routing + format-diversity test are secondary.
Audit ran on 90-day historical data. Triangulation against today's live state shows: Action 1 (pause Workers DG) is fully done — every Demand Gen campaign is paused. The actual leak today is PMax under-performance across all 4 markets (ROAS 0.9-1.6x vs 3.5x target). PMax FR is losing money on every spend pound. New #1 lever: fix PMax campaign-config, not commission new creative.
| # | Action | Status | Reason |
|---|---|---|---|
| 1 | Pause DE + UK Workers DG; reroute to PMax | ✓ ALREADY DONE | All DG campaigns paused; PMax now the bottleneck. Audit's "3-7x lift" estimate invalidated. |
| 2 | Commission 3-5 product-demo variants | STILL VALID | Structural recommendation independent of pause state. |
| 3 | Fix LP routing — TOF → Bundle LP | STILL VALID | Reframed: applies to PMax asset groups (where TOF traffic now lands). |
| 4 | Pause 29 compliance-blocked videos | NEEDS REFRAMING | 18/29 sat in ADHD/Ritalin DG (now paused). Regulatory exposure neutralised at campaign level. |
| 5 | Validate 3 scale candidates (£700, 14d) | STILL VALID | Independent of pause state. |
| 6 | Format-diversity test (optional) | STILL VALID | Optional; runs alongside #2/3/5. |
| N1 | PMax campaign-config audit (asset coverage, signal strength, brand exclusions, 10x-CPA budget floor) | NEW — #1 LEVER | All 4 PMax miss target. FR (£100/d) and US (£40/d) below the 10x-target-CPA budget floor per playbook. |
| N2 | PMax FR rescue or kill — 0.9x ROAS | NEW | £761/wk producing £683 conv value = -£78 weekly contribution. |
| N3 | Bump SERP UK ADHD budget £12 → £20/day | NEW — tonight | Losing 21% impression share to budget at near-target CPA. Cheapest scale lever in the account. |
| N4 | SERP brand UK attribution audit | NEW | 9.6x ROAS at £3.76 CPA — only profitable engine. May be masking prospect-side weakness. |
| N5 | Batch attach brand-out shared-set to 130 pending campaigns | NEW — ops | Single operation could unblock the deferred DG/Search pipeline. |
| Campaign | Type | Mkt | Spend | Conv | CPA | ROAS | Daily £ | IS-lost (budget) |
|---|---|---|---|---|---|---|---|---|
| PMax DE (ex Legacy Smart Shopping) | PMAX | DE | £1,803 | 67.5 | £26.70 | 1.6x | £250 | 6.7% |
| PMax UK (ex Legacy Smart Shopping) | PMAX | UK | £1,409 | 63.2 | £22.29 | 1.6x | £180 | 8.3% |
| PMax FR (ex Legacy Smart Shopping) | PMAX | FR | £761 | 14.1 | £53.97 | 0.9x | £100 | 6.4% |
| PMax USA (ex Legacy Smart Shopping) | PMAX | US | £312 | 9.2 | £34.00 | 1.1x | £40 | 1.9% |
| SERP - k/w: brainzyme DE | SEARCH | DE | £185 | 5.0 | £37.00 | 1.6x | £30 | 3.0% |
| SERP - k/w: brainzyme UK | SEARCH | UK | £91 | 24.2 | £3.76 | 9.6x | £30 | — |
| SERP UK ADHD | SEARCH | UK | £88 | 4.3 | £20.47 | 1.5x | £12 | 21.0% |
| SERP - k/w: brainzyme FR | SEARCH | FR | £18 | 2.0 | £8.96 | 9.3x | £30 | — |
| SERP - k/w: brainzyme USA | SEARCH | US | £1 | 1.0 | £1.09 | 14.3x | £30 | — |
| Stage | When | Framing | Status |
|---|---|---|---|
| 1. Initial | Waves 1-3, early Apr 2026 | "Brainzyme has lots of bad ad creative; commission new formats to fix the 0.52% winner rate." | Superseded |
| 2. Mid | Wave 4, mid Apr 2026 | "Engagement is fine (85% avgViewPct). Leak is post-click. Investigate LP + audience." | Narrower view |
| 3. FINAL | 2026-04-26 (this doc) | "Leak is format-allocation. Product-demo 6.6x testimonial CR. PMax 8-23x DG. Commission product-demos, route via PMax." | Master thesis |
| # | Action | Lift | Cost | Time | Status |
|---|---|---|---|---|---|
| 1 | Pause DE + UK Workers DG; reroute to PMax | 3-7x convs on same budget | £0 | 30 min | Awaiting Calum |
| 2 | Commission 3-5 animated product-demo variants (PRO / ELITE / Bundle / Energy compare / Bundle vs Single) | Structural — current single demo carries 95% of convs | £750-£2,000 | 2-3 weeks | Brief drafting |
| 3 | Fix LP routing — TOF traffic with "Choose your focus level" hook routes to Bundle LP not single-SKU pages | +10-30% click-to-add on hook-matched traffic | £0 | 1-2 hrs | Awaiting Calum |
| 4 | Pause 29 compliance blocks via existing pause script (18 in medical-intent campaigns — regulatory exposure) | Removes regulatory risk; recovers ~200k wasted impressions | £0 | 1-2 hrs | Awaiting OAuth |
| 5 | Validate 3 scale candidates (jPH first, qp second, sUaN after edit) | ~35 conv-equivalents at <£20 CPA if all 3 hit | £700 | 14 days | Awaiting Calum |
| 6 | (optional) Format-diversity test: Christine Bailey #2 + 11 talking-heads/reviews vs control | Directional; tells which UGC persona drives view-through | £400 | 14 days | Optional |
elapsedVideoTimeRatio 500) means we lose drop-off curve diagnostics. Brief product-demo production with strict 0-3s hook structure since we can't see the second-by-second curve until Google fixes the regression.Master decision doc: F:/Claude Root/v4.0/video-audit/MASTER-DECISIONS-2026-04-26.md
Five deliverables (read-only): v4.0/video-audit/data/landing-page-audit-2026-04-26.md · audience-targeting-audit-2026-04-26.md · format-deployment-recommendations-2026-04-26.md · scale-candidate-test-briefs-2026-04-26.md · retention-curve-500-investigation-2026-04-26.md
Canonical memory: memory/feedback_video_audit_findings_canonical.md
The audit's main output is NOT “commission new creative.” Engagement is fine (85% avgViewPct). The conversion gap is post-click. Next moves: (a) landing-page + audience audit to find the 0.52% leak, (b) deploy 10–15 unused talking-heads + reviews from inbound supply at low budget BEFORE commissioning, (c) immediate retire of 29 compliance-blocked videos (27.9% of watched library), (d) test the 3 scale candidates.
qp_HBU1qnak (UK day-in-life), jPH_ClAPArM (UK multi-creator rapid-cut), and sUaN9GS-MYc (UK “Mum Life” — Wave 4 addition). All untested. All predicted similar_to_winners by Gemini calibration pass. Low-budget exposure to confirm.sUaN9GS-MYc (UK Mum Life) LOWJmxIGIN-syw, 2-week window.| Pattern | Market | Count | Example IDs | Action |
|---|---|---|---|---|
| ADHD treatment claims (explicit) | UK | 10 | hDz0I5lECaI 5dgTTm0Cwro 1szLC2Ij5Uw oP5Z8GmLmrk GJhhjxCP6xU bjYUQnTWqM0 I2rVy2aiTNA JTfr_5TFOZE qgGWjtQNJp4 |
RETIRE |
| Neurodivergent + functional cognitive claims | UK DE | 8 | DiqR1Vhrs88 Rnx_mVw-J1Q HUj-kqLM-tE JHgCHVLcBAo fYZMj_I3_9k uoIHNKXzOdo aG8K7P93noQ nu_BZXx5-Ck |
RETIRE — DE alternative-positioning exception does NOT cover |
| Minors / paediatrician framing | UK DE | 5 | Blk0oZCIX28 BlyOItbM-9k Xr-KqyuzwMM tQoKB6M5H88 CFVTPmpeqwU |
RETIRE — supplements to minors prohibited |
| Medication alternative / replacement framing | UK | 2 | iLx0NZ9cCCY _TgdQ7Dbo_A |
RETIRE — highest legal exposure |
| Other (treatment-claim language, sleep claims, etc.) | mixed | 4 | various — see audit.db | REVIEW per video |
SELECT youtube_id, market FROM gemini_analysis WHERE compliance_block=1. All require full pause + creative replacement — no edit can save them. Path 3 OAuth (in setup) will allow batch-pause via API once authenticated.
| Format | Inbound supply (UGC) | Outbound use (Ads) | GAP | Verdict |
|---|---|---|---|---|
| testimonial | 39.2% | 72.7% | +33.6pp | over-deployed |
| talking-head | 18.6% | 1.8% | −16.8pp | deploy more |
| review | 10.7% | 1.8% | −8.9pp | deploy more |
| routine | 9.8% | 0.0% | −9.8pp | absent |
| product-demo | low | 5.5% | — | OK |
| day-in-life | low | 10.9% | ~+5pp | slightly over |
| Year | N | Ad-tested | Winners | Avg View % | Avg Views |
|---|---|---|---|---|---|
| 2017–2022 | 179 | 0 | 0 | 9–78% | 232–9,372 |
| 2023 | 77 | 9 | 0 | 67.0% | 4,948 |
| 2024 | 74 | 15 | 0 | 85.2% | 30,429 |
| 2025 | 324 | 117 | 0 | 85.1% | 16,318 |
| 2026 | 124 | 50 | 1 | 60.1% | 5,943 |
JmxIGIN-syw published 2026-01-06 — NOT 2018 as initially hypothesised. See What We Got Wrong → Correction 3.
The model's predicted_cpa_band aligned with actual classification consistently. ONE quirk: it doesn't downweight compliance flags when predicting CPA — TuIJG5PjFJE was predicted below_winner_avg despite being unrunnable due to ASA dual-trigger.
| Video ID | Predicted | Actual classification | Match? | Note |
|---|---|---|---|---|
JmxIGIN-syw |
winner | WINNER | YES | The actual winner. Calibration anchor. |
qp_HBU1qnak |
similar_to_winners | untested | predict | UK day-in-life. Scale candidate #1. |
jPH_ClAPArM |
similar_to_winners | untested | predict | UK multi-creator rapid-cut. Scale candidate #2. |
TuIJG5PjFJE |
below_winner_avg | COMPLIANCE BLOCK | QUIRK | Model didn't downweight ASA dual-trigger. Compliance is orthogonal to creative-quality prediction. |
iLx0NZ9cCCY |
below_winner_avg | COMPLIANCE BLOCK | QUIRK | Same orthogonality; model recognised low CPA potential, missed treatment-claim risk. |
9G3FpMl4Gbc |
below_winner_avg | COMPLIANCE BLOCK | QUIRK | Neurodiversity-framing not flagged at compliance layer. |
compliance_flag field to the multimodal prompt schema, separate from CPA prediction. Compliance is a hard-stop gate; CPA is a prediction surface. They shouldn't be conflated.
| Wave | Videos | Cost (GBP) | Outcome |
|---|---|---|---|
| Phase B (Tier 1 GAds pull) | 907 | £0.00 | DB populated, 1 winner identified |
| Phase C (YouTube metadata + analytics) | 907 | £0.00 | 552 retention rows; transcripts blocked → multimodal canonical |
| Phase D (Drive + channel sync) | 907 | £0.00 | 716 untested, fuzzy-matched |
| Phase E1 (heuristic scoring) | 907 | £0.00 | watch_score per video, queue identified |
| Phase E2 wave 1 (winner) | 1 | £0.02 | First multimodal — JmxIGIN-syw |
| Phase E2 wave 2 (selective) | 5 | £0.09 | Compliance blocks discovered, format-lock confirmed |
| Phase E2 wave 3 (full score-65+) | 49 | £0.90 | Full corpus map at 6.1% coverage |
| Phase E2 wave 4a (Shorts audio, 198) Complete (50 multimodal + 198 audio) | 198 | £0.08 | Audio triage at fraction of multimodal cost |
| Phase E2 wave 4b (Shorts multimodal, 50) | 50 | £2.22 | 22 new compliance blocks discovered |
| Total | 105 + 198 audio | £3.31 | Audit complete with two reframes + 29 compliance blocks |
Tier 1 answers “what did we run and what worked?” — ground truth from Google Ads. Tier 2 answers “what's the engagement profile?” — YouTube Analytics aggregates. Tier 3 answers “what's IN the video?” — Gemini multimodal extracts format, hook style, claim type, compliance flags. Each tier feeds the next; only Tier 3 costs money. Tier 1 + 2 fit in the free quota.
| Decision | Before | After | Saving |
|---|---|---|---|
| Per-video benchmark | £0.10/video assumed | £0.018/video actual | −82% |
| Scope | All 200 untested | Score-65+ reps only (49) | −75% volume |
| Transcript-first dedup | Cluster 381 then watch reps | Skip (380 singletons + 1 pair found) | avoided dead-end |
| Transcript pulls | Required dependency | IP-banned → multimodal direct | better outcome |
JmxIGIN-syw published 2026-01-06. Recent. The vintage analysis surfaced a different finding entirely (engagement is fine, conversion is the bottleneck).videos.view_count column was missing from schema (YouTube Data API returned statistics.viewCount but no place to persist). Fixed with view_count column + repull. Winner went 75 → 95.Intel is the current-state layer of the agent's three-layer operating model. It synthesises the three data rails — Google Ads, GA4, and Shopify — into a single reconciled view of account health. Because no single platform is the source of truth, Intel exists to resolve discrepancies and surface the real numbers before any tactical or strategic decision is made. Sources: memory/ref-tracking-triage.md, memory/CANONICAL_intel_sop.md, memory/feedback_ga4_canonical.md. Latest dataset: v4.0/shopify-build/v1-firstsync/.
| Finding | Platform View | True / Reconciled | Status |
|---|---|---|---|
| GA4 order capture rate | 35–65% of Shopify orders | Shopify is SoT for revenue | GA4 Under-reports |
| UK ROAS (mean, 24mo) | 2.80× (Google Ads reported) | 9.43× (true, Shopify-reconciled) | 3.34× uplift |
| UK ROAS peak | — | 14.37× (Sep 2025) | Compressed under scaling |
| UK Key Event inflation | 1.26–3.45× vs purchases | Use Purchase event only | Key Events polluted |
| Refund rate | 0.94% (flat) | Not a profit lever | Monitor only |
| April 2026 CVR | Rebound vs Q1 | New buyer cohort signal | Positive |
| Brand search ROAS | ~41× (true) | 2% of total spend | Severely underfunded |
| DG 2026 campaigns (8) | 0.36× platform ROAS | ~1.20× true ROAS (below breakeven) | Pause candidates |
| US ecommerce | — | Not wired to canonical GA4 property | Blind spot |
Triage SoT: memory/ref-tracking-triage.md — 3-rail source-of-truth ownership table, empirical reconciliation tolerances, 7 canned triage queries, 4 known anomalies.
Intel SOP: memory/CANONICAL_intel_sop.md — step-by-step protocol for producing a reconciled snapshot.
GA4 canonical: memory/feedback_ga4_canonical.md — OAuth Desktop credential, 4 GA4 property IDs, conversion-vs-purchase inflation rule, legacy property exclusion.
Shopify datasets: v4.0/shopify-build/v1-firstsync/ — raw order exports used for reconciliation.
BNS admin token: tools/bns_sheets.py — use bns-token.json for all GA4 and Sheets reads (not legacy brainzyme@ credential).
Intel briefs from /campaign-strategy. Read-only: Intel is published as part of the Strategy brief; approval happens at the Strategy + Tactics level.
Tactics is the short-horizon layer: in-flight tests, immediate optimisation actions, kill/scale decisions, and Calum-action items that need to be resolved within the current quarter. Currently sourced from session files 32 and 38B. This section will be promoted to a canonical home in an upcoming agent-playbook session — for now it is the holding ground for open items surfaced by the Intel layer.
_new_GA4 properties set up 2026-04-22). US ecommerce was never migrated — the US market is effectively blind in the reconciled dataset. Steps: (1) confirm US GA4 property ID, (2) verify ecommerce event firing via DebugView, (3) if absent, wire Shopify → GA4 via Elevar or GTM server-side. Estimated: 2–4 hours to diagnose.purchase event drives bidding signals sent to Google Ads. Medium priority — does not affect reconciled ROAS but creates noise in attribution reports.Tactics briefs from /campaign-strategy. Approve here AFTER the matching Strategy brief is approved. Both must be approved before tools/deploy_campaigns.py --execute runs.
Strategy is the long-horizon layer: the brand's growth thesis, market prioritisation, channel-mix doctrine, and year-ahead vision. Strategy memories are currently fragmented across BUILD_STRATEGY.md, session 26 (playbook), session 28 (blueprint), and session 30 (competitor review). Consolidation is queued for an upcoming agent-playbook session — this tab is the canonical destination once that work is done.
project_social_media_automation_strategy.md| File | Contains | Status |
|---|---|---|
BUILD_STRATEGY.md |
Founding growth thesis, market prioritisation, brand positioning | Needs merge into this tab |
| Session 26 | Agent playbook — quarterly planning doctrine | Needs merge |
| Session 28 | Blueprint — channel architecture + budget model long-term | Needs merge |
| Session 30 | Competitor review — benchmarks, positioning gaps | Needs merge |
| Session 38B | GA4 triage build — Intel & Tactics layer seeded | Banked here |
Each card below is a strategy brief from a /campaign-strategy <segment> run. Click Open to review the brief and approve / reject. Approval downloads a JSON decision file — hand it to Claude → python tools/ingest_strategy_decision.py <file> writes briefs/<slug>/strategy.approved.json, gating downstream deploys via tools/strategy_gate.py.
Single-shot audit of Session 38B Cross-Rail Triage syntheses (UK / US / DE / FR 25-month + cross-store 6yr Shopify intel). Cross-checked against raw historical-{6yr,2yr}-* JSON datasets via Python helpers (no line-by-line file reads). Full report: v4.0/shopify-build/v1-firstsync/SECOND-PASS-QC-2026-04-26.md.
Verdict: ACCEPT WITH CORRECTIONS — All numbers in the 5 syntheses are defensible against raw data. Two headline framings hide methodology choices that change reader interpretation. Two HIGH-severity items patched into canonical memory; original syntheses left unchanged.
Cross-store 6yr §8 reports refund rate as refund_count / orders ("UK refund rate doubled from 2024 1.02% → 2025 2.78% → 2026 YTD 3.67%"). UK per-market §5 reports it as refund_amount / total_revenue (UK 2025 = 0.98%, flat against 5-year 0.93%–1.27% band). Same term, different metric, different magnitude.
| Year | Orders | Revenue (£) | refund_amount (£) | refund_count | % by amount | % by count |
|---|---|---|---|---|---|---|
| 2020 | 11,455 | 453,355 | 4,481 | 137 | 0.99% | 1.20% |
| 2021 | 19,918 | 805,422 | 10,191 | 303 | 1.27% | 1.52% |
| 2022 | 20,148 | 791,497 | 8,397 | 297 | 1.06% | 1.47% |
| 2023 | 24,649 | 933,117 | 10,337 | 285 | 1.11% | 1.16% |
| 2024 | 18,360 | 732,038 | 6,808 | 187 | 0.93% | 1.02% |
| 2025 | 16,889 | 669,340 | 6,589 | 470 | 0.98% | 2.78% |
| 2026 YTD | 4,767 | 188,050 | 1,498 | 175 | 0.80% | 3.67% |
Reading: UK customers file refund events at 2.5–3× the historical rate, but the £ value is flat. Pattern is consistent with line-item partial refunds (single units inside multi-unit orders), not full-order returns. The "refund rate doubled" framing reads as a returns crisis; £ impact is unchanged.
Canonical wording (recommended): "UK refund-event rate has risen from ~1.0% to 2.78–3.67% on a count basis, while refund value as a share of revenue stays at the historical ~1% band — consistent with rising line-item partial refunds."
memory/ref-tracking-triage.md §2a quotes DE empirical GA4↔Shopify dropout at −32.4% ±4.0% alongside UK / US / FR. The DE synthesis correctly discloses this excludes 4 outlier months (1× Apr 2024 partial launch + 3× Feb–Apr 2026 Key Event inflation window). The full unfiltered 25-month DE series is −26.3% ±26.3% — a 6.5× wider variance band.
Risk: Quoting −32.4% ±4.0% without the curation note makes DE look 3-rail-clean; an ops reader using the table to set alert thresholds will calibrate too tight and trigger false positives.
Fix applied: ref-tracking-triage.md §2a inline marker added ("21-month curated subset… full 25-month is −26.3% ±26.3%. Per Second-Pass QC 2026-04-26."). Other 3 markets do not need the same caveat — UK/US/FR figures use the full window or only exclude a single startup month explicitly called out.
MED-1: DE Apr 2026 refund line (426 events / €347 amount / €0.81 avg) is correctly flagged in DE synthesis as a Shopify line-item refund artifact. The cross-store 6yr file silently rolls those events into DE 2026 totals without the asterisk — flag only, no rewrite.
LOW-1: DE/FR true ROAS quotes Shopify-EUR-revenue ÷ Google-Ads-GBP-spend without spelling out FX conversion. Magnitude ~5% at current EUR/GBP ≈ 1.18, consistent across both markets so comparative ranking unaffected. Standardise on a single quoted currency per-market in the next pass.
ref-tracking-triage.md: refund_rate = refund_amount / total_revenue (default for £-impact framing); refund_event_rate = refund_count / orders (default for behaviour-pattern framing). Synthesis docs MUST name which one they're quoting.−X% ±Y% (curated, n=21) / −P% ±Q% (full, n=25).feedback_ga4_canonical.md.| File | Change |
|---|---|
v4.0/shopify-build/v1-firstsync/SECOND-PASS-QC-2026-04-26.md | New — full QC report |
memory/ref-tracking-triage.md | §2a: DE empirical baseline annotated as 21-month curated subset (HIGH-2 fix). Inline marker "Per Second-Pass QC 2026-04-26". |
google-ads-audit/v4.0-alt/index.html | This Second-Pass QC tab + amber/orange accent badge |
QC complete. Reviewer: Opus 4.7. Method: full-context single-shot review against raw JSON spot-checks via Python helpers (no line-by-line file reads). No originals modified — corrections live in this report and (for HIGH-2) in the canonical memory annotation.
State of the world after 2026-04-30 mass-publish + QC + fix wave: 58 / 58 pages published across UK/US/DE/FR. 53 pass / 5 warn / 0 fail / 0 pending. Compliance: 44 green / 10 amber / 4 cleared / 0 RED-blocked. Pages Registry SSoT live at campaign-lp-strategy → "Pages Registry" tab + mirrored to tier-list Sheet (gid 285543633).
What shipped today (chronological):
1. Pages Registry SSoT — 58-row registry built across 4 markets via parallel Sonnet agents. Schema v1.0 locked. Tab 6 added to Creative LP Matrix dashboard. Mirrored to tier-list Google Sheet with conditional formatting.
2. Mass-publish CEP wave — 31 + 5 = 36 pages published via 4 parallel Sonnet agents (UK 14 + US 10 + DE 3 + FR 4) + 1 conversion agent (DE/FR 5 held cities). All HTTP 200, all postchecks confirmed.
3. DE/FR per-city template conversion — 5 held pages (Berlin/Hamburg/Köln/Lyon/Lille) converted from shared-template-plus-setting to per-city thin templates. Eliminated manual admin step.
4. 5 Liquid syntax errors fixed — Edinburgh + London + Paris + Lyon + Lille had apostrophe-in-single-quoted-string bugs. Auto-fixer script + live theme PUTs.
5. render → include swap on 4 market section files (bz-exam-city.liquid) — fixed empty H1 across all 22 city pages. Root cause: {% render %} scope isolation.
6. DE/FR meta description metafields set + body_html cleared on 7 pages — eliminated visible SERP placeholder ("Diese Seite nutzt das bz-exam-city Template").
7. Quiz B + C fixed — missing template + data snippet uploaded to UK live theme. Root cause was different from QC agent's diagnosis: assets existed in repo but were never deployed.
8. 4 RED articles published — legal sign-off received. DE ADHS/Ritalin + FR TDAH/Ritaline. Full SEO metafields set + ANSM/HWG-compliant disclaimers verified.
Lessons banked permanently (8 new feedback memories + 4 SOP gotchas):
G23 Liquid {% render %} scope isolation · G24 single-quoted Liquid + apostrophe = parser bug · G25 body_html as auto meta description fallback · G26 per-variant thin templates beat shared+setting · CEP bulk-write 4-bucket grouping (canonical) · SSoT registry pattern (canonical) · gws CLI --params vs --json + +append auto-routing gotchas · tools/fix_liquid_apostrophes.py auto-fixer · SHOPIFY_PAGE_PUBLISH_SOP v2.0 + THEME_COMPONENT_SOP G4 + asset-deploy-vs-repo.
5 remaining warns (no regression, separate workstreams):
• US Wave-2: PERI10 + BF10 discount codes missing on live us-peri-wave2 + us-bf-wave2 (article-template body injection)
• 5 amber-compliance pages (Dopamine collections UK/US/DE/FR + FR Anti-Fatigue) — content sign-off gates only, no customer-visible bugs
Scheduled follow-up: Remote agent SCHED-010 fires 2026-05-07 09:00 BST — re-runs QC sweep on all 58 pages, generates report, emails Calum via Gmail MCP. Catches drift, stale state, or new pages added without going through hooks (Task #7 not yet built).
published_at set + storefront fetch confirms public render). The earlier "all published=false" line was true at 03:00 bank-time but was overtaken by an 08:03 publish wave. Only the 13 collections (wave-2 + wave-3) remain UNPUBLISHED. (2) The Black Friday + nootropic + Doctors-on-PMax-UK + Performance-Mentale + Effets-Max + Unlock-your-full-potential audit claims are FALSE POSITIVES — verified via asset_group_asset.status='ENABLED' filter. See corrected violation summary in red box below.
22 articles + 13 collections (31 total) deployed to LIVE themes via Path B file-copy across UK/US/DE/FR. 22 articles are PUBLISHED + public; 13 collections remain published=false. Theme assets (sections, snippets, templates, CSS, JS) are LIVE-side; admin preview works without staff cookies.
What landed tonight (in chronological order):
1. 16 GABA + Dopamine illustrations via GPT-Image-2 (Calum new directive: GPT-Image-2 = default for illustrations, FLUX only for product-alongside scenes); £0.50 cost, 16/16 first-pass; cross-store push to all 4 stores' assets/.
2. UK Perimenopause editorial (greenfield) — article id 1001007186301, handle perimenopause-focus-guide, F2 pattern, ELITE-targeted, compliance CLEAN.
3. UK Brain Fog editorial (greenfield) — article id 1001007153533, handle brain-fog-explained-and-what-helps, advertorial pre-click warm-up, CTAs route to quiz + collection.
4. 7 Perimenopause + 8 Brain Fog illustrations via GPT-Image-2; £0.47 cost combined; cross-store push.
5. US GABA + Dopamine ports built on Session 38 framework, FDA-lensed (£→$, EFSA→FDA, etc.). Articles 570713669824 + 570713702592, blog focus-learning-center.
6. DE GABA + Dopamin ports, HWG-translated, "kein Arzneimittel" disclaimer placed prominently 2x. Articles 627993772296 + 627993805064, blog adhs-medikamente-zum-lernen, handles gaba-vorstufen-leitfaden + dopamin-leitfaden.
7. FR GABA + Dopamine ports, ANSM-translated, "complément alimentaire pas un médicament" disclaimer placed 7-8x. Articles 612915544406 + 612915609942, blog news, handles guide-precurseurs-gaba + guide-dopamine.
8. SEO meta sweep on all 13 articles (UK 7 + US 2 + DE 2 + FR 2) — meta title (≤60c) + meta description (~140c) per article via metafields. H1/H2/H3 hierarchy verified clean across all sections.
9. Critical bug fix shipped: G22 (bz-component-carousel) {%- doc -%} → {%- comment -%} on UK + DE (Session 38 framework had Theme-Check-only doc tag that breaks article render at runtime). US + FR already clean.
10. Path B cutover — all 13 publish configs deployed to LIVE themes via shopify_publish_page.py --skip-publish. New --skip-publish flag added to script.
Calum's morning checklist (per article):
1. Open admin preview on each store's LIVE theme → Articles → preview unpublished article. (Or use the article admin URLs in the cards below.)
2. Compliance pass per article — AMBER items (UK Dopamine + FR Dopamine + 1 small "soutenir mesurably" typo) need explicit sign-off.
3. Create discount codes per market: GABA10/DOPAMINE10 (UK + US + FR), GABA10/DOPAMIN10 (DE), PERI10 (UK), BF10 (UK).
4. Per article: PUT {"article": {"id": <id>, "published": true}} via Admin API or use Shopify admin "Publish" toggle.
5. Then run Browserbase QC per published URL (was blocked pre-publish by G13 staff-cookie).
Heroes still missing: The full-bleed product-shelf hero shots (bz-{topic}-hero-shelf-wide.jpg) for GABA / Dopamine / Peri / Brain Fog need separate FLUX product-shelf shoots — they're not part of the GPT-Image-2 ligne-claire batch. Articles render with broken hero placeholder until those land.
Coordination note: Session 38 finished multi-store framework rollout (bz-component-carousel + Quiz engine + component registry) to US/DE/FR mid-session — that unblocked the US/DE/FR ports. Earlier DE WIP from a halted pre-framework port agent preserved in stash halted-de-port-agent-2026-04-27-pending-session38-framework — safe to drop after confirming the clean re-build looks right.
Per Calum evening directives: build 2-3 versions per LP slot for A/B/C testing (Collection · Blog · Quiz). 9 wave-2 pages built + deployed to LIVE themes via Path B --skip-publish. All UNPUBLISHED.
UK Collection variants (A/B vs Blogs): gaba-precursor-supplements (id 682565927293) · dopamine-support-supplements (id 682565992829) · perimenopause-focus-supplements (id 682566091133). All UNPUBLISHED. Default Shopify collection template (body_html intro above product grid). Pre-existing duplicate handles `buy-gaba-supplements-uk` + `buy-dopamine-supplements-uk` still present — you decide keep-vs-archive.
UK GABA+Dopamine combined Recommender Quiz: find-your-focus-path-quiz (id 1001007513981, template bz-quiz-uk-gd). 8 questions / 3 phases. Engine-compatible 5-cluster scoring. Recommendations: ELITE for GABA-dominant (stress) · PRO for Dopamine-dominant (overload/nutrition) · BUNDLE for mixed (tied within 10%) · ORIGINAL only for child route (Q1=No, age 10-15) per your locked logic. Decisions D28-D30 added to decisions.md.
US gap-fill triple: US Peri editorial (id 570713866432, handle perimenopause-focus-guide) · US ADHD aggregating Collection (id 351133040832, handle adhd-focus-supplements, 3 products linked) · US Brain Fog editorial (id 570713931968, handle brain-fog-explained-and-what-helps, dual-pathway CTAs).
DE Konzentrationsplaner extension: konzentrationsplaner (id 627994886408). PRO primary (Motivation/Dopamin-Wege), ELITE secondary. 5-day week planner format. HWG disclaimer 2x. Discount code KONZ10 needed.
FR Anti-Fatigue Mentale editorial: guide-anti-fatigue-mentale (id 612915904854). PRO primary, ELITE secondary (existing surmenage-fatigue-mentale handle). ANSM disclaimer 6x. UFC-trigger language ABSENT. Discount code FATIGUE10 needed.
UTM tracker: 13 wave-1 pages logged to Google Sheet 1f1Q43vPnOjZEsruFWq5R015beJeI9VBvWTE8ttHwQVk tab "2026 Launch UTMs" (range A40:AA52, 27-column UTM v2 schema). Wave-2 batch (9 pages) being appended below by parallel UTM agent.
Discount codes still needed (per market): UK GABA10 / DOPAMINE10 / PERI10 / BF10 · US GABA10 / DOPAMINE10 (+ optional US peri/bf codes) · DE GABA10 / DOPAMIN10 (no E) / KONZ10 · FR GABA10 / DOPAMINE10 / FATIGUE10. Create in Shopify admin per store before publish.
Hero shelf images still pending for: UK Peri / UK BF / DE Konzentration / FR Anti-Fatigue / US Peri / US BF. Separate FLUX product-shelf shoot (not part of tonight's GPT-Image-2 ligne-claire batches).
Wave-2 illustrations needed for: DE Konzentration (8 illust + 1 hero, scenes around focused work / planner / circadian rhythm) and FR Anti-Fatigue (8 illust + 1 hero, scenes around mental fatigue / cognitive recovery). UK Quiz GD also needs illustrations.
Wave-2 SEO sweep needed — the 2 SEO agents tonight ran BEFORE wave-2 builds. Wave-2 pages don't yet have meta_title/meta_description metafields. Schedule a third SEO sweep next session covering: UK Quiz GD, UK 3 Collections (note: collection metafields differ from article), US Peri/ADHD-Coll/BF, DE Konzentration, FR Anti-Fatigue.
Scoring weights review for UK Quiz GD — per-question weights are author judgments. Recommend manual test of 4 paths: child route, GABA-dominant, Dopamine-dominant, mixed.
Per Calum directive 2026-04-27 evening: complete LP coverage gaps + audit live ad copy against Marcom Matrix v3.2.
Wave 3 Collections (9): US 4 (gaba-precursor-supplements 351168757952 / dopamine-support-supplements 351168790720 / perimenopause-focus-supplements 351168856256 / brain-fog-supplements 351168889024) · UK ADHD aggregating-2 (adhd-focus-supplements 682616390013) · DE 2 (gaba-praparate 576598212872 / dopamin-praparate 576598245640) · FR 2 (complements-precurseurs-gaba 695193633110 / complements-soutien-dopamine 695193665878). All UNPUBLISHED. FR has dedicated GABA/Dopamine product handles (`complement-gaba` + `complement-dopamine`) — earlier FR product-handle gap notes were stale.
LP coverage post-wave-3: UK ✅ all lanes ≥3 variants · US ✅ all 5 lanes ≥2 variants (Quiz Phase 2/3 still queued) · DE ✅ Konzentration ≥3 + GABA/Dopamin at 3 · FR ✅ GABA + Dopamine + Anti-Fatigue at 2-3 variants · RED gates remain on DE ADHS / FR TDAH / Ritalin lanes.
⚠️ CAMPAIGN AUDIT — CORRECTED 2026-04-27 22:00 (POST-METHODOLOGY-FIX). The original audit ran without filtering on the joint condition campaign.status=ENABLED AND asset_group.status=ENABLED AND asset_group_asset.status=ENABLED — producing false positives on PMax-asset claims. After re-run with the proper 3-status filter, the TRUE-violation queue is:
FALSE POSITIVES (zero rows on triple-ENABLED filter): Black Friday assets (all 4 PMax) · "BF15" code · "nootropic" in any PMax description · "Performance Mentale" / "Effets Max" (FR PMax) · "Unlock your full potential" (UK PMax) · "Peak Mental" (UK PMax) · "is design to" typo (UK PMax) · "boosters" (UK/US PMax). All previously claimed as live; verified REMOVED at the asset-link level.
CONFIRMED LIVE violations (post-3-status verification):
• "Trusted by 2,000+ Doctors" / "Loved by Doctors" — 2 assets ENABLED in PMax USA (asset_group 6448919526). NOT in PMax UK (which audit had wrongly cited).
• "Über 2.000 Ärzte vertrauen Brainzyme®" — 1 asset ENABLED in PMax DE Main (asset_group 6558136289).
• "Mit Brainzyme® FOCUS rezeptfrei & legal Leistung steigern" + 2 variants — 9 ENABLED rows across PMax DE Main + DE Ritalin Germany + DE Ritalin Austria. HWG legal scope review needed (DE Ritalin allowed per exception; DE Main exposure questionable).
• "powerful, plant-powered brain supplements" — 1 asset ENABLED in PMax UK (asset_group 6509497072). Banned optimiser language per matrix (H13).
• "Game-Changer" English idiom in DE copy — 1 asset ENABLED in PMax DE Main (asset_group 6521203827).
• SERP UK ADHD Bundle (campaign 11666978147, ad_group 126235035533, ad 706882072278) ALL CONFIRMED LIVE in single ENABLED ad group: "Attention Deficit Issues?" headline + "Manage Attention Fast" headline + "Scientifically proven natural solution to support attention issues fast." description. £1.8k/mo at ASA-exposure risk. NatAlts-DKI + Focus&Attention-DKI ad groups (originally cited for "Doctors" headlines) are PAUSED — not live-serving.
• "Brain Nootropic Supplements" headline — 1 ENABLED RSA in SERP UK Brand (single ad 618559319501). LEARNING status, not pinned. C1 confirmed.
• Brand-mark missing ® — SERP DE: "Brainzyme FOCUS Pro™" + "Brainzyme FOCUS Elite™". SERP FR: "Brainzyme FOCUS ORIGINAL™" + "Brainzyme FOCUS PRO™" + "Brainzyme FOCUS ELITE™". L1+L2 confirmed live.
• SERP US Brand RSA (campaign 13522300536, ad 527830378007) is verbatim UK copy-paste — no FDA structure-function localisation. H2+H18 confirmed.
Full corrected priority queue + per-violation evidence at v4.0/campaign-content-audit-2026-04-27.md. Markets-by-true-cleanliness rank: US (low: 2 confirmed) → FR (low: brand-mark only) → UK (mid: ADHD ASA + nootropic + powerful) → DE (high: HWG scope + Ärzte + Game-Changer + brand-mark).
Master multi-phase plan banked: 7 phases (A→G) at v4.0/go-live-rundown.md. Phase A (LP gap-fill) + Phase B (audit) DONE tonight. Phases C-G defer to next sessions: C=copy refresh, D=image rerun, E=video selection (Session 50), F=ad-group retrofit, G=final QC. Sequencing + Calum gates per phase documented.
✅ OPUS QC SWEEP PASS (2026-04-27 → 2026-04-28). Full-spectrum verification: Block A 16/16 LPs verified UNPUBLISHED + correct handles via Admin API. Block C 40/40 framework files (CSS/JS/Liquid/templates/snippets) on each store's live theme. Block D 4/4 RED articles compliance-clean (0 banned phrases in customer copy after stripping Liquid+HTML comments; all required disclaimers present). Block E 36/36 city illustrations present + sized 90-170 KB. Block F preflight: 21/22 cities PASS after fixes (4 confirmed FAILs surfaced + corrected — see below).
What landed in Wave 6 (chronological):
1. US: 5 city LPs + framework port (Boston / NYC / LA / Chicago / Austin) — page IDs 120522539200/571968/604736/637504/670272. Per-city thin templates (admin-config-free). FDA-lensed. Commits US `979d4f3` + UK xref `8670820`. All UNPUBLISHED.
2. FR: 3 city LPs + framework port + 2 RED articles — Paris/Lyon/Lille (160561201494/234262/267030). 2 RED: TDAH guide 613444747606 + Ritaline comparaison 613445599574. ANSM-defensive disclaimers. Commit FR `30d71f3`.
3. DE: 4 city LPs + framework port + 2 RED articles — München/Berlin/Hamburg/Köln (164673487112/519880/552648/585416). 2 RED: ADHS-Leitfaden 628058685704 + Ritalin-Vergleich 628058718472. HWG-konform + management exception. Commits DE `ad113b5` + `4ef2adb`.
4. 36 city illustrations (US 15 / DE 12 / FR 9). GPT-Image-2 medium, 36/36 first-pass QC. £1.13 spend.
5. Compliance fixes shipped (Opus QC sweep finding): 4 files PUT to live themes — UK + US sections (`Wired but tired` → `Restless but exhausted`; `no withdrawal` rewritten); UK Manchester snippet (`No crash. No withdrawal.` → `No crash, no jitters.`); FR section (`cafféiner` → `avant le café`; `soutenu nutritionnellement` → `soutenu par la nutrition`; `measurablement` typo). All preflight PASS post-fix. Commits UK `3920eca` / US `66a2337` / FR `a352a8a`.
⚠️ Architecture finding — TWO PATTERNS in Wave 6 city deployment:
• Per-city thin templates (works without admin config): UK 10 cities (incl. all Wave 5.5) + US 5 cities = 15 pages. templates/page.bz-exam-city-{slug}.json with city_slug hardcoded.
• Shared template + section setting (needs Calum admin step): DE 4 + FR 3 = 7 pages. templates/page.bz-exam-city.json shared, all 7 default to munich/paris until city_slug set per page in admin.
Recommendation: KEEP shared+setting for now (works, just needs 7 admin clicks). Convert later as a focused refactor task. Per CLAUDE.md L5 — don't bundle preventative architecture refactor with confirmed compliance fix in same deploy round. Calum's morning to-do: theme editor → each DE/FR page → bz-exam-city section → set city_slug → Save (7 pages × 30s).
Calum morning to-do (Wave 6):
1. Set city_slug per page in admin for 7 DE/FR pages (Berlin/Hamburg/Köln/Lyon/Lille — Munich + Paris are template defaults).
2. RED article legal review — both DE (ADHS / Ritalin-Vergleich) + FR (TDAH / Ritaline-Comparaison). All 4 are NEEDS-LEGAL-REVIEW status (default for RED). 0 banned phrases in customer copy verified by Opus.
3. Discount codes — verify WELCOME10 active in UK + US + FR Shopify admin; verify GABA10/DOPAMINE10/DOPAMIN10/FATIGUE10/WELCOME10 per-market.
4. Publish toggle — per page/article via admin "Publish" toggle when ready. Suggested order: city LPs first (lower compliance risk), RED articles after legal review.
5. RED article illustrations still needed — DE ADHS 8 illust + DE Ritalin 8 illust + FR TDAH 1 hero + 8 illust + FR Ritaline 8 illust = 33 illustrations. Section files have onerror="this.style.display='none'" so missing illustrations gracefully hide.
6. UTM Sheet — Wave 4-6 URLs (~28-30) not yet logged to Sheet 1f1Q43vPnOjZEsruFWq5R015beJeI9VBvWTE8ttHwQVk tab "2026 Launch UTMs". Schedule a follow-up UTM batch.
Lessons-learned register: G22 doc-tag · G23 JSON template comment strip · Splide→Embla · --skip-publish · PYTHONIOENCODING=utf-8 · pull-rebase-before-push · drift-quadrant · per-market compliance · GPT-Image-2 default · L5 fix-isolation (Wave 6 confirmed) · architecture-divergence detection. Apply to ALL new work.
Per Calum 2026-04-27: GPT-Image-2 (gpt-image-1) is the default for illustrations. FLUX is reserved for scenes where products need to be shown alongside something else to make a point (e.g. product-in-context heroes). Tonight's 16 ligne-claire scene illustrations are all conceptual/atmospheric — all generated via GPT-Image-2.
Evidence snippets + Full Chain module + Hero shelf composites across all 4 stores. 196 API writes, 0 failures.
Created config/brainzyme_evidence_canonical.json (13 ingredients, PubMed/DOI citations). Generated 12 Liquid snippets (3 product sets × 4 stores):
| Snippet | Product Set | Ingredients | Studies | Pathway |
|---|---|---|---|---|
bz-evidence-data-elite | ELITE | 13 | 35 | GABA |
bz-evidence-data-pro | PRO | 8 | 25 | Dopamine |
bz-evidence-data-bundle | Bundle | 13 | 35 | Comprehensive |
20 guide sections updated to render canonical snippets. DE/FR snippets use HTML entities for non-ASCII. SOP G34 added.
Added evidence rendering to 8 sections that previously lacked it:
| File | Stores | Product Set |
|---|---|---|
sections/bz-exam-city.liquid | UK, US, DE, FR | Bundle |
sections/bz-konzentration-planer.liquid | DE | Bundle |
sections/bz-ritalin-vergleich.liquid | DE | PRO |
sections/bz-ritaline-comparaison.liquid | FR | PRO |
sections/bz-anti-fatigue-mentale.liquid | FR | PRO |
82 PIL v5 composites (41 pages × sq 1080×1080 + wide 1200×628). JPG→WebP conversion. Custom per-page headline/subhead, per-market trust bar.
| Market | Pages | Assets |
|---|---|---|
| UK | 4 guides + 10 exam cities | 28 |
| US | 4 guides | 8 |
| DE | 5 guides + 4 exam cities | 18 |
| FR | 5 guides + 3 exam cities | 16 |
| Total | 18 guides + 17 exam cities + 6 DE/FR-specific | 82 (incl. 12 ADHD/Ritalin/etc.) |
Asset naming: assets/{prefix}-hero-shelf-{sq|wide}.webp. One retry needed: DE dopamine square blocked by PIL v5 face-wedge QC gate — swapped hero base from ad-V10.jpg to ad-V17.jpg.
Batch-updated Google Sheet (1KNm5kc6Dh5iK0ua4QDqEPZzR8I1BxRIlMqxzcugJ3SI) via gws CLI:
sq+wide 2026-05-03 (34 rows)Evidence+FullChain+Hero deployed 2026-05-03 (32 rows)1 handle not yet in registry: UK exam-season-cardiff.
| Script | Purpose |
|---|---|
tmp/deploy_evidence_round.py | Evidence snippet + section deploys (24 PUTs) |
tmp/deploy_fullchain_round.py | Full Chain module deploys (8 PUTs) |
tmp/batch_hero_composites.py | PIL v5 composite generation (82 images) |
tmp/deploy_hero_composites.py | JPG→WebP + Shopify upload (82 PUTs) |
tmp/update_registry_heroes.py | Pages Registry batch update (66 cells) |
All 196 API writes completed with 0 failures.