Save campaign asset
Loading server catalog…. Download catalog
https://app.advarde.com/mcpAvailable subject to your connection’s permissions.
Description: Save a PNG/JPEG from a ChatGPT file, HTTPS image URL or base64 bytes. For images generated or attached in ChatGPT, pass the file object here first, then use the returned id as asset_id in the campaign draft. A ChatGPT file_id is not an Ads upload ID. Maximum 1 MiB, 80–4096 pixels per dimension. Stores validated image bytes for previews; Ads upload occurs through a reviewed campaign build. Remote downloads use DNS-pinned SSRF protection.
Method: tools/call · ads_save_campaign_asset
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"namestringrequired1maxLength: 200source_urlstringoptional"uri"maxLength: 2048pattern: "^https://"content_base64stringoptional1maxLength: 1398104mime_typeenumoptional["image/png","image/jpeg"]fileobjectoptionalfalseEXPAND FILE
download_urlstringrequired"uri"maxLength: 2048pattern: "^https://"file_idstringrequired1maxLength: 255mime_typestringoptional0maxLength: 255file_namestringoptional0maxLength: 1000Full JSON Schema
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"source_url": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"maxLength": 2048
},
"content_base64": {
"type": "string",
"minLength": 1,
"maxLength": 1398104
},
"mime_type": {
"enum": [
"image/png",
"image/jpeg"
]
},
"file": {
"type": "object",
"properties": {
"download_url": {
"type": "string",
"format": "uri",
"pattern": "^https://",
"maxLength": 2048
},
"file_id": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"mime_type": {
"type": "string",
"minLength": 0,
"maxLength": 255
},
"file_name": {
"type": "string",
"minLength": 0,
"maxLength": 1000
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": false
}
},
"required": [
"account_id",
"name"
],
"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.