Skip to content
advardeDeveloper docs
v1.0

Save automation policy

Loading server catalog…. Download catalog

POSThttps://app.advarde.com/mcp
Write

Automation rules must be enabled for the workspace.

Description: Save a disabled policy draft. Any edit revokes its prior approval. Supplied copy only; no LLM. Limits in explicit micros fields are currency micros.

Method: tools/call · ads_save_automation_policy

Output: Tool data is returned in result.structuredContent and as JSON text in result.content. Inspect result.isError before using the result. Individual output fields depend on the operation.

Access: Requires the applicable write scopes, workspace role, and account permissions.

Authentication

Use an MCP access token from MCP connections, or connect through OAuth. Send your token in the Authorization: Bearer header.

For full protocol initialization and tool discovery, use an MCP client. These examples show individual JSON-RPC requests.

Tool arguments

Send these fields inside params.arguments. The tool name is sent as params.name.

policy_idstringoptional
format: "uuid"
expected_revisionintegeroptional
minimum: 1maximum: 9007199254740991
account_idstringrequired
format: "uuid"
namestringrequired
minLength: 1maxLength: 200
configobjectrequired
additionalProperties: false
EXPAND CONFIG
modeenumrequired
enum: ["observe","recommend","automatic"]
ruleenumrequired
enum: ["spend_cap","pacing","cpc","cpa","scaling","offer_expiry","landing_failure","creative_rotation"]
campaign_idsarrayrequired
minItems: 1maxItems: 100uniqueItems: true
EXPAND CAMPAIGN_IDS

Each array item

{
  "type": "string",
  "pattern": "^[A-Za-z0-9_-]{1,255}$"
}
allowed_actionsarrayrequired
maxItems: 5uniqueItems: true
EXPAND ALLOWED_ACTIONS

Each array item

{
  "enum": [
    "pause_campaign",
    "pause_ad",
    "set_budget",
    "set_bid",
    "activate_ad"
  ]
}
window_hoursintegerrequired
minimum: 1maximum: 744
reporting_delay_hoursintegerrequired
minimum: 0maximum: 720
interval_minutesintegerrequired
minimum: 15maximum: 1440
cooldown_hoursintegerrequired
minimum: 0maximum: 744
max_data_age_minutesintegerrequired
minimum: 1maximum: 1440
expires_atstringrequired
format: "date-time"
spend_scopeenumoptional
enum: ["managed_campaigns","account"]
thresholdnumberoptional
minimum: 0maximum: 10000000000
min_spendnumberoptional
minimum: 0maximum: 10000000000
min_clicksintegeroptional
minimum: 0maximum: 1000000000
min_conversionsnumberoptional
minimum: 0maximum: 10000000000
conversion_goal_idstringoptional
pattern: "^[A-Za-z0-9_-]{1,255}$"
flight_startstringoptional
format: "date-time"
flight_endstringoptional
format: "date-time"
target_spendnumberoptional
minimum: 0maximum: 10000000000
change_percentnumberoptional
maximum: 25exclusiveMinimum: 0
budget_floor_microsintegeroptional
minimum: 1000000maximum: 9007199254740991
budget_ceiling_microsintegeroptional
minimum: 1000000maximum: 9007199254740991
bid_floor_microsintegeroptional
minimum: 1maximum: 9007199254740991
bid_ceiling_microsintegeroptional
minimum: 1maximum: 9007199254740991
max_change_microsintegeroptional
minimum: 1maximum: 9007199254740991
cumulative_increase_microsintegeroptional
minimum: 0maximum: 9007199254740991
account_allocation_ceiling_microsintegeroptional
minimum: 1000000maximum: 9007199254740991
offer_ends_atstringoptional
format: "date-time"
landing_urlstringoptional
format: "uri"maxLength: 2048
consecutive_failuresintegeroptional
minimum: 2maximum: 20
rotationobjectoptional
additionalProperties: false
EXPAND ROTATION
ad_idstringrequired
pattern: "^[A-Za-z0-9_-]{1,255}$"
replacement_ad_idstringrequired
pattern: "^[A-Za-z0-9_-]{1,255}$"
activate_atstringrequired
format: "date-time"
notifybooleanoptional
Full JSON Schema
{
  "type": "object",
  "properties": {
    "policy_id": {
      "type": "string",
      "format": "uuid"
    },
    "expected_revision": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "account_id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "config": {
      "type": "object",
      "properties": {
        "mode": {
          "enum": [
            "observe",
            "recommend",
            "automatic"
          ]
        },
        "rule": {
          "enum": [
            "spend_cap",
            "pacing",
            "cpc",
            "cpa",
            "scaling",
            "offer_expiry",
            "landing_failure",
            "creative_rotation"
          ]
        },
        "campaign_ids": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,255}$"
          },
          "minItems": 1,
          "maxItems": 100,
          "uniqueItems": true
        },
        "allowed_actions": {
          "type": "array",
          "items": {
            "enum": [
              "pause_campaign",
              "pause_ad",
              "set_budget",
              "set_bid",
              "activate_ad"
            ]
          },
          "maxItems": 5,
          "uniqueItems": true
        },
        "window_hours": {
          "type": "integer",
          "minimum": 1,
          "maximum": 744
        },
        "reporting_delay_hours": {
          "type": "integer",
          "minimum": 0,
          "maximum": 720
        },
        "interval_minutes": {
          "type": "integer",
          "minimum": 15,
          "maximum": 1440
        },
        "cooldown_hours": {
          "type": "integer",
          "minimum": 0,
          "maximum": 744
        },
        "max_data_age_minutes": {
          "type": "integer",
          "minimum": 1,
          "maximum": 1440
        },
        "expires_at": {
          "type": "string",
          "format": "date-time"
        },
        "spend_scope": {
          "enum": [
            "managed_campaigns",
            "account"
          ]
        },
        "threshold": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000000
        },
        "min_spend": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000000
        },
        "min_clicks": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000
        },
        "min_conversions": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000000
        },
        "conversion_goal_id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9_-]{1,255}$"
        },
        "flight_start": {
          "type": "string",
          "format": "date-time"
        },
        "flight_end": {
          "type": "string",
          "format": "date-time"
        },
        "target_spend": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000000
        },
        "change_percent": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 25
        },
        "budget_floor_micros": {
          "type": "integer",
          "minimum": 1000000,
          "maximum": 9007199254740991
        },
        "budget_ceiling_micros": {
          "type": "integer",
          "minimum": 1000000,
          "maximum": 9007199254740991
        },
        "bid_floor_micros": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "bid_ceiling_micros": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "max_change_micros": {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        "cumulative_increase_micros": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "account_allocation_ceiling_micros": {
          "type": "integer",
          "minimum": 1000000,
          "maximum": 9007199254740991
        },
        "offer_ends_at": {
          "type": "string",
          "format": "date-time"
        },
        "landing_url": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048
        },
        "consecutive_failures": {
          "type": "integer",
          "minimum": 2,
          "maximum": 20
        },
        "rotation": {
          "type": "object",
          "properties": {
            "ad_id": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{1,255}$"
            },
            "replacement_ad_id": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{1,255}$"
            },
            "activate_at": {
              "type": "string",
              "format": "date-time"
            }
          },
          "required": [
            "ad_id",
            "replacement_ad_id",
            "activate_at"
          ],
          "additionalProperties": false
        },
        "notify": {
          "type": "boolean"
        }
      },
      "required": [
        "mode",
        "rule",
        "campaign_ids",
        "allowed_actions",
        "window_hours",
        "reporting_delay_hours",
        "interval_minutes",
        "cooldown_hours",
        "max_data_age_minutes",
        "expires_at"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "account_id",
    "name",
    "config"
  ],
  "additionalProperties": false
}

Responses

200Successful protocol response

Inspect result.isError for tool-level failures, even when the HTTP status is 200.

202Notification accepted

MCP notifications return no JSON-RPC response body.

400Invalid request

Check the JSON-RPC envelope, parameters, and protocol version.

406Not acceptable

Accept must include application/json and text/event-stream.

429Rate limited

Wait for the Retry-After interval before making another request.

401Unauthorized

A valid, unexpired MCP bearer token is required.

403Access denied

Your connection needs access to this workspace and the requested operation.

Advarde MCP API v1.0