ContinuousAlways-on
Monitoring & alerting Plan: C1
Budget pacing, disapprovals, conversion-tag health, bid strategy status, LP uptime. Detection automated, response human.
Scripts + Make.com → triage list
client-facts ContextAtomic fact tracking per client with versioning. Substrate for the Standing-Decisions Log.
Standing-decisions log Plan: C9
Per-account record of deliberate, durable, load-bearing choices. Read before any change.
Industry context layer Plan: C8
Per-account industry profiles. Read by Components 6 & 7 so movement is judged against the client's business, not just metrics.
DailyRun every morning
morning-spend DashboardMTD spend, today's spend, pacing, budget remaining. View now →
mcc-triage TriageMorning triage across all MCC accounts, prioritized by urgency. Flags what needs attention.
WeeklyMondays
search-term-auditor AuditPre-bucket search terms into 3 lanes (clear neg, clear KW, needs review). N-grams aggregated account-wide.
→
search-term-optimizer appliesgoogle-ads-hubspot-lead-gen-reporting ReportWeekly client report. Data + charts auto, narrative human (Plan C3).
Monthly1st week
bidding-auditor AuditBid strategy drift (stuck in learning, target violations, portfolio sickness).
→
bidding-optimizer applies (dry-run)quality-score-auditor AuditQS health. Drops inflate CPCs silently — cheap to monitor.
→
google-ads-quality-score appliesbudget-auditor AuditDeeper budget pacing & allocation than C1 alerts.
→
budget-optimizer reallocateskeyword-auditor Audit17 diagnostics. Match type, duplicates, cannibalization.
→
keyword-optimizer appliesplacement-auditor AuditPlacements, brand safety, exclusion list health (PMax, Video, Demand Gen).
→
placement-optimizer appliesoffer-auditor AuditOffer quality, urgency, trust, positioning (16 diagnostics).
competitive-analyst + competitive-intel-report Audit7 API-native competitive diagnostics with report layer. Plan C4.
competitor-scraper / kurama-serp ContextCompetitor ad copy pulls (DataForSEO API + Playwright SERP scrape). Feeds C4 + C8.
Wasted-spend diagnosis Plan: C7
Detects + characterises spend leaks (match type × bid strategy). Outputs candidate-response list, not a verdict.
→
budget-optimizer reallocatesAd-group starvation check Plan: C5a
Spots ad groups starved by shared budget. Surfaces candidates for a structural look.
Monthly client report Report
Bigger version of weekly. Auto data + charts, human narrative.
Industry watch digest Context
Narrow industry feeds (construction, ecommerce, real estate, etc.) — keeps C8 profiles fresh.
QuarterlyStrategic
tracking-specialist Audit50-diagnostic conversion tracking deep-dive. Goes deeper than C1's tag-firing alerts.
lp-auditor Audit40 LP diagnostics (message match, performance, ecom). Makes "CVR is the bottleneck" evidence-based.
→
lp-optimizer appliesstrategy-specialist AuditUnit economics + goals revisit. The scheduled version of business-context-gatherer.
geo-schedule-auditor Audit14 diagnostics across geo, schedule, device, demographics.
→
geo-schedule-optimizer appliesaccount-auditor Audit24 diagnostics across account structure, naming, settings, defaults.
google-ads-audit ReportComprehensive end-of-quarter PDF report. Synthesis layer on top of individual auditors.
Maturity readiness check Plan: C5b
Volume readiness, divergence prompts, value-spread / margin proxy, concentration check. Asks questions, doesn't recommend.
Strategic completeness check Plan: C6
Walks each account against the standing-levers checklist. Match type · Bid strategy · Bid target / funnel step · Value-based bidding · OCT · Audience layering · Structure splits · Creative refresh.
Creative review Plan: C6
RSA + image asset performance. Per-account winners and dead weight + cross-account synthesis (the leverage of running a portfolio).
sellable-competitor-intel ContextQuarterly competitor messaging analysis report.
Ad-hoc / triggered
No schedule — run when needed.
gads-contextPull GAds account data to CSVs. Base layer before any analysis.
ads-context-gathererScrape brand + marketing context from URL.
landing-page-scraperLP metadata for RSA / sitelinks generation.
offer-makerExtract message angles for RSAs.
rsa-makerRSAs from angles + brand context.
landing-page-builderLP wireframes from brand + offer context.
google-ads-creationRSAs, sitelinks, callouts, campaigns, KWs, negatives.
script-creatorBuild Google Ads scripts (helps build C1).
google-ads-gap-analysisWhen something's broken, find WHERE first.
account-changelogRecent account changes for "what happened" investigations.
search-term-classifierClassifies search terms by intent at scale.
google-ads-audience-expansionApply audience layering (triggered by C6 levers check).
google-ads-pmax-pythonPMax 8-channel breakdown reports.
google-ads + google-ads-basicNatural-language / MCP query layers for ad-hoc data pulls.
accounts + mcc-statusOperational account management and per-account narrative status.
Open items
- Build
google-ads-onboardingskill — automate new client onboarding (clone Onboarding Doc + Working Sheet templates, create Drive folder, brain client folder + accounts.json + ppcos symlinks, then sync the post-discovery doc back into business.md / profile.md / ppcos-config.json). Scope inproject_google_ads_onboarding_skill.mdmemory. - Document tracking setup per client — tag triggers, forms wired, dataLayer values. Required for
tracking-specialist. - Add GTM API access — separate OAuth scope. Workaround for now: GTM JSON exports per client.
- Build cross-account synthesizer — Component 6 calls for it. No skill exists yet. Check each PPC Hub update.
- Build per-account naming map — C5b setup dependency for the quarterly readiness check.
- Draft standing levers checklist — the menu C6 walks.
- Confirm n-gram aggregation — verify
search-term-auditoraggregates account-wide, not per-campaign. - Research auction insights extraction — best route (API vs script vs Make report pull) for C4.
- Populate standing-decisions log for established accounts — capture load-bearing decisions before they're lost.