Appearance
Update an ad set (budget, status, and/or bid strategy)
Ad-set-level writes. Use this for ABO budget updates, ad-set-scoped pause/resume, and bid-strategy edits. At least one of budget, status, or bidStrategy is required.
Bid strategy compatibility (per Meta's spec):
LOWEST_COST_WITHOUT_CAP: nobidAmount, noroasAverageFloor.LOWEST_COST_WITH_BID_CAP/COST_CAP:bidAmountREQUIRED (whole currency units).LOWEST_COST_WITH_MIN_ROAS:roasAverageFloorREQUIRED (decimal multiplier, e.g. 2.0 = 2.0x ROAS).
When updating budget on an ABO campaign: if the parent campaign is CBO, the response is 409 with code BUDGET_LEVEL_MISMATCH — route to PUT /v1/ads/campaigns/{campaignId} instead.
PUT /v1/ads/ad-sets/{adSetId}
Ad-set-level writes. Use this for ABO budget updates, ad-set-scoped pause/resume, and bid-strategy edits. At least one of budget, status, or bidStrategy is required.
Bid strategy compatibility (per Meta's spec):
LOWEST_COST_WITHOUT_CAP: nobidAmount, noroasAverageFloor.LOWEST_COST_WITH_BID_CAP/COST_CAP:bidAmountREQUIRED (whole currency units).LOWEST_COST_WITH_MIN_ROAS:roasAverageFloorREQUIRED (decimal multiplier, e.g. 2.0 = 2.0x ROAS).
When updating budget on an ABO campaign: if the parent campaign is CBO, the response is 409 with code BUDGET_LEVEL_MISMATCH — route to PUT /v1/ads/campaigns/{campaignId} instead.
Parameters
adSetId(path, string) required — Platform ad set ID
Request body
Content-Type: application/json
platform(string) required (enum: facebook, instagram, tiktok, linkedin, pinterest, google, twitter)budget(object) — Omit if not updating budgetstatus(string) (enum: active, paused) — Omit if not toggling delivery statebidStrategy(any) — Ad-set-level bid strategy. Overrides the campaign-level default. Supported on Meta (facebook, instagram) and TikTok. On TikTok the Meta-style enum is mapped to bid_type / bid_price / deep_bid_type aut...bidAmount(number) — Bid cap in WHOLE currency units (USD: 5 = $5.00; JPY: 100 = ¥100). Required when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. Internally converted to Meta's smallest-denomination integer.roasAverageFloor(number) — Minimum ROAS as a decimal multiplier (2.0 = 2.0x). Required when bidStrategy is LOWEST_COST_WITH_MIN_ROAS. Sent to Meta asbid_constraints.roas_average_floor× 10000.
Responses
200 — Ad set updated
budget($ref)budgetLevel(string) (enum: adset)status(string) (enum: active, paused)statusUpdated(integer)statusSkipped(integer)bidStrategy($ref)bidAmount(number)roasAverageFloor(number)
400 — Invalid input
401
404 — Ad set not found
409 — Campaign is CBO — route to /v1/ads/campaigns/{campaignId} instead
501 — bidStrategy not supported on the platform (Meta + TikTok only)