Skip to content

Advantage Campaign Budget

Updated: Jun 26, 2026

An Advantage campaign budget is a way of optimizing the distribution of a campaign budget across your campaign's ad sets. This means Facebook automatically and continuously finds the best available opportunities for results across your ad sets and distributes your campaign budget in real time to get those results.

You can either enable or disable an Advantage campaign budget for an ad campaign. If you disable the Advantage campaign budget, you should provide budgets for all ad sets under the campaign.

Campaign-level fields

NameDescription
daily_budgetThe daily budget of the campaign.
lifetime_budgetThe lifetime budget of the campaign.
pacing_typePacing type shared across the ad sets in this campaign. Options: * standard * no_pacing (also known as accelerated delivery) * day_parting (also known as ad scheduling)
budget_rebalance_flagDo not use for Advantage campaign budgets. See Ad Set Budget Rebalancing below.
adset_budgetsThe ad set budget to use for each ad set in the campaign. Use this to disable an Advantage campaign budget and to use individual ad set budgets.
bid_strategyBid strategy of the campaign. Options: * LOWEST_COST_WITHOUT_CAP * COST_CAP * LOWEST_COST_WITH_BID_CAP * LOWEST_COST_WITH_MIN_ROAS If you choose Value as an optimization_goal for LOWEST_COST_WITHOUT_CAP in Ads Manager⁠, Highest Value appears as your bid strategy.
adset_bid_amountsThe bid amounts to use for ad sets in this campaign when the campaign bid strategy is set to LOWEST_COST_WITH_BID_CAP or COST_CAP. You should set this field along with bid_strategy.

See examples below to learn more about using these fields.

Ad set-level controls

NameDescription
daily_min_spend_targetDaily minimum spending target for the ad set, in your account's currency. You must specify a daily budget at the ad campaign level. This target does not guarantee you spend this amount, but Facebook makes a best effort to achieve it. To remove daily_min_spend_target from an ad set, set it to 0 or an empty value. For example, daily_min_spend_target=0, or daily_min_spend_target=.
daily_spend_capDaily spend cap of the ad set defined in your account currency. You must specify the daily budget at the ad campaign level.
lifetime_min_spend_targetLifetime minimum spend target for an ad set defined in your account currency. You must specify the lifetime budget at the ad campaign level. This target is not a guarantee you achieve the target, but Facebook makes a best effort to reach it. To remove lifetime_min_spend_target from an ad set, set it to 0 or an empty value. For example, lifetime_min_spend_target=0, or lifetime_min_spend_target=.
lifetime_spend_capLifetime spend cap of the ad set defined in your account currency. You must specify the lifetime budget in the campaign.
bid_amountBid amount for this ad set. Available only when you set the campaign-level is_autobid to false.
bid_constraintsSimilar to an ad set budget, minimum Return on Ads Spend bidding (also called Min ROAS), uses this to provide the ROAS floor, but you cannot use bid_amount with bid_constraints. See Examples to use Min ROAS with an Advantage campaign budget.

Examples

LOWEST_COST_WITHOUT_CAP

Create a campaign using an Advantage campaign budget with bid_strategy set to LOWEST_COST_WITHOUT_CAP. The campaign has a 1000 USD daily budget with auto bid:

curl
  -F 'name=L3 With Daily Budget' \
  -F 'objective=OUTCOME_TRAFFIC' \
  -F 'daily_budget=100000' \
  -F 'bid_strategy=LOWEST_COST_WITHOUT_CAP' \
  -F 'special_ad_categories=NONE' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/campaigns

LOWEST_COST_WITH_BID_CAP

Create a campaign using an Advantage campaign budget with bid_strategy set to LOWEST_COST_WITH_BID_CAP. The campaign has a 1000 USD lifetime budget:

curl
  -F 'name=L3 With Lifetime Budget' \
  -F 'objective=OUTCOME_TRAFFIC' \
  -F 'lifetime_budget=100000' \
  -F 'bid_strategy=LOWEST_COST_WITH_BID_CAP' \
  -F 'special_ad_categories=NONE' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/campaigns

Then create an ad set with the maximum bid capped:

curl \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'name=Test Adset No Budget' \
  -F 'status=ACTIVE' \
  -F 'optimization_goal=LINK_CLICKS' \
  -F 'targeting={"geo_locations":{"countries":["US"]},"publisher_platforms": ["facebook","audience_network"],"facebook_positions":["feed"],"device_platforms":["mobile","desktop"]}' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'bid_amount=100' \
  -F 'time_stop=1712888798'
  -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/adsets

LOWEST_COST_WITH_MIN_ROAS

Create a campaign using an Advantage campaign budget with bid_strategy set to LOWEST_COST_WITH_MIN_ROAS. For example, the campaign has 1000 USD lifetime budget with Min ROAS set:

curl
  -F 'name=L3 With Lifetime Budget' \
  -F 'objective=OUTCOME_SALES' \
  -F 'lifetime_budget=100000' \
  -F 'bid_strategy=LOWEST_COST_WITH_MIN_ROAS' \
  -F 'special_ad_categories=NONE' \
  -F 'access_token=<ACCESS_TOKEN>' \
 https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/campaigns

Then create an ad set with Return on Ads Spend minimums set:

curl
  -F 'name=minRoasBiddingDemo' \
  -F 'optimization_goal=VALUE' \
  -F 'promoted_object={"pixel_id": <PIXEL_ID>, "custom_event_type": PURCHASE}' \
  -F 'targeting={"geo_locations":{"countries":["US"]}​}' \
  -F 'campaign_id=<CAMPAIGN_ID>' \
  -F 'status=PAUSED' \
  -F 'time_stop=1712888798' \
  -F 'bid_constraints={"roas_average_floor": 10000}' \
  -F 'billing_event=IMPRESSIONS' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v25.0/act_AD_ACCOUNT_ID/adsets

Update an Advantage campaign budget or bid strategy choices

You can disable an Advantage campaign budget from an ad campaign and add budget to ad sets. For example, the following code sample:

  • Removes the campaign budget
  • Sets the budget of AD_SET_ID1 to 5000
  • Sets the budget of AD_SET_ID2 to 7000
curl
 -F 'adset_budgets=[{"adset_id": <AD_SET_ID1>, "daily_budget": 5000}, {"adset_id": <AD_SET_ID2>, "daily_budget": 7000}]'
 -F 'access_token=<ACCESS_TOKEN>'
https://graph.facebook.com/v25.0/CAMPAIGN_ID

Or you can change your bid_strategy between COST_CAP, and LOWEST_COST_WITH_BID_CAP. For example, the following code sample sets:

  • Bid strategy to LOWEST_COST_WITH_BID_CAP
  • The bid of AD_SET_ID1 to 1500
  • The bid of AD_SET_ID2 to 2000
curl
 -F 'adset_bid_amounts={"<AD_SET_ID1>": 1500, "<AD_SET_ID2>": 2000}'
 -F 'bid_strategy="LOWEST_COST_WITH_BID_CAP"'
 -F 'access_token=<ACCESS_TOKEN>'
https://graph.facebook.com/v25.0/CAMPAIGN_ID

Limitations and best practices

Bid strategy

Define a bid strategy at the campaign level. All ad sets share the same bid strategy defined at the ad campaign level. You can still define different bid amounts or Return on Ad Spend (ROAS) minimums at the ad set level for non-auto bid campaigns. This is the same approach you can use for ad set budget. For LOWEST_COST_WITH_MIN_ROAS, you cannot currently switch to other bid strategies after you create your campaign. See Bid Strategies.

Pacing

Define the pacing_type in the campaign level, not in the ad set level. See Pacing and Scheduling.

Optimization goals

All optimization goals must be the same across ad sets under auto bid. Once you run ads in a campaign, you cannot edit optimization goals. See Optimization Goals.

Campaigns with more than 70 ad sets

If your campaign has more than 70 ad sets and uses an Advantage campaign budget, you are not able to edit your current bid strategy or turn off your Advantage campaign budget. Learn more in the Business Help Center⁠.

Learn more

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About