---
name: run-video-campaign-optimization-cycle
description: >-
  A time-boxed monthly checkpoint for live YouTube Video campaigns: verifies serving health, spot-checks the top
  placements and audience segments against hard CPA thresholds, benchmarks each creative (view rate, CTR, cost-per-
  view trend), enforces the non-negotiable expansion-OFF rule on remarketing, audits frequency caps and view-through
  reliance, aligns budgets and bid strategies, and confirms brand-safety settings. It diagnoses and routes rather
  than deep-fixes: three-plus bad placements go to manage-demand-gen-and-video-placements, multi-segment audience
  failure goes to optimize-audience-performance. Run it monthly on a fixed date, two weeks after any Video launch,
  or when Video spend outruns its results. Do NOT use it to create campaigns (launch-a-video-campaign), for Demand
  Gen campaigns (run-demand-gen-optimization-cycle), or as a substitute for the deep placement or audience skills it
  escalates to.
---
# Video Campaign Monthly Checkpoint

## Purpose
Video campaigns fail quietly: placements rot, expansion toggles drift back on, frequency climbs, and view-through
conversions flatter the numbers, none of it visible in a top-line dashboard. This skill is a fixed 45-minute
sweep that checks each known failure surface against a threshold and either fixes it in minutes or books the
specialist skill. It is a checkpoint, not deep optimization; its output is a clean bill or a routed work list.

## When to run
- Monthly, on a fixed calendar date, for every account with active Video campaigns.
- Two weeks after launching any new Video campaign (first placement and frequency read).
- Ad hoc when Video spend runs 20%+ over plan without matching results, or after a sudden CPA/CPV spike.

## When NOT to run
- No Video campaign exists yet → `launch-a-video-campaign`.
- The campaign is Demand Gen → `run-demand-gen-optimization-cycle` (different economics and levers).
- You already know the problem is placements → go straight to `manage-demand-gen-and-video-placements`.
- You already know the problem is the audience layer → `optimize-audience-performance`.
- PMax optimization → `run-pmax-ecommerce-optimization-cycle` / `run-pmax-lead-gen-saas-optimization-cycle`.

## Prerequisites
- Active Video campaigns with 30+ days of data (14 days acceptable for the post-launch pass).
- Per-campaign targets (CPV/CPM for awareness, CPA/ROAS reference for any down-funnel expectations).
- Backend conversion data available for the view-through cross-check (recommended, not blocking).
- The five-minute discipline: any phase needing more than five minutes of work gets documented and routed, not
  done inline.

## Procedure
1. **Health gate.** Via `gads_run_gaql_query`: every Video campaign enabled, impressions in the last 7 days,
   conversion tracking recording (where relevant), no disapproved ads. A non-serving campaign invalidates the
   rest of the checkpoint, fix delivery first. Consult `gads_policy_guardrail` before the session's first write.
2. **Placement spot-check.** Call `gads_get_placement_report` for the last 30 days, sorted by cost descending;
   read the top 50, judge the top 10 hardest. All acceptable → move on. One or two junk placements in the top 10
   → exclude them now via `gads_add_negative_placements`, preview (validate_only=true), apply only after user
   approval. Three or more junk placements in the top 10, or mobile-app placements not excluded → book
   `manage-demand-gen-and-video-placements` within 7 days and move on.
3. **Audience spot-check.** Via `gads_run_gaql_query`, pull per-segment CPA/ROAS per campaign. All within 1.5x
   target → clean. One segment past 2x target on 50+ clicks → pause or narrow it (route the write through
   `optimize-audience-performance` conventions; log it here). Multiple segments failing → book
   `optimize-audience-performance` within 7 days. Also call `gads_list_user_lists`: any remarketing list trending
   below 1,000 users is a delivery risk, flag for list refresh. Observation-mode segments dormant 60+ days get
   flagged for graduation-or-removal in the next audience cycle.
4. **Creative benchmark.** Pull per-ad video metrics via `gads_run_gaql_query` and `gads_get_ad`: skippable
   in-stream view rate below ~20% → the first-5-seconds hook needs a re-cut; CTR below ~0.5% → test a stronger
   CTA treatment; cost-per-view rising three or more consecutive months → creative is worn out, queue a refresh.
   If the account runs only one format, note a second (bumper, Shorts-oriented vertical, in-feed) as a test
   candidate. No video creative should be running 90+ days with zero conversions. Production and structured
   testing route to `run-a-creative-testing-cycle`.
5. **Expansion control, non-negotiable, every cycle.** For every remarketing campaign, verify audience
   expansion / optimized targeting is OFF; if ON, it must be turned off today (the toggle is a HUMAN STEP outside
   VigilDog, emit the exact campaign and ad group). For prospecting campaigns running expansion, read the
   expansion-delivery share via `gads_run_gaql_query` and compare its CPA to selected audiences: under 1.5x keep,
   1.5–2x re-check next cycle, over 2x recommend OFF.
6. **Frequency and view-through.** Confirm every Video campaign carries a frequency cap (remarketing ~3–5
   impressions/week, prospecting ~5–7/week, pure awareness ~2–3/day). A missing cap gets set today, via the
   campaign-settings write (`gads_update_campaign`, preview → approval) or as a HUMAN STEP if not reachable this
   session. Then compute view-through share of total conversions: under 30% healthy; 30–60% flag for backend
   validation; over 60% recommend shortening the view-through window or removing VTCs from bidding.
7. **Budget and bid alignment.** Compare each campaign's 30-day actuals to target. Shift budget from
   target-missers to campaigns hitting goals but delivery-capped, via `gads_update_budget`, preview first, apply
   only after user approval. Verify the bid strategy still matches the objective (awareness → CPM-based;
   consideration → CPV-based); correct mismatches via `gads_set_campaign_bidding_strategy` (preview → approval).
   If anyone is asking a Video campaign for conversions, the answer is a Demand Gen campaign, not a bid change.
8. **Brand-safety verification.** Expected state: inventory type at the moderate or restricted tier (never the
   widest), all five sensitive-content categories excluded, mobile app categories excluded, parked domains
   excluded. Reads that are not GAQL-reachable are a HUMAN STEP (outside VigilDog), verify in the UI and log;
   fixes route through `gads_set_video_brand_safety` in `launch-a-video-campaign` or the placement skill.
9. **Close out.** Write the checkpoint record: pass/fail per phase, exclusions applied, escalations booked with
   dates, budget shifts made, and next month's checkpoint date.

## Decision rules
- **Placement escalation:** ≤2 bad in top 10 → fix inline; ≥3 bad in top 10 or apps unexcluded → full placement
  skill within 7 days. Never judge a placement on fewer than 1,000 impressions.
- **Audience verdicts:** within 1.5x target → clean; >2x on 50+ clicks → pause/narrow; multiple failures or lists
  under 1,000 users → escalate. Dormant observation segments have a 60-day shelf life.
- **Creative floors (skippable in-stream):** view rate ~20%, CTR ~0.5%; three months of rising CPV = refresh
  regardless of absolute level.
- **Expansion:** remarketing OFF always; prospecting judged by expansion-vs-selected CPA at the 1.5x / 2x bands.
- **Frequency caps:** remarketing 3–5/wk · prospecting 5–7/wk · awareness 2–3/day. No cap = set one today.
- **View-through bands:** <30% fine · 30–60% validate · >60% restructure the window.
- **Bid model law:** Video bids CPM or CPV only. Conversion expectations belong on Demand Gen.
- **Time-box:** ~45 minutes total; any phase exceeding 5 minutes of fixing becomes a routed item.
- **Post-launch variant:** at the two-week check, run steps 1, 2, 5, and 6 only, placement, expansion, and
  frequency problems show early; audience and creative verdicts still need the full 30 days of data.

## Common failure modes
- **Skipping the placement pass "because last month was clean."** Bad placements accrue continuously; the top-10
  check is the cheapest insurance in the account.
- **Running the checkpoint off-cadence.** Ad hoc "when things look bad" reviews mean the cheap early catches
  (drifted toggles, missing caps) are always found late. The fixed monthly date is the mechanism.
- **Treating the post-launch pass as optional.** The two-week check after a launch is when the first junk
  placements and frequency problems surface; skipping it leaves them compounding until day 30.
- **Expansion drifting back on.** Campaign edits and interface changes re-enable it more often than anyone
  expects; that is why step 5 runs every cycle without exception.
- **Confusing the two expansion features.** Conversion-goal Video uses one mechanism, awareness Video another, verify the one that actually applies to each campaign's subtype.
- **Taking view-through at face value.** A campaign "converting" mostly through views can be claiming credit for
  organic demand; the backend cross-check is the only defense.
- **Checkpoint scope creep.** Rebuilding audiences inside a 45-minute sweep produces half-done work in both
  places. Route it.
- **Budget shifts on 7-day data.** Reallocation decisions use the 30-day window; weekly noise whipsaws budgets.

## Related skills
- Before (first time): `launch-a-video-campaign` creates what this skill maintains.
- Escalation targets: `manage-demand-gen-and-video-placements` (placements/brand safety),
  `optimize-audience-performance` (audience layer), `run-a-creative-testing-cycle` (creative refresh).
- Sibling cadence: `run-demand-gen-optimization-cycle`, the equivalent pass for Demand Gen campaigns.
