---
name: run-search-campaign-optimization-cycle
description: >-
  The master recurring routine for Search campaigns: a fixed-order sweep that checks account health first, then
  works query hygiene, keyword triage, Quality Score, ad testing, bids and budgets, extensions, and the
  competitive picture, executing the light checks inline and routing every deep fix to its dedicated skill. Its
  value is the ordering discipline (never polish ads while conversion tracking is broken) and the cadence
  discipline (not every phase runs every cycle). Run it weekly at 200+ conversions/month, bi-weekly at 50–200,
  monthly below, plus immediately after a 30%+ CPA spike or an aggressive new auction entrant. It replaces neither
  the daily glance (run-a-daily-account-health-check) nor the reporting reviews (run-a-weekly-performance-review,
  run-a-monthly-performance-review), and Shopping/PMax/video each have their own cycles.
---
# Search Campaign Optimization Cycle

## Purpose
Reactive optimization fixes whatever happened to get noticed; a cycle fixes what matters, in an order that prevents
wasted work. This skill sweeps every optimization lever of a Search campaign on a fixed sequence and cadence,
performs the quick reads and small executions itself, and dispatches anything deep to the owning skill, so nothing
falls through the cracks and no one tunes creative on top of broken measurement.

## When to run
- Recurring, by conversion volume: 200+/month → weekly; 50–200 → bi-weekly; under 50 → monthly (thin data needs
  aggregation before it means anything).
- Out-of-cadence triggers: CPA up 30%+ with no obvious cause; a new competitor bidding hard; right after launching
  campaigns, ad groups, or match-type expansions.

## When NOT to run
- Quick daily pulse-check → `run-a-daily-account-health-check`.
- Stakeholder reporting and trend narrative → `run-a-weekly-performance-review` / `run-a-monthly-performance-review`.
- A single anomaly to chase → `investigate-performance-anomalies`.
- Shopping, PMax, Demand Gen, or Video campaigns → their own optimization cycles.

## Prerequisites
- Documented targets per campaign (tCPA/tROAS or business CPA/ROAS goals).
- The previous cycle's notes and carry-forward list (this skill's own output; first run starts one).
- Awareness of which cycle this is, weekly cycles run phases 1–3, 6, and 9; the bi-weekly and monthly add-ons are
  listed per phase.

## Procedure
1. **Phase 1, health gate (every cycle).** Pull `gads_get_account_performance` and a `gads_run_gaql_query` sweep
   over the in-scope campaigns: conversion actions still recording, budgets delivering, no disapproval or serving
   anomalies, tracking counts plausible against recent history. Classify every issue by the constraint ladder in
   Decision rules and treat measurement or economics failures as BLOCKERS, route them out
   (`set-up-google-ads-conversion-tracking`, `calculate-and-validate-unit-economics`) and pause the cycle here
   until resolved. Optimizing traffic on top of broken measurement produces confident nonsense.
2. **Phase 2, query management (every cycle).** `gads_get_search_terms_report` for the last 7–14 days, focused on
   spend-bearing terms. Negate obvious irrelevance and collect promotion candidates per
   `analyze-search-term-reports`; execute promotions per `promote-search-terms-to-keywords`. If the N-gram cadence
   is due (monthly; bi-weekly for high-volume accounts in their first 90 days), run `run-n-gram-analysis`.
3. **Phase 3, keyword triage (every cycle).** `gads_get_keyword_performance` over 14–30 days (longer when
   volume is thin). Classify keywords with 50+ clicks into the four action groups, scale winners, repair
   expensive converters, grow constrained performers, diagnose-or-pause non-converters, per
   `analyze-and-optimize-keyword-performance`. Execute the light actions inline after the policy guardrail check
   (step 6): pause clear losers via `gads_pause_keyword`, add approved winners' exact twins via
   `gads_add_keywords`, nudge Manual CPC bids ±10–15% via `gads_update_keyword_bid`, each write previewed
   (validate_only default) and committed only after explicit user approval. Flag expensive converters for Phase 4.
4. **Phase 4, Quality Score (bi-weekly).** Via `gads_run_gaql_query` on quality components, list keywords with
   QS < 7 and 100+ monthly impressions, the 5→7 band is where fixes buy the biggest CPC relief; 7→9 chases
   diminishing returns. Route by weak component through `improve-quality-score` (which sequences
   `improve-ad-relevance`, `improve-expected-ctr`, `improve-landing-page-experience`).
5. **Phase 5, ad testing (monthly).** `gads_get_rsa_asset_performance` for asset-level data. Judge assets on
   conversion-per-impression style value metrics, not the platform's ad strength grade, `gads_get_ad_strength`
   is a diversity opinion, and a poorly-graded ad regularly out-converts an excellent-graded one. Route the
   classify-and-replace loop to `rsa-testing-with-the-iteration-loop`: cut the assets stealing impressions
   without converting first, then feed exposure to under-served strong assets, then replace the dead weight.
6. **Policy guardrail.** Before the first Google Ads write of the session (whichever phase triggers it), call
   `gads_policy_guardrail` and honor its output.
7. **Phase 6, bids and budgets (every cycle).** From `gads_run_gaql_query`: impression share lost to budget
   above 20% → the campaign is throttled; route to `handle-budget-limited-campaigns` or apply an approved raise
   via `gads_update_budget` (preview → approval → commit). IS lost to rank above 30% → bid target or quality
   problem; route to Phase 4 or adjust targets. Check strategy health: a "learning" state past ~14 days, targets
   drifted from business goals, or volume under ~30 conversions/month all route to
   `monitor-and-maintain-bid-strategy-health`. Any target change stays within 5–20% per move, bigger jumps
   restart learning and buy volatility.
8. **Phase 7, extensions (monthly).** `gads_run_gaql_query` asset coverage check against minimums (4 sitelinks,
   4 callouts, structured snippets per campaign). Gaps and stale performers route to
   `review-and-optimize-ad-extensions`.
9. **Phase 8, competitive read (monthly).** `gads_get_auction_insights` for the last 30 days against the prior
   30: new entrants, overlap shifts, position-above changes. Interpret via `analyze-auction-insights`. Default
   posture: no response while your KPIs hold, most competitor movement deserves observation, not reaction.
10. **Phase 9, documentation (every cycle, mandatory).** Write the cycle log: issues found and their constraint
    class, every change with rationale, negatives/promotions counts, QS and ad-test items queued, bid/budget
    moves, competitive notes. Build the carry-forward list with priorities and dates, and append new test ideas
    to `manage-experiment-backlog`. Next cycle opens by reading this log.

## Decision rules
- **Constraint ladder (fix top-down, never skip):** measurement integrity → business economics → conversion path →
  traffic quality → creative. A lower rung is not worth touching while a higher rung is broken.
- **Phase cadence:** 1–3, 6, 9 every cycle; 4 bi-weekly; 5, 7, 8 monthly. Running everything every week is how
  cycles die of exhaustion.
- **Keyword floor in this cycle: 50+ clicks** (the deeper standalone triage uses 100+; the cycle acts earlier but
  lighter).
- **Budget throttle threshold:** IS lost (budget) > 20%. **Rank threshold:** IS lost (rank) > 30%.
- **Learning stuck:** 14+ days in learning state → investigate, don't tinker.
- **Target moves: 5–20% per cycle,** one direction, then wait.
- **Separate bid changes from ad changes by at least one cycle**, simultaneous moves make results unattributable.
- **Trend confirmation:** single-cycle wobbles get noted; only 2+ cycle trends justify major action.

## Common failure modes
- **Skipping the health gate because "everything looks fine".** The weeks it looks fine are exactly when silent
  tracking breakage compounds.
- **Creative work over broken measurement**, the classic ladder violation; every downstream number was fiction.
- **Running all nine phases weekly,** burning hours on monthly-cadence checks and losing the habit entirely.
- **Bid + ad changes in the same cycle:** when performance moves, you cannot know which lever did it.
- **Reacting to one noisy week** with target changes that restart learning and create the next noisy week.
- **No carry-forward list:** unfinished items evaporate and every cycle rediscovers them from scratch.
- **Trusting the ad strength grade** as a performance verdict in Phase 5; it measures asset variety, not results.

- **Letting blockers slide "just this once".** A measurement issue waved through this cycle poisons three cycles
  of decisions before anyone traces the numbers back to it.
- **Treating the cycle as optional in good weeks.** The cadence exists precisely so that quiet weeks still get
  the health gate and query hygiene that keep them quiet.

## Related skills
- Executes via: `analyze-search-term-reports`, `promote-search-terms-to-keywords`, `run-n-gram-analysis`,
  `analyze-and-optimize-keyword-performance`, `improve-quality-score`, `rsa-testing-with-the-iteration-loop`,
  `handle-budget-limited-campaigns`, `monitor-and-maintain-bid-strategy-health`,
  `review-and-optimize-ad-extensions`, `analyze-auction-insights`.
- Escalation routes: `investigate-performance-anomalies`, `allocate-budget-across-campaigns`,
  `review-and-optimize-campaign-structure`, `run-a-campaign-experiment`, `launch-a-search-campaign`.
- Companions on other cadences: `run-a-daily-account-health-check`, `run-a-weekly-performance-review`.
