Changelog
Phase-by-phase shipping log. Most-recent first.
New categories: air duct and commercial cleaning (Sep to Oct 2026)
- Air duct and dryer vent cleaning (September 29): 13 ad groups, its own landing page design and funnel, and a $200 lead value.
- Commercial cleaning and janitorial (October 7): cleaning contracts for offices, medical offices, schools, restaurants, warehouses, stores, gyms and churches. 16 ad groups, a quote funnel that asks the building type, its size and how often it needs cleaning, business-buyer audiences, and a $400 lead value.
- Both are in the campaign wizard and in the MCP server's
generate_strategy(air_duct_cleaningfrom npm 0.2.8,commercial_cleaningfrom 0.2.18).
Phase 47: Imported campaign lifecycle (May 11 2026)
Closed the gap where the bidding ladder assumed every campaign started at Stage 1 Manual CPC. Imported campaigns can now arrive at any rung and the agent picks up management from where they are. 5-component architecture:
- Stage classifier (pure function, no I/O)
- Configuration audit with health classifications
- New campaigns_stage_history table with append-only transitions
- Diagnostic rules that ladder-gate on agent_managed_since
- BiddingLifecyclePanel UI on every campaign detail page
Sub-phases shipped same week:
- 47.1: google_ads_started_at column, ready_for_target_roas fallback for imports, external_change capture pre-approval, pending-state UI, history backfill
- 47.2: Max hands-free auto-approves imported audits (except misconfigured)
- 47.3: Manual "Optimize Now" button respects Max hands-free, auto-executes on click
- 47.4: Learning-phase respects google_ads_started_at, real-time notifications on auto-execute + auto-rollback
- 47.5: Onboarding updates to surface Max hands-free in plan + welcome + import banner
- 47.6: Public docs site (you are reading it)
Phase 46: Conversion optimization sweep (May 2026)
- Marketing site conversion-rate overhaul (15 items)
- Per-user call-minute usage tracking + Pro 100min/mo visibility + overage cents tracking
- Cannibalization ownership direction fix
- UI dedup feedback consumer
- pause_campaign + enable_campaign executors with rollback support
Phase 45: GA4 Key Events + funnel attribution (May 2026)
- signup_completed event fires from onboarding welcome page
- GA4 Key Events registered via Admin API (8 events)
- Funnel events tagged with campaign_id + ad_group_id meta
- Per-campaign GA4 attribution replaces fragile pagePath matching
Phase 44: Continuous RSA headline refresh (May 2026)
- Two-tier swap priority: impression-starved (primary) vs CTR-laggard (fallback)
- Character-bigram cosine similarity rejects near-duplicates
- One AI model writes 10 candidates and a second model picks the best
- Single-swap-per-cycle for clean outcome attribution
- Tier 1 auto-eligible when impressions ≥ 2000 + share < 1% (today every headline swap waits for your approval, Max included)
Phase 43: Agent knowledge cache layer (May 2026)
- 3-layer expert-knowledge markdown playbook injected into every agent-reason call
- Anthropic prompt caching with 1h TTL (extended-cache-ttl beta header)
- ~50KB universal knowledge + ~2KB per-trigger system prompt
- Hit ratio + USD-saved telemetry per session
Phase 42: Bandit Lab + hierarchical priors (May 2026)
- Thompson sampling on per-element funnel arms (sticky CTA, hero image, step copy)
- Beta posteriors at the edge worker (Cloudflare)
- Hierarchical priors (λ=0.2) seed new arms with fleet-wide category evidence
- Bandit Lab read-only UI on the Tracking tab
- Switched off as of October 2026: no element experiments are running
Phase 40: Per-campaign landing page analytics (April 2026)
- Funnel events tagged with campaign_id + ad_group_id at dataLayer
- GA4 custom dimensions auto-registered
- Scroll-depth (25/50/75/100%) + time-on-step tracking
- PageSpeed multi-category audit (perf + a11y + best-practices)
- 3 new LP-health diagnostic rules in agent-optimize
- Analytics tab on campaign detail (MAX tier)
Phase 38: Max hands-free + blast radius + auto-rollback (April 2026)
The phase that made "done-for-you" real:
- Blast-radius classifier (surgical / meaningful / large / legally_dicey)
- Per-rec auto-execute gate for Max with rate limits + circuit breakers + kill switch
- measure-outcomes cron with tiered T+24h/T+7d/T+14d windows
- Auto-rollback on worsened verdict
- User-level circuit breaker after 3 rollbacks in 30 days
- Rule-level success rate monitor (fleet-wide aggregation)
- Weekly digest email (its one-click undo links were retired in October 2026; undo is the Undo button on the campaign's Optimize tab)
Phase 36: ROI closed loop (April 2026)
- 4-action conversion split per campaign
- UPLOAD_CLICKS_REVENUE starts secondary, promotes to primary on 30 paid invoices/30d
- Jobber paid invoice → Google Ads offline conversion upload
- Predictive LTV multipliers for recurring categories
- GCLID 85-day expiration handling
- Bidding ladder auto-promotion via agent-optimize (today every promotion waits for your approval, Max included)