Google Ads · Schema

GoogleAdsGoogleadsV25Services__MutateCampaignDraftsRequest

Request message for CampaignDraftService.MutateCampaignDrafts.

AdvertisingCampaign ManagementDigital AdvertisingGoogleMarketingPPCGoogle AdsAdTech

Properties

Name Type Description
operations array Required. The list of operations to perform on individual campaign drafts.
validateOnly boolean If true, the request is validated but not executed. Only errors are returned, not results.
responseContentType string The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.
partialFailure boolean If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default
View JSON Schema on GitHub

JSON Schema

google-ads-google-ads-googleads-v25-services-mutate-campaign-drafts-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-mutate-campaign-drafts-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateCampaignDraftsRequest",
  "description": "Request message for CampaignDraftService.MutateCampaignDrafts.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-campaigndrafts-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateCampaignDraftsRequest",
  "type": "object",
  "properties": {
    "operations": {
      "description": "Required. The list of operations to perform on individual campaign drafts.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__CampaignDraftOperation"
      },
      "type": "array"
    },
    "validateOnly": {
      "type": "boolean",
      "description": "If true, the request is validated but not executed. Only errors are returned, not results."
    },
    "responseContentType": {
      "type": "string",
      "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
      "x-enumDescriptions": [
        "Not specified. Will return the resource name only in the response.",
        "The mutate response will be the resource name.",
        "The mutate response will contain the resource name and the resource with mutable fields if possible. Otherwise, only the resource name will be returned."
      ],
      "enum": [
        "UNSPECIFIED",
        "RESOURCE_NAME_ONLY",
        "MUTABLE_RESOURCE"
      ]
    },
    "partialFailure": {
      "description": "If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false.",
      "type": "boolean"
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Resources__CampaignDraft": {
      "description": "A campaign draft.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the campaign draft. This field is required and should not be empty when creating new campaign drafts. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters."
        },
        "draftId": {
          "format": "int64",
          "type": "string",
          "description": "Output only. The ID of the draft. This field is read-only."
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign draft. Campaign draft resource names have the form: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`",
          "type": "string"
        },
        "hasExperimentRunning": {
          "type": "boolean",
          "description": "Output only. Whether there is an experiment based on this draft currently serving."
        },
        "status": {
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "PROPOSED",
            "REMOVED",
            "PROMOTING",
            "PROMOTED",
            "PROMOTE_FAILED"
          ],
          "description": "Output only. The status of the campaign draft. This field is read-only. When a new campaign draft is added, the status defaults to PROPOSED.",
          "type": "string",
          "x-enumDescriptions": [
            "The status has not been specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Initial state of the draft, the advertiser can start adding changes with no effect on serving.",
            "The campaign draft is removed.",
            "Advertiser requested to promote draft's changes back into the original campaign. Advertiser can poll the long running operation returned by the promote action to see the status of the promotion.",
            "The process to merge changes in the draft back to the original campaign has completed successfully.",
            "The promotion failed after it was partially applied. Promote cannot be attempted again safely, so the issue must be corrected in the original campaign."
          ]
        },
        "baseCampaign": {
          "description": "Immutable. The base campaign to which the draft belongs.",
          "type": "string"
        },
        "draftCampaign": {
          "description": "Output only. Resource name of the Campaign that results from overlaying the draft changes onto the base campaign. This field is read-only.",
          "type": "string"
        },
        "longRunningOperation": {
          "description": "Output only. The resource name of the long-running operation that can be used to poll for completion of draft promotion. This is only set if the draft promotion is in progress or finished.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__CampaignDraftOperation": {
      "type": "object",
      "properties": {
        "remove": {
          "description": "Remove operation: The campaign draft is expected to have a valid resource name, in this format: `customers/{customer_id}/campaignDrafts/{base_campaign_id}~{draft_id}`",
          "type": "string"
        },
        "updateMask": {
          "format": "google-fieldmask",
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update."
        },
        "create": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CampaignDraft",
          "description": "Create operation: No resource name is expected for the new campaign draft."
        },
        "update": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CampaignDraft",
          "description": "Update operation: The campaign draft is expected to have a valid resource name."
        }
      },
      "description": "A single operation (create, update, remove) on a campaign draft."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/google-ads-google-ads-googleads-v25-services-mutate-campaign-drafts-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.