campaign_plan_create
Write down what you intend to run — on which channels, for whom, for how much, over what period.
On this page
Creates a Campaign Plan: a statement of intent you can sum, execute, and later compare against what actually ran.
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 |
|---|---|---|---|
name |
string |
yes | Display name, e.g. "Q4 Acquisition". |
description |
string |
yes | One-line summary used to pick this plan from a list. |
currency |
string |
yes | ISO 4217. Changeable until a Line Item carries a budget. |
slug |
string |
no | Explicit handle; normalized to kebab-case. Defaults to one derived from the name. |
brand_name |
string |
no | The brand this plan is for. A plan may precede its brand, or cover several. |
total_budget |
integer |
no | The envelope, in minor units. Omit for “no declared constraint”. |
start_date / end_date |
YYYY-MM-DD |
no | Either may be omitted. No end date means always-on. |
rationale |
string |
no | The argument for the split — what a reviewer approves. |
measurement |
string |
no | How success will be judged. |
Example
campaign_plan_create({
name: 'Q4 Acquisition',
description: 'Prospecting across Meta and TikTok, Oct–Dec.',
currency: 'EUR',
total_budget: 10_000_000, // €100,000.00
start_date: '2026-10-01',
end_date: '2026-12-31',
rationale: 'Meta carries the proven CPA; TikTok is a 30% test we can cut.',
});
// → { campaignPlan: { slug: 'q4-acquisition', status: 'draft', revision: 1, … } }
Warning
Amounts are integer minor units
Send 4050 for €40.50, never 40.50. A fractional amount is refused rather
than rounded, because rounding it would silently turn €40.50 into 40 cents.
Tip
Almost everything is optional
A plan is authored incrementally. The window, the budget and the brand can all arrive later — only the currency is required up front, because every amount written afterwards is read through it.
Requires the campaign_plan:write scope.