Skill: Launch Campaign
Translates an approved campaign brief into a Meta Ads API call. All field mapping from business vocabulary (Campaign.budget, Campaign.objective) to API vocabulary (AdSet.daily_budget, AdSet.optimization_goal) follows the meta-ads concept map in ontology/customer-acquisition.rel.
Workflow
- Load brief from
memory/briefs/{brief-id}.json. If missing or incomplete: escalate withbrief-missing-required-fields. - Map brief fields to API fields using the ontology map:
budget→daily_budget(in account currency subunits)objective→optimization_goal(enum translation: awareness→REACH, conversion→OFFSITE_CONVERSIONS, etc.)start-date/end-date→start_time/end_time(Unix timestamps)
- Call
meta-ads.create_campaignwith status=PAUSED (never activate immediately — role constraint). - If tool returns a policy violation code: escalate with
tool-returned-policy-violation. - Write the created campaign ID to
memory/campaigns-launched.json. - The role then decides whether to activate (separate tool call gated by role authority).
Notes
The brief schema is defined in memory/briefs/README.md. The skill validates required fields before calling the tool — a missing objective is a skill-level escalation, not a tool error.