Skip to content

Update a campaign (budget and/or bid strategy)

Campaign-level edits. At least one of budget or bidStrategy is required.

  • budget updates the CBO (Campaign Budget Optimization) budget. For ABO campaigns (where the budget lives on the ad set), use PUT /v1/ads/ad-sets/{adSetId} instead — this endpoint will return 409 with code BUDGET_LEVEL_MISMATCH.
  • bidStrategy sets the campaign-level default bid strategy. Per Meta's spec, bid_amount and bid_constraints do NOT exist at the campaign level — pass them via PUT /v1/ads/ad-sets/{adSetId}.

Meta-only for now. Other platforms return 501 Not Implemented.

PUT /v1/ads/campaigns/{campaignId}

Campaign-level edits. At least one of budget or bidStrategy is required.

  • budget updates the CBO (Campaign Budget Optimization) budget. For ABO campaigns (where the budget lives on the ad set), use PUT /v1/ads/ad-sets/{adSetId} instead — this endpoint will return 409 with code BUDGET_LEVEL_MISMATCH.
  • bidStrategy sets the campaign-level default bid strategy. Per Meta's spec, bid_amount and bid_constraints do NOT exist at the campaign level — pass them via PUT /v1/ads/ad-sets/{adSetId}.

Meta-only for now. Other platforms return 501 Not Implemented.

Parameters

  • campaignId (path, string) required — Platform campaign ID

Request body

Content-Type: application/json

  • platform (string) required (enum: facebook, instagram)
  • budget (object)
  • bidStrategy (any) — Campaign-level default. Ad sets inherit this unless they override.

Responses

200 — Campaign updated

  • updated (integer)
  • budget ($ref)
  • budgetLevel (string) (enum: campaign)
  • bidStrategy ($ref)

400 — Invalid input

401

404 — Campaign not found

409 — Campaign is ABO — route to /v1/ads/ad-sets/{adSetId} instead

501 — Operation not supported on this platform