---
name: launch-advantage-plus-shopping
description: >-
  Builds and launches an Advantage+ Sales campaign - Meta's highly automated OUTCOME_SALES setup (formerly
  Advantage+ Shopping/ASC) where audience, placement, and creative choices are largely automatic. Covers the
  setup path that replaced legacy standalone ASC creation, the pixel + Conversions API Purchase-signal
  prerequisite, the conversion-volume bar (~50 optimization events/ad set/7 days) that determines whether
  automation has enough data to learn, up to ~150 auto-assembled creatives, and the existing-customer budget
  cap that protects new-customer acquisition. Reach for it when an offer has proven manual economics and is
  ready to hand scaling to automation, or when standing up e-commerce Sales on an account with pixel+CAPI
  already firing Purchase events. Builds create PAUSED; budgets in the currency's minor unit. It ends at a
  launched campaign - it does not size the existing-customer cap (set-existing-customer-budget-cap) or build
  catalog-driven ads (launch-advantage-plus-catalog-ads).
---
# Launch an Advantage+ Sales Campaign

## Purpose
Advantage+ Sales is the current, recommended path for e-commerce OUTCOME_SALES campaigns, built via the
OUTCOME_SALES objective's Advantage+ campaign setup, not the legacy standalone Advantage+ Shopping (ASC)
flow that is being retired. It hands audience selection, placement delivery, and creative-combination
assembly (up to ~150 combinations) to Meta's automation, which works well precisely when there is enough
Purchase signal to learn from and badly when there isn't. This skill gets the prerequisites right, builds
the campaign PAUSED for review, and hands off the two levers worth tuning by hand, the existing-customer
cap and audience suggestions, to their own skills.

## When to run
- Launching a new e-commerce Sales campaign on an account with pixel + CAPI Purchase already verified firing.
- A manual OUTCOME_SALES campaign has proven a product's or offer's economics and the account is ready to
  hand scaling to automation.
- Rebuilding a legacy standalone ASC campaign under the current OUTCOME_SALES + Advantage+ setup.
- Standing up catalog-scale prospecting/retargeting where automated creative assembly is a fit (hand off
  catalog wiring after launch).

## When NOT to run
- No pixel/CAPI Purchase signal yet, or Purchase volume is far under the learning bar → fix tracking first.
- Sizing or attaching the existing-customer budget cap in detail → `set-existing-customer-budget-cap`.
- Tuning audience suggestions or deciding broad vs constrained in detail → `configure-advantage-plus-audience`.
- The campaign is catalog-driven dynamic ads specifically → `launch-advantage-plus-catalog-ads` (catalog-commerce domain).
- The objective itself is still in question → `select-campaign-objective`.

## Prerequisites
- Pixel + Conversions API deployed and firing Purchase (and ideally purchase value) events, verified in
  Events Manager. (HUMAN STEP if not yet confirmed.)
- A trailing Purchase count checked against the ~50 optimization events/ad set/7 days learning bar at the
  intended budget.
- A funded ad account (`mads_get_funding_source`).
- If an existing-customer cap will be set at launch: the existing-customer list already built (see
  `set-existing-customer-budget-cap`) or explicitly deferred to a fast-follow step.
- Creative assets sufficient for automatic combination: several images/videos, several primary-text and
  headline variations, thin creative supply starves the ~150-combination engine regardless of settings.
- Catalog connected via `mads_list_catalogs` only if this build will surface catalog products (optional).

## Procedure
1. **Confirm objective and signal.** Verify OUTCOME_SALES is right (`select-campaign-objective` if unsure).
   Call `mads_list_pixels` and confirm Purchase is firing via CAPI + browser pixel with real volume (HUMAN
   STEP: verify in Events Manager, not just via the API listing). IF no signal, THEN stop, automation has
   nothing to optimize toward.
2. **Check volume against the automation bar.** Pull trailing Purchase counts. IF the account can't
   plausibly deliver ~50 Purchases per ad set per week at the intended budget, THEN wait for volume, prove
   the funnel on a manual OUTCOME_SALES campaign first, or raise the daily budget before automating, Advantage+ compounds a thin-data problem rather than fixing it.
3. **Create the campaign PAUSED.** Call `mads_create_campaign` with objective=OUTCOME_SALES, `status=PAUSED`,
   special_ad_categories declared if applicable, and the Advantage+ Sales setup enabled. Set the budget in
   minor units, e.g. $150.00/day is `daily_budget=15000`.
4. **Leave targeting to Advantage+ by default.** Do not hand-build detailed targeting at launch. Add
   audience suggestions only for a documented reason (`configure-advantage-plus-audience`).
5. **Leave placements on Advantage+ (automatic).** Do not hand-pick placements without data
   (`enable-advantage-plus-placements` covers the narrow exceptions).
6. **Load creative for automatic assembly.** Supply the full asset set via `mads_create_creative`, multiple images/video, multiple primary texts/headlines, and enable Advantage+ creative enhancements
   unless brand guidelines rule one out. Pull `mads_preview_creative` to sanity-check the assembled
   combinations before showing the user.
7. **Attach the existing-customer cap.** If a list exists, attach it and set the cap percentage per the
   acquisition-vs-retention goal, full mechanics in `set-existing-customer-budget-cap`. If no list exists
   yet, launch acquisition-only and note the cap as a fast-follow.
8. **Preview and get approval.** Summarize in plain English: objective, budget in major units, audience and
   placement automation level, creative combination count, existing-customer cap (or its absence). Get
   explicit user approval before any commit (write-safety pattern).
9. **Commit and confirm.** Create the ad set(s) and ad(s) under the PAUSED campaign via `mads_create_adset` /
   `mads_create_ad` / `mads_create_creative`. Re-query with `mads_get_campaign` / `mads_get_adset` to
   confirm the built state before touching status.
10. **Activate only as a separate, confirmed step.** Flip `status=ACTIVE` via `mads_update_campaign` only
    after explicit user go-ahead, this starts real spend.

## Decision rules
- **Signal gate:** no pixel+CAPI Purchase history → do not launch; build/verify tracking first.
- **Volume gate:** trailing Purchases well under ~50/ad set/week at the intended budget → expect Learning
  Limited; raise budget, wait for volume, or prove the funnel manually first.
- **ASC vs manual Sales:** proven product, adequate volume, comfort with automated audience/placement →
  Advantage+ Sales. Brand-new offer with zero signal, a SAC-restricted vertical needing hard targeting, or
  a budget too small to ever clear ~50 events/week → manual OUTCOME_SALES campaign with defined targeting.
- **Existing-customer cap default:** no stated acquisition goal yet → launch without a cap rather than guess
  a number, and revisit once the list and goal exist.
- **Creative volume:** fewer than roughly 3-5 images/videos or 3 text variations → add assets before or
  immediately after launch; the combination engine needs raw material, not just permission.
- **Done means:** a PAUSED (or explicitly user-approved ACTIVE) Advantage+ Sales campaign with objective
  OUTCOME_SALES, automated audience and placements, creative combinations loaded, the existing-customer cap
  decided (set or deliberately deferred), and budget recorded in minor units.

## Common failure modes
- **Launching with no or weak Purchase signal.** Automation has nothing to chase; spend burns without learning.
- **Treating legacy ASC docs as current.** Standalone ASC creation is being retired, build via OUTCOME_SALES
  + Advantage+ setup, not the old flow.
- **Too few creative assets** for ~150 combinations to mean anything, the engine needs range, not just a toggle.
- **Setting a hard audience constraint out of habit** instead of leaving it to Advantage+ or using a
  suggestion, defeats the automation (see `configure-advantage-plus-audience`).
- **Skipping the existing-customer cap on a mature account,** silently spending acquisition budget on
  people who would have bought anyway.
- **Retrying a failed create blindly.** There's no idempotency key on `mads_create_campaign`; if a create's
  result is unclear, check `mads_list_campaigns`/`mads_get_campaign` first rather than firing a second create.
- **Activating immediately instead of previewing PAUSED**, skips the approval step the write-safety pattern requires.

## Related skills
- Run after: `configure-advantage-plus-audience` (tune suggestions), `set-existing-customer-budget-cap`
  (size the cap), `enable-advantage-plus-placements` (placement exclusions if any).
- Related: `launch-advantage-plus-catalog-ads` (catalog-commerce domain, for catalog-driven builds),
  `select-campaign-objective` (confirms OUTCOME_SALES is right).
