Create ad
Loading server catalog…. Download catalog
https://app.advarde.com/mcpUpstream account eligibility and feature access may also apply.
Description: Prepare a reviewable change: Create an ad for an ad group. Returns a change_id; call ads_apply_change to execute after approval. Some features need Ads account enablement.
Method: tools/call · ads_create_ad
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.
Upstream operation: POST /ads. Call this through the MCP tool above.
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.
account_idstringrequiredWorkspace-owned Advarde connection ID from ads_list_accounts.
"uuid"bodyobjectrequiredfalseEXPAND BODY
ad_group_idstringrequirednamestringrequired3maxLength: 1000pattern: "^.*\\S.*$"creativeobjectrequiredfalseEXPAND CREATIVE
typestringrequired["chat_card","product_ad_template"]titlestringrequired3maxLength: 50pattern: "^.*\\S.*$"bodystringrequired100pricestringoptional100target_urlstringoptional2048file_idstringoptionalimage_cropobjectoptionalOptional normalized square crop for chat_card creatives. Requires file_id and is not supported for product_ad_template creatives.
falseEXPAND IMAGE_CROP
xnumberrequiredHorizontal offset as a fraction of the EXIF-oriented source image (0-1).
ynumberrequiredVertical offset as a fraction of the EXIF-oriented source image (0-1).
widthnumberrequiredCrop width as a fraction of the EXIF-oriented source image (0-1).
heightnumberrequiredCrop height as a fraction of the EXIF-oriented source image (0-1).
statusstringrequired["active","paused"]landing_page_configurationobjectoptionalfalseEXPAND LANDING_PAGE_CONFIGURATION
query_string_templatestringoptionalFull JSON Schema
{
"type": "object",
"properties": {
"account_id": {
"type": "string",
"format": "uuid",
"description": "Workspace-owned Advarde connection ID from ads_list_accounts."
},
"body": {
"properties": {
"ad_group_id": {
"type": "string"
},
"name": {
"type": "string",
"maxLength": 1000,
"minLength": 3,
"pattern": "^.*\\S.*$"
},
"creative": {
"properties": {
"type": {
"type": "string",
"enum": [
"chat_card",
"product_ad_template"
],
"x-openai-class-name": "sofa.api.params.ads.AdCreativeTypeParam"
},
"title": {
"type": "string",
"maxLength": 50,
"minLength": 3,
"pattern": "^.*\\S.*$"
},
"body": {
"type": "string",
"maxLength": 100
},
"price": {
"type": "string",
"maxLength": 100
},
"target_url": {
"type": "string",
"maxLength": 2048
},
"file_id": {
"type": "string"
},
"image_crop": {
"properties": {
"x": {
"type": "number",
"description": "Horizontal offset as a fraction of the EXIF-oriented source image (0-1)."
},
"y": {
"type": "number",
"description": "Vertical offset as a fraction of the EXIF-oriented source image (0-1)."
},
"width": {
"type": "number",
"description": "Crop width as a fraction of the EXIF-oriented source image (0-1)."
},
"height": {
"type": "number",
"description": "Crop height as a fraction of the EXIF-oriented source image (0-1)."
}
},
"type": "object",
"required": [
"x",
"y",
"width",
"height"
],
"description": "Optional normalized square crop for chat_card creatives. Requires file_id and is not supported for product_ad_template creatives.",
"x-openai-class-name": "sofa.api.params.ads.AdImageCropParams",
"additionalProperties": false
}
},
"type": "object",
"required": [
"type",
"title",
"body"
],
"x-openai-class-name": "sofa.api.params.ads.CreateAdCreativeParams",
"additionalProperties": false
},
"status": {
"type": "string",
"enum": [
"active",
"paused"
],
"x-openai-class-name": "sofa.api.params.common.ActivePausedStatusParam"
},
"landing_page_configuration": {
"properties": {
"query_string_template": {
"type": "string"
}
},
"type": "object",
"required": [],
"x-openai-class-name": "sofa.api.params.campaigns.LandingPageConfigurationParams",
"additionalProperties": false
}
},
"type": "object",
"required": [
"ad_group_id",
"name",
"creative",
"status"
],
"x-openai-class-name": "sofa.api.params.ads.CreateAdBody",
"additionalProperties": false
}
},
"required": [
"account_id",
"body"
],
"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.