Skip to content

campaign_plan_approve

Approve a plan, validating every draft line on it and opening the execution gate.

On this page

Approves a Campaign Plan. This is the human act in the plan’s lifecycle — and the gate a Line Item must pass before it can be executed.

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

Field Type Required Description
campaign_plan_name string yes The plan slug.
base_revision integer yes The revision you last read. This is what makes it an approval of the content you read.

Output

{ campaignPlan: { status: 'approved', … }, lineItemsValidated: 4 }

Warning

It cascades over every draft line

Approving validates all of them, including one somebody else was still writing. When only one line is ready, use line_item_validate instead — it exists precisely so your approval need not reach another person’s half-written row.

Note

It blocks on nothing, and it spends nothing

Unbounded, over-allocated and incomplete plans are all approvable: execution carries its own checks, applied where the information is complete, and putting them here too would only let the two drift. Approving creates no provider object — executing goes through the mutation tools and needs mutation:write.

Tip

A line added afterwards starts as a draft

And adding it returns the plan to draft. That hole is the whole reason a line carries a state of its own — otherwise a line of spend could be slipped into a signed plan and be immediately executable.

Requires the campaign_plan:write scope.