set_goal
Create, change or remove a monitoring goal (Monitoring → Goals), validated exactly as the app validates one. create needs clientId, label, metric and target (period defaults to month; lowerIsBetter defaults to the metric's own direction: true for CPA and Cost per lead, false for the rest). update changes any of label, metric, target, lowerIsBetter and period on an existing goal; a new metric or period clears its current value until it is computed again. remove deletes the goal for good and, as in the app, only owners and admins may do it. Requires MCP write actions; without confirm:true it returns a preview and changes nothing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | The goal's name, e.g. "Q4 ROAS". | |
| action | Yes | create a goal, update one, or remove one. | |
| goalId | No | update / remove: the goal (id from get_goals). | |
| metric | No | The paid-ads metric the goal tracks. | |
| period | No | month, quarter or year — measured to date. | |
| target | No | The target value, above 0, in the metric's own unit (ROAS 4 = 4×, CTR 2.5 = 2.5 %, money in the ad account's currency). | |
| confirm | No | Set true to apply. Omit for a preview. With confirm:true, also pass the preview's previewToken. | |
| clientId | No | create: the client the goal belongs to (from list_clients). | |
| previewToken | No | With confirm:true: the previewToken from this tool's preview (valid 15 minutes, once, for exactly the previewed arguments). | |
| lowerIsBetter | No | Omit to use the metric's own direction (lower is better for CPA and Cost per lead). On update, a new metric resets it to that metric's direction unless given. |