Prepare ad batch
Loading server catalog…. Download catalog
https://app.advarde.com/mcpAvailable subject to your connection’s permissions.
Description: Prepare one paused campaign and ad group containing a saved batch. Requires current batch revision. Uses existing bulk validation, account write permissions and budget limits. Apply the returned change only after review. Bulk access is account-gated.
Method: tools/call · ads_prepare_ad_batch
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.
Review before applying
This tool prepares a proposal. Review the exact payload and obtain authorization before calling ads_apply_change. Preparation does not mean the upstream change has been applied.
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.
item_idstringrequired"uuid"expected_revisionintegerrequired1account_idstringrequired"uuid"campaign_namestringrequired3maxLength: 200budget_amountnumberrequired1maximum: 1000000000budget_typeenumrequired["daily","lifetime"]objectiveenumrequired["clicks","impressions"]bid_microsintegerrequired1maximum: 9007199254740991countriesarrayrequired1maxItems: 250EXPAND COUNTRIES
Each array item
{
"type": "string",
"pattern": "^[A-Z]{2}$"
}context_hintsarrayoptional0maxItems: 2000EXPAND CONTEXT_HINTS
Each array item
{
"type": "string",
"minLength": 1,
"maxLength": 1000
}Full JSON Schema
{
"type": "object",
"properties": {
"item_id": {
"type": "string",
"format": "uuid"
},
"expected_revision": {
"type": "integer",
"minimum": 1
},
"account_id": {
"type": "string",
"format": "uuid"
},
"campaign_name": {
"type": "string",
"minLength": 3,
"maxLength": 200
},
"budget_amount": {
"type": "number",
"minimum": 1,
"maximum": 1000000000
},
"budget_type": {
"enum": [
"daily",
"lifetime"
]
},
"objective": {
"enum": [
"clicks",
"impressions"
]
},
"bid_micros": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"countries": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"minItems": 1,
"maxItems": 250
},
"context_hints": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"minItems": 0,
"maxItems": 2000
}
},
"required": [
"item_id",
"expected_revision",
"account_id",
"campaign_name",
"budget_amount",
"budget_type",
"objective",
"bid_micros",
"countries"
],
"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.