← All MCP tools

MCP tool

set_campaign_tracking

Set or clear the HTTPS destination behind one campaign channel’s AdBuyMCP vanity URL. The URL must be HTTPS and contain no embedded credentials. This changes where future respondents are redirected, is audit logged, and should be previewed with the user before calling. Pass null only when the user explicitly wants to disable that channel’s vanity redirect.

Input

Pass fields from this schema as the tool arguments. Runtime ownership, product scope and readiness checks still apply.

Input JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "campaignId": {
      "type": "string",
      "minLength": 1,
      "description": "campaign id"
    },
    "agentStepId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "pending execute-step id that consumed the exact approved action"
    },
    "expectedActionDigest": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "SHA-256 digest returned for the exact approved action"
    },
    "channel": {
      "type": "string",
      "enum": [
        "ctv",
        "audio",
        "tv",
        "cinema",
        "dooh",
        "search",
        "social"
      ],
      "description": "campaign channel whose vanity destination changes"
    },
    "destinationUrl": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "new HTTPS destination, or null to disable the redirect"
    }
  },
  "required": [
    "campaignId",
    "agentStepId",
    "expectedActionDigest",
    "channel",
    "destinationUrl"
  ]
}

REST mapping and authority

The tool wraps this REST endpoint. The mapping identifies path/query/body transformations and approval or idempotency headers.

Request contract
{
  "method": "PATCH",
  "path": "/api/v1/campaigns/{campaignId}/tracking/{channel}",
  "pathFields": [
    "campaignId",
    "channel"
  ],
  "pathSchema": {
    "type": "object",
    "properties": {
      "campaignId": {
        "type": "string",
        "minLength": 1,
        "description": "campaign id"
      },
      "channel": {
        "type": "string",
        "enum": [
          "ctv",
          "audio",
          "tv",
          "cinema",
          "dooh",
          "search",
          "social"
        ],
        "description": "campaign channel whose vanity destination changes"
      }
    },
    "additionalProperties": false,
    "required": [
      "campaignId",
      "channel"
    ]
  },
  "pathEncoding": "encodeURIComponent for each path field",
  "governedAction": "campaign.tracking.update",
  "headers": {
    "x-chorus-agent-step-id": "agentStepId",
    "x-chorus-agent-action-digest": "expectedActionDigest"
  },
  "bodySchema": {
    "type": "object",
    "properties": {
      "destinationUrl": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "description": "new HTTPS destination, or null to disable the redirect"
      }
    },
    "additionalProperties": false,
    "required": [
      "destinationUrl"
    ]
  },
  "responseMapping": "REST JSON is returned as MCP structuredContent and a compatibility text block; privacy-sensitive tools validate their output schema."
}

Output

This is the registered MCP output envelope. Nested fields are only modeled where the schema explicitly defines them.

Output JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "tracking": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "tracking"
  ],
  "additionalProperties": {}
}

Safety annotations

MCP annotations
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": true,
  "openWorldHint": false
}

Annotations help a client present the tool. The API independently enforces authorization and exact action approvals. Error and retry guidance →

set_campaign_tracking | AdBuyMCP docs