Save creative experiment
Loading server catalog…. Download catalog
https://app.advarde.com/mcpAvailable subject to your connection’s permissions.
Description: Save a supplied hypothesis, fixed comparison window and disjoint ad groups. Planning only: no traffic randomization or statistical/causal claims, and no live ad changes.
Method: tools/call · ads_save_creative_experiment
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.
account_idstringrequired"uuid"experiment_idstringoptional"uuid"expected_revisionintegeroptional1namestringrequired1maxLength: 200hypothesisstringrequired1maxLength: 3000primary_metricenumrequired["ctr","cpc","cpa","roas"]outcome_sourcestringoptional"^[A-Za-z0-9_-]{1,255}$"outcome_attributionstringoptional1maxLength: 1000minimum_impressionsintegerrequired1maximum: 1000000000minimum_conversionsintegerrequired1maximum: 1000000sincestringrequired"date"untilstringrequired"date"variantsarrayrequired2maxItems: 20EXPAND VARIANTS
Each array item
namestringrequired1maxLength: 100ad_idsarrayrequired1maxItems: 100EXPAND AD_IDS
Each array item
{
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,255}$"
}Full JSON Schema
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"format": "uuid"
},
"experiment_id": {
"type": "string",
"format": "uuid"
},
"expected_revision": {
"type": "integer",
"minimum": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"hypothesis": {
"type": "string",
"minLength": 1,
"maxLength": 3000
},
"primary_metric": {
"enum": [
"ctr",
"cpc",
"cpa",
"roas"
]
},
"outcome_source": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,255}$"
},
"outcome_attribution": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"minimum_impressions": {
"type": "integer",
"minimum": 1,
"maximum": 1000000000
},
"minimum_conversions": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"since": {
"type": "string",
"format": "date"
},
"until": {
"type": "string",
"format": "date"
},
"variants": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"ad_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,255}$"
},
"minItems": 1,
"maxItems": 100
}
},
"required": [
"name",
"ad_ids"
],
"additionalProperties": false
},
"minItems": 2,
"maxItems": 20
}
},
"required": [
"account_id",
"name",
"hypothesis",
"primary_metric",
"minimum_impressions",
"minimum_conversions",
"since",
"until",
"variants"
],
"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.