set-up-a-campaign · version 1.0.0 · for buyers.
When to use
- A person hands you a brief, a budget or a plan and wants it in front of sellers.
- A person wants to compare what sellers offer before committing to anything.
- A draft campaign exists but has no proposals or no staged media buys yet.
Before you start
- The account is ready to buy. If not, run Get an account ready to buy.
- The advertiser exists, and you know its
advertiserId. - You have from the person: the full brief, total budget and currency, flight dates, and target countries and channels. If they have a conversion goal, run Set up an event source first.
Steps
- Call
get_status. Stop and resolve any readiness blocker first. - Call
searchwithkind: "campaign"to check the person does not already have this campaign. - Call
save_campaignwithadvertiserId,name,brief,flight,budget(total,currency,pacing),targetingand anidempotencyKey. Pass the brief exactly as the person wrote it. Answer anyneeds_inputwith the person. Keep the returnedcampaignIdandrevision. - Call
request_proposalswithcampaignId,expectedCampaignRevisionand a newidempotencyKey. It returns at once with an execution id and the statusrunning. Only one execution runs per buyer account. - Collect results by calling
request_proposalsagain with the sameidempotencyKeyand eachresultCursoruntil the execution completes, or read proposals withgetandkind: "proposal". Tell the person which sellers quoted, which returned products and which failed. - Compare the proposals with the person: products, price, flight fit and share of budget.
- Where the person wants changes, call
refine_proposalwith theproposalId, plaininstructions, and optionallykeepProductIds,dropProductIdsorbudgetDelta. The seller may decline parts of a refinement; report what it accepted. - Creatives. Call
open_creative_libraryorupload_creative_assetso the person can add assets, oropen_creative_composerto build one. Then callsave_creativewithsourceAssetsandcampaignIdsto attach it, and read the format fit it reports per campaign. - Stage. For each proposal the person picked, call
save_media_buywithfromProposalIdand anidempotencyKey. Staging contacts no seller and books nothing. - Call
open_campaign_receiptwith thecampaignIdto show the plan, staged buys, budget, creative coverage and remaining blockers.
Guardrails
- Do not launch in this skill. Launching is a separate decision that Manage a campaign handles with the person’s explicit approval.
- Never fill in a budget, currency, date or audience the person did not give you.
- If your process stops while a proposal request is running, do not start a new one. Call
request_proposalswith the sameidempotencyKeyto pick the execution back up. - Keep each decision point visible: draft, proposals, refinements, staging.
- Rehearse with a sandbox advertiser when the person is testing.
Done when
- A draft campaign exists with at least one staged media buy.
- The campaign receipt shows no blockers, or you have told the person each one that remains.
- The person knows the next step is launch, and that it needs their approval.