Skip to content

campaign_plan_update

Edit a campaign plan. Any real change returns an approved plan to draft.

Updates a Campaign Plan’s own fields. Its Line Items are edited with line_item_update.

Warning

A Campaign Plan is not a provider campaign

It is AdCrunch’s own planning document — written before anything is bought, and possibly executed into several campaigns, or none. For campaigns that exist on Meta or Google, use list_entities and get_entity.

Input

Omit a field to leave it alone; send null to clear it. The two are deliberately different — “I only moved the end date” must not erase the rationale.

Field Type Required Description
campaign_plan_name string yes The plan slug.
base_revision integer yes The revision you last read via campaign_plan_get.
name, description string no
slug string no A new handle — a deliberate rename.
brand_name string | null no Re-point the plan; null unlinks it.
currency string no Refused once any Line Item carries a budget.
total_budget integer | null no null means “no declared constraint”, not zero.
start_date / end_date YYYY-MM-DD | null no
rationale, measurement string | null no

Warning

Editing cancels an approval

An approval says somebody agreed to particular content. Change that content and the plan returns to draft, so the label never outlives what it referred to. A write that changes nothing leaves the approval standing.

Note

The currency freezes at the first budget

Re-denominating a costed plan would silently reinterpret every number in it — 40000 going from €400 to $400 without a figure moving on screen. Nothing is ever converted: a converted budget is a different plan.

Note

Re-pointing the brand can be refused

If a Line Item still names a persona of the current brand, the change is refused and names those lines. Clear their personas first — they are not cleared for you, because only you know which reading you meant.

Requires the campaign_plan:write scope.