---
name: configure-ai-max-for-search
description: >-
  Prepares, gates, and measures the rollout of Google's AI Max expansion suite (search term matching, AI text
  customization, final URL expansion) on an existing Search campaign. VigilDog tools verify every prerequisite
  (Smart Bidding, strong RSAs, a proven broad-match baseline), lay down the defensive layer of negatives, run the
  launch as a 50/50 experiment so the incremental effect is actually measurable, and drive post-launch query and
  asset triage. The AI Max toggles themselves, brand-mode selection, URL inclusions/exclusions, and text guidelines
  live in the Ads UI and are explicit human steps this skill sequences and verifies around. Use it only after broad
  match has been tested on the campaign; if broad match is untested, run a campaign experiment on that first. For
  structure work use build-search-campaign-structure; for plain negatives hygiene use analyze-search-term-reports.
---
# Roll Out AI Max on a Search Campaign

## Purpose
AI Max hands Google three new levers on your campaign, wider query matching, machine-written ad text, and
machine-chosen landing pages, and each lever defaults to open. This skill runs the rollout defensively: prove the
prerequisites, decide the keywordless coverage mode deliberately, fence every lever with brand controls, negatives,
URL constraints, and text guidelines BEFORE launch, and launch inside an experiment so the contribution is
measurable rather than assumed.

## When to run
- An established keyword Search campaign wants more query coverage and broad match has already tested acceptably.
- A legacy dynamic-search setup is being replaced with a scoped keywordless configuration.
- Management asked "should we turn on AI Max?", this skill produces the gated answer, not just the toggle.

## When NOT to run
- Broad match has never been tested on this campaign → run `run-a-campaign-experiment` on broad match first.
- Landing pages are thin, stale, or unmaintained, the expansion features read your pages; fix pages first
  (`improve-landing-page-experience`).
- The account needs strict keyword-level reporting and tight match control everywhere; expansion is the wrong tool.
- You are building a new campaign → `build-search-campaign-structure`; enabling one → `launch-a-search-campaign`.

## Prerequisites
- Campaign on Smart Bidding with at least one strong RSA per ad group.
- A broad-match experiment result on file with acceptable CPA/ROAS.
- Account and campaign negative lists current; brand term lists prepared if the controlled brand mode will be used.
- Maintained, crawlable landing pages; a tracking template (if any) compatible with dynamically substituted URLs.
- Ads UI edit access for the human steps.

## Procedure
1. **Verify prerequisites with tools.** `gads_get_campaign` / `gads_list_campaigns` to confirm the Smart Bidding
   strategy; `gads_list_ads` + `gads_get_ad_strength` to confirm each ad group carries at least one credible RSA;
   `gads_list_experiments` to locate the broad-match test and its result. Any gate failing → stop and route
   (bidding → `select-a-bidding-strategy`; ads → `write-compelling-rsas`; broad untested →
   `run-a-campaign-experiment`). Page readiness is a HUMAN STEP (outside VigilDog).
2. **Choose the keywordless coverage mode with the user.** Two valid shapes: (a) open discovery, URL expansion on,
   steered by exclusions and per-ad-group URL inclusions or a page feed; (b) scoped keywordless, URL expansion
   off, dedicated keywordless ad groups serving only their included URLs (the modern replacement for a legacy DSA
   ad group). The switch is campaign-wide; needing both shapes means two campaigns. Record the decision and the
   steering pattern (well-themed ad groups → per-ad-group inclusions; over-segmented structure → one concentrated
   keywordless ad group; large catalog → page feed with labels).
3. **Consult the policy guardrail** (`gads_policy_guardrail`) before the session's first Google Ads write.
4. **Lay the negative-keyword backstop.** Apply/refresh the campaign's exclusion lists via
   `gads_add_negative_keywords` and `gads_add_keywords_to_shared_set` (preview first, commit after explicit user
   approval). Never add the campaign's own active keywords as negatives. Confirm any dedicated brand/competitor
   campaign stays funded, if it runs dry, the expanded matching absorbs that traffic.
5. **HUMAN STEP, enable and fence in the Ads UI.** Walk the user through, in order: (a) AI Max on (skip the
   toggle if launching via experiment in step 7, the trial arm activates it); (b) per-ad-group search term
   matching opt-OUT on every exact/phrase ad group kept for control, but never on a keywordless URL-inclusion ad
   group, which cannot serve without matching; (c) brand mode, default to unbranded-searches-only when a separate
   brand campaign owns brand traffic, or the controlled inclusions/exclusions mode for selective brand defense
   (exclusion wins on conflict); (d) URL exclusions for every utility page (cart, checkout, login, legal,
   thank-you) and the chosen inclusion/page-feed steering; (e) text guidelines, term exclusions (max 25) and
   messaging restrictions (max 40: competitor names, prices, superlatives, tone rules). Text customization on
   with no guidelines configured is a launch blocker, full stop.
6. **Verify the tracking template.** HUMAN STEP: confirm the landing-page URL macro pattern survives dynamic page
   substitution so expanded URLs do not 404.
7. **Launch as a 50/50 experiment.** Use `gads_create_experiment` + `gads_schedule_experiment` (preview →
   approval → commit) to split the campaign: control arm without AI Max, trial arm with it, all the fences from
   steps 4–5 applying to the trial. Test ONE layer per experiment, when the question is query matching, keep
   asset generation identical across arms; test URL expansion in its own follow-up. Plan 6–8 weeks, ending early
   only on statistical significance, and freeze changes for the first two weeks of learning. If an experiment is
   impossible (volume/budget), enable directly and treat pre/post comparison as directional only, say so in the
   report.
8. **Post-launch triage, days 1–14.** Pull `gads_get_search_terms_report` with the expanded-query view for
   irrelevant queries and wrong landing pages; check Search Partner share via `gads_get_campaign` reads. Add
   negatives (`gads_add_negative_keywords`, preview → approval) and flag URL exclusion additions (HUMAN STEP).
   Review generated assets via `gads_list_assets` and have the user remove off-brand ones in the UI (HUMAN STEP).
9. **Read the result and decide.** After the run, compare arms on CPA/ROAS and incremental conversion volume.
   Winning → promote via the experiment flow and end it with `gads_end_experiment` (preview → approval); losing →
   end and keep the control. Promote strong discovered queries into keyword ad groups via
   `promote-search-terms-to-keywords`. Document which layer was proven and what the next single-layer test is.

## Decision rules
- **Hard gates before anything:** broad match tested, Smart Bidding live, at least one strong RSA per ad group,
  pages maintained. Any failure stops the rollout.
- **Text customization stance is OFF by default.** It goes on only when the configuration forces it (URL
  inclusions and URL expansion both require it) or the user deliberately opts in, and opting in also opts the
  campaign into Google's auto-upgrade cohort, so the choice must be explicit.
- **Guidelines gate:** text customization on ⇒ text guidelines configured before launch. No exceptions.
- **Matching opt-out matrix:** exact/phrase control ad groups → opt out per ad group; keywordless URL-inclusion ad
  groups → matching must stay ON or their targets sit pending forever.
- **Brand mode default:** unbranded-only whenever a dedicated brand campaign exists; all-searches mode only as a
  deliberate maximum-reach decision.
- **One variable per experiment; 6–8 weeks; two-week no-touch window.** Direct pre/post enablement is directional
  evidence, never proof.
- **Broad-match conversion happens at keyword level,** not via the campaign-level broad match setting, that
  setting is itself an auto-upgrade trigger.

## Common failure modes
- **Unfenced URL expansion** landing traffic on careers pages and checkout steps. Exclusions and inclusions go in
  before launch, not after the first bad week.
- **Blanket matching expansion** silently broadening the exact-match ad groups that existed for control. The
  per-ad-group opt-out is the whole mechanism, use it.
- **Opting out matching on a keywordless ad group,** then wondering why it never serves.
- **Machine-written copy with no guidelines,** producing competitor mentions and invented prices in live ads.
- **Brand campaign runs out of budget** and the AI Max campaign quietly eats brand traffic at inflated CPCs; keep
  the brand campaign funded and the brand mode strict.
- **Enabling everything at once with no experiment:** performance moves and nobody can say which lever did it or
  whether it was worth it.

- **Judging the trial arm during its learning window.** The first two weeks of an expansion experiment are
  volatile by design; early reads trigger reverts that would have become wins (or losses that needed more data
  either way).

## Related skills
- Run before: `run-a-campaign-experiment` (broad-match proof), `write-compelling-rsas`, `select-a-bidding-strategy`.
- Run alongside/after: `analyze-search-term-reports` (ongoing query hygiene), `promote-search-terms-to-keywords`
  (harvest discoveries), `manage-experiment-backlog` (queue the next single-layer test).
- Fix routes: `improve-landing-page-experience` for page readiness failures.
