fable-marketing
Living documents. Strategy doctrine and settings are generated from fable-marketing; plans and decisions from babanuj-ops. Numbers are edited by the operator on the Setup page and applied automatically — this site is a published snapshot. Server addresses and account IDs are redacted.

status: active — Babanuj strategy v1 (adapted from Moe's template, approved 2026-07-12)

Babanuj Paid Ads Strategy

Objective

Maximize contribution from paid advertising across Amazon, Google, and Meta, with every platform held to its own margin-derived anchor (break-even ACOS / max allowable CPA / target ROAS computed from configured margins — see Scope for where numbers live). Funnel type: ecommerce/transactional.

Operating principle — mechanical truth over self-report. Every kill / keep / scale / graduate decision must be expressible as arithmetic against a defined anchor variable and verifiable from platform reporting data. If a decision cannot be stated as a threshold, it is a hypothesis and must go through the experiment loop, never applied directly.

Scope

  • Platforms: Amazon Ads, Google Ads, Meta (Facebook + Instagram as one channel). TikTok is out of scope until connectivity exists.
  • Google account: 160-437-6990 exclusively.
  • All numbers live in settings (strategy/intake.yaml, managed via fable setup, later the dashboard): margins → anchor math, budget envelope, thresholds, approval classes, seasonal calendar dates. This document carries doctrine only; a rule needing a number references the settings parameter. Defaults sourced from third-party practitioners are priors, not facts — recalibrated from account data as it accumulates.

Company & platform stages

Each platform is assessed on its own maturity; the same company can be Scale on one platform and Launch on another. Stage boundaries (per platform): Launch < 20 attributable conversions (data acquisition > efficiency; accept higher ACOS/CPA to buy signal) · Growth ≥ 20 conversions, anchor measurable and trending (efficiency + expansion) · Scale anchor stable ≥ 60 days, constraint is budget/stock (net cash flow > per-campaign ratios).

Babanuj as of 2026-07: Google = Growth (13 months of conversion history). Amazon = Growth/Scale (large active portfolio). Meta = Launch (campaigns paused, no usable conversion baseline; reactivates after fable setup completes, at Launch posture, as a propose-first recommendation — Moe decision, 2026-07-12).

Platform capability matrix

Platform architecture is structural. No decision rule may be copied between platforms without passing through this matrix.

Dimension Amazon Google Search Google PMax/Shopping Meta
Primary lever Keyword bids + placement modifiers Keywords, match types, negatives Product feed quality Creative volume (creative IS the targeting)
Creative dependence Low (brand assets for SB/Store) Low (RSA is a constraint) Medium High — existential
Budget pooling None between campaigns — isolation by design Shared budgets possible Campaign-level, algorithm-allocated CBO pools and redistributes
Fatigue cycle Slow Slow Medium Fast — days
Intent High (search) High (search) Medium Low→created
Anchor (default) Break-even ACOS / TACoS target Max CPA / target ROAS Target ROAS Break-even CPA / target ROAS
Data retention gotcha Search-term history: 65 days Long Long Creative insight decays with fatigue

Consequences: Amazon budget protection = choosing which SKUs get campaigns and killing losers to free budget (kill-first doctrine — cross-campaign budget shifts on Amazon are propose-first always, never automatic; Moe decision, 2026-07-12). Meta budget protection = the 80/20 scaling/testing CBO split. These are NOT interchangeable. A Meta creative-fatigue rule has no Amazon equivalent; an Amazon keyword-graduation workflow has no Meta equivalent.

Principles

  • Brand terms are always defended. Agents never propose pausing a brand campaign; a paused brand campaign is a strategy violation, flagged with a propose-first reactivation. Applies across channels (Google brand tier, Amazon Branded-identifier campaigns). This follows the strategy like every other rule — no special carve-outs. (Moe decision, 2026-07-12.)
  • PPC–SEO flywheel: never fully pause advertising on a ranking SKU on efficiency grounds alone — organic rank decay is a hidden cost outside campaign P&L. Downscale ≠ switch off; flag before any full stop.
  • Budget tap-out inversion: if a daily budget exhausts early, lower bids — do not raise budget. Full-day visibility at lower CPC beats morning-only visibility at high CPC.
  • Status semantics: every campaign/keyword/creative carries one state: PROPOSED → LIVE → CLAIMED-{WINNER|LOSER} → VERIFIED-{WINNER|LOSER}. CLAIMED is the agent's read; VERIFIED is confirmed against platform reporting over the full evaluation window. No scale action on CLAIMED. No kill of a VERIFIED winner without a fired threshold plus user notice.
  • Migration principle (existing accounts): the playbooks below describe target structure. The Amazon account has thousands of pre-existing campaigns; agents audit existing structure against the playbook and propose migrations as bounded experiments — never bulk-restructure.
  • Inherited campaigns converge; they do not snap. An existing account is an undocumented strategy. A rule firing on a campaign this system did not create is an instruction to analyse and converge, never to apply the full correction at once. The agent states the gap against the anchor, then moves the campaign toward it in bounded steps across review cycles, capped per cycle by the configured convergence step; the first touch is capped separately and more tightly. Full-strength, single-step application is reserved for campaigns this system created under current doctrine. Rationale: an inherited campaign carries context the rule cannot see — seasonality, launch phase, a deliberate loss-leader, an off-platform halo — and a large immediate cut destroys the evidence needed to understand it, often collapsing volume before the cause is known. A cut that cannot be explained as a step toward a stated anchor is not a decision, it is a guess.
  • Approvals: threshold-mechanical actions (negatives on fired triggers, laddered bid steps, threshold-failed loser pauses, placement modifiers) are auto-executable once live-write mode is explicitly enabled; all budget shifts, kills of VERIFIED winners, and cross-platform transfers are propose-first. Amazon budget shifts are propose-first unconditionally. graduate_keyword launches new spend and is propose-first by default; once graduations prove reliable under live-write, settings may promote it to automatic. (Moe decisions, 2026-07-12 and 2026-07-14; enforced in settings.)

Seasonality

Confirmed pattern (13-month evidence, account 160-437-6990): Ramadan/Eid al-Fitr drives the annual peak (March 2026: 31.8x portfolio ROAS); November– December holiday gifting drives a secondary ramp. Declared windows — Ramadan/Eid al-Fitr, Eid al-Adha, Christmas, Easter, Mother's Day, Father's Day, Prime Day, Halloween, Lunar New Year, Diwali (dates per year in settings; several are movable).

Doctrine: pre-position budget and creative 8 weeks ahead of each window (creative requests emitted per the asset pipeline); tolerate lower-than-anchor early-window ROAS to buy position before the peak; never read the natural post-peak decline as campaign deterioration — during and after declared windows, threshold comparisons prefer year-over-year or window-relative baselines.

Amazon playbook

  • Structure — the 1-1-5 container (hard rules for new builds; existing structure migrates per the migration principle): one SKU = one campaign = one ad group. Exact match: 1 keyword per campaign. Broad/Phrase: max 5 keywords per campaign. Auto campaigns split by targeting group (loose / close / substitutes / complements). One portfolio per parent ASIN — never split child variations. Every newly created ASIN-specific campaign is assigned to its parent ASIN's portfolio at the moment of creation — harvested containers included — never to a seasonal portfolio or no portfolio at all. If the parent ASIN has no portfolio yet, create one named for it before creating the campaign. Portfolio assignment is part of creating a campaign, not a cleanup step afterwards. Catch-all campaigns are an explicit exception: they are a separate construct with their own playbook, they live in the catch-all portfolio by design, and they are neither migrated into a parent ASIN's portfolio nor counted against the one-portfolio-per-parent-ASIN rule. Audits must not flag them as strays.
  • Naming convention (machine-parseable, mandatory for new campaigns): [ASIN|ProductCode]-[AdType]-[Subtype]-[Identifier], e.g. B0XYZ123-SP-Exact-Competitor. Ad groups inherit the campaign name.
  • Launch gates (pre-spend checklist; agent verifies or flags): listing conversion-ready (title/bullets/imagery/A+/video, Brand Registry for SB/SD); FBA or Prime-speed fulfillment; inventory sufficient for the configured horizon at projected velocity (never scale a low-stock SKU); conversion tracking sane; anchor defined from margin math.
  • Launch budget: every new campaign opens at the configured starting daily budget — harvested containers included, regardless of match type. Raise it only against observed delivery and efficiency; never open above it to buy data faster. A container that cannot spend its starting budget has a bid or relevance problem, not a budget problem.
  • Bidding ladder: fixed bids from launch until the SKU crosses the configured conversion gate; then Dynamic Down-Only for defensive/ budget-capped campaigns; Up-and-Down only for established listings in market-share mode with flexible budget.
  • Negatives & bid-downs, split by campaign type: Discovery campaigns (Auto/Broad/Phrase) take Negative Exact when either configured trigger fires (click trigger or spend-vs-retail-price trigger — whichever first). Exact campaigns never take negatives — step the bid down iteratively; kill only after bid-downs fail at the floor.
  • Graduation (Discovery → Exact) — hard prohibition: launch the proven term in a new dedicated Exact campaign and never negative-match it out of the source Discovery campaign. Run both concurrently.
  • Search-term harvest (Auto → Broad + Phrase + Exact): promote a converting Auto search term once it clears the configured harvest gate (minimum attributed orders over the configured lookback, with ACOS at or below the configured Amazon ACOS target — the efficiency anchor, since this account is steered by ACOS/TACoS targets rather than margin-derived break-even). Build all three match types for the winner: a dedicated Exact campaign carrying the term verbatim as its single keyword, plus the term seeded into a Broad and a Phrase discovery campaign — each still capped at 5 keywords per the container rule. Opening bid: every harvested campaign opens at the configured flat harvest opening bid, identical across match types. This is deliberately crude — it gets proven terms into their own containers without waiting on per-term CPC math — and is revisited once the margin anchor is set, at which point the opening bid derives from the term's observed converting CPC capped by the break-even max CPC. Until then, treat the flat bid as a starting position to be raised against observed impression share, not as a considered valuation of the term. The graduation prohibition above applies unchanged: never negative-match a harvested term out of its source Auto campaign; run source and graduate concurrently.
  • Maintenance loops: monthly search-term export (65-day retention — mandatory, feeds seasonality and cross-platform learning); weekly negative/bid-down audit; weekly-biweekly placement-modifier audit (raise modifiers where placement ROAS materially beats account average; keep base bids low); 60-day zero-spend pruning into fresh containers; stock check before any scale action; weekly listing/suppression check.

Meta playbook

  • Structure: two-campaign budget protection — Scaling CBO (~80%, graduated winners only) + Testing CBO (~20%, protected), same audience.
  • Ad-count ceiling: active ads ≤ budget's capacity to feed them: ceiling = (daily budget × evaluation window) / (2 × anchor CPA). At the ceiling, launching a test requires killing something first.
  • Decision math: day-7 fair-share delivery test (expected spend = (campaign daily budget ÷ active ads) × 7 × 0.5; below → kill; zero spend → kill immediately). Graduation Testing → Scaling on threshold vs anchor. Fatigue detection on creative-level frequency/CPA drift → refresh trigger (ecommerce fatigue cycles are days, not weeks).
  • Creative doctrine: creative IS the targeting — broad audiences + segment-specific creative variants; never compensate for weak creative with narrow targeting stacks. Creator/UGC-native assets are the primary input. Creative volume is an operational requirement; the refresh pipeline is part of the strategy.
  • Stage note: Meta restarts at Launch posture (see Stages) when reactivated — anchors from margin math at setup; higher CPA tolerated to buy signal.

Google playbook

  • Search: keywords + match types + negatives drive performance; RSA copy is a constraint to satisfy, not the primary lever. Structure intent-tiered (brand / competitor / generic-high-intent / generic-research), negatives flowing downward between tiers. Manual/cost-cap bidding until the configured conversion gate, then automated with targets from history.
  • PMax/Shopping: product feed quality is the hard constraint — audit the feed before touching bids. Audience signals advisory. Guardrails: brand exclusions, spend-visibility checks against the anchor (PMax hides placement detail — monitor blended impact).

Cross-platform learning

Learnings flow between platforms only as proposed experiments — never as automatic actions. Transferable signals: winning search terms (Amazon ⇄ Google), creative angles beating baseline (Meta → SB video / Google assets, translated through the capability matrix), audience/segment insights, price/ offer sensitivity. Protocol per learning: observation (source, metric, evidence window) → hypothesis translated through the capability matrix → experiment spec (success criterion as arithmetic vs the target platform's anchor, budget cap, time box) → verify from platform reporting → record either way (failed transfers are data). Budget reallocation between platforms is itself an experiment with a stated success criterion; the agent proposes shift vs fix-in-place with the math for each — the user decides above the configured threshold.

Creative asset pipeline

The ads agent does not produce creative. It computes what assets are needed, when, and to what spec, and emits machine-readable requests to the creative agent. Assets are a dependency like budget or stock: a campaign blocked on assets is BLOCKED-ASSETS, never silently launched with substandard creative. Triggers: launch gates, fatigue refresh, experiment specs, ceiling headroom, the seasonal calendar (8-week lead), underperforming-platform diagnosis. QC is arithmetic (dimensions, duration, character counts, variant counts, mandatory elements) — never aesthetic judgment, which is the creative agent's domain. Verified winner/loser records flow back to the creative agent; winning angles become named families, verified-loser families are flagged in future briefs. Required throughput is computed, not assumed; if demand exceeds capacity, the agent proposes reducing the ad-count ceiling or re-prioritizing — never silently starves campaigns on stale creative.

Never-touch constraints

None defined (Moe, 2026-07-11: "nothing special now"). When constraints are added, each is encoded as a guardrail rule agents are mechanically bound by, mirrored on the team board.

Review cadence

  • Daily tick: signals → strategy → proposals under the budget guard — all dry-run until live-write is explicitly enabled; drift flagged.
  • Weekly review: experiment evaluation plus performance review — spend vs envelope, metrics vs anchors, propose-first suggestions with the arithmetic (budget changes always surface here; Moe decision, 2026-07-12).
  • Monthly: Amazon search-term export (retention clock); prior recalibration from accumulated account data.
  • Yearly: seasonal calendar dates refreshed in settings.
  • Strategy changes — agent-proposed rules or edits to this document — always travel as PRs with Moe's approval as the activation gate.

Appendix — priors flagged as unverified (never report as fact)

TACoS 11–15% "healthy band" (category/margin dependent); 1:3 paid-to-organic flywheel ratio; fixed CTR benchmarks (use category comparison from the Search Query Performance Report instead); six-week post-stockout recovery penalty (direction certain, magnitude unverified — "don't stock out" stands regardless); star-rating inflections, coupon color effects, badge multipliers (listing-side hypotheses, launch-gate conversation material, not decision rules).