SHAI

S10 Ads

/ads-manager

Agent Wave 4j Orchestrator: Paid Ads (S10)

Wave 4j orchestrator: sequences the whole paid-ads motion in real dependency order — /meta-account-monitor's account health first, then /holiday-sale-planner's APPROVED sale rows and /ads-research's findings, then /ad-copy and /ad-creatives (each cleared by #102's pre-publish check), then /ads-campaigns setup -> plan -> launch, and only against a genuinely live campaign, /ads-metrics then /ads-optimize. Owns no copy, creative, campaign or metric of its own; never routes around a member's own refused gate. Also drives the P4j.gate one-sample-per-member routing convention, matching /life-planner's and /ghl-setup's role in their own waves.

verified (fixture) 2026-09-08 · needs-connector: meta, google_adsv0.1.0

Run itAll agents

Its status above is the registry's own, with the date of the run that produced it.

What it is for

Contract A

This agent owns no numbered ledger item of its own.

Example requests

  • run our ads
  • manage our whole ad program
  • take our ads from research to launch
  • ads manager
  • run the paid ads pipeline

What it needs, and what it hands back

Needs connected

Nothing. It runs on what SHAI already knows about you.

Better with: meta, google_ads.

Hands back

  • clients/<business-slug>/plans/ads/run-<date>.md (connection check, account health, dependency-ordered run log, honest status, wave-gate sample record)
  • clients/<business-slug>/status.md (## Needs-me list, from the members' own items)
  • clients/<business-slug>/changelog.md (one line per run)

Stops and asks

Nothing this agent does is irreversible on its own, so it asks for no approval of its own. Spending, sending and publishing are approved wherever they happen.

How it runs

These are the headings of its own written instructions — 298 lines you can read and change.

  1. Step 0 — Environment, connection, and profile
  2. Step 1 — Account health first
  3. Step 2 — Dependency order
  4. Step 3 — Write the run record
  5. Step 4 — Wave-gate sampling (when invoked for `P4j.gate`)