Create a Meta Advantage+ campaign using the unified three-lever automation structure via the Marketing API
domain: developers.facebook.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Configure campaign-level spend using a supported bid strategy (LOWEST_COST_WITHOUT_CAP, COST_CAP, LOWEST_COST_WITH_BID_CAP, or LOWEST_COST_WITH_MIN_ROAS) to enable the Advantage+ budget lever.
Create the campaign with objective OUTCOME_SALES, OUTCOME_APP_PROMOTION, or OUTCOME_LEADS via POST /act_{ad_account_id}/campaigns; do not set smart_promotion_type, since the legacy AUTOMATED_SHOPPING_ADS/SMART_APP_PROMOTION values are no longer creatable as of Marketing API v25.0.
On the ad set, set targeting_automation.advantage_audience to 1 and specify only geo_locations targeting to enable the Advantage+ audience lever (or use individual targeting options with relaxation enabled for a more controlled setup).
Leave placement targeting and exclusions unset on the ad set to enable the Advantage+ placement lever across all eligible Meta placements.
Query the campaign's read-only advantage_state, advantage_budget_state, advantage_audience_state, and advantage_placement_state fields to confirm all three levers report ENABLED and the campaign reflects ADVANTAGE_PLUS_SALES/APP/LEADS.
Known gotchas
Marketing API v24.0 (Oct 8, 2025) blocked new ASC/AAC campaign creation via the legacy smart_promotion_type flag, and v25.0 (Q1 2026) removed it entirely across all API versions — campaigns now enter Advantage+ state only when all three automation levers are configured together.
The existing_customer_budget_percentage field is deprecated alongside the legacy ASC API; replicate an 'existing vs. new customer' budget split with two ad sets (one including, one excluding, a custom audience of existing customers) instead.
ASC campaigns with more than 50 ads in a single ad set cannot be duplicated through the API after v25.0, even though they remain editable.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?