{
  "$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-custom-audiences-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateCustomAudiencesRequest",
  "description": "Request message for CustomAudienceService.MutateCustomAudiences.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-customaudiences-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateCustomAudiencesRequest",
  "type": "object",
  "properties": {
    "operations": {
      "type": "array",
      "description": "Required. The list of operations to perform on individual custom audiences.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__CustomAudienceOperation"
      }
    },
    "validateOnly": {
      "type": "boolean",
      "description": "If true, the request is validated but not executed. Only errors are returned, not results."
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Resources__CustomAudience": {
      "description": "A custom audience. This is a list of users by interest. The unique key of a custom audience consists of the following fields: name. Violating the unique key constraint produces error: CustomAudienceError.NAME_ALREADY_USED",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of the custom audience. (\"INTEREST\" OR \"PURCHASE_INTENT\" is not allowed for newly created custom audience but kept for existing audiences)",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Google Ads will auto-select the best interpretation at serving time.",
            "Matches users by their interests.",
            "Matches users by topics they are researching or products they are considering for purchase.",
            "Matches users by what they searched on Google Search."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "AUTO",
            "INTEREST",
            "PURCHASE_INTENT",
            "SEARCH"
          ]
        },
        "id": {
          "description": "Output only. ID of the custom audience.",
          "type": "string",
          "format": "int64"
        },
        "status": {
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Enabled status - custom audience is enabled and can be targeted.",
            "Removed status - custom audience is removed and cannot be used for targeting."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ENABLED",
            "REMOVED"
          ],
          "type": "string",
          "description": "Output only. Status of this custom audience. Indicates whether the custom audience is enabled or removed."
        },
        "description": {
          "type": "string",
          "description": "Description of this custom audience."
        },
        "members": {
          "description": "List of custom audience members that this custom audience is composed of. Members can be added during CustomAudience creation. If members are presented in UPDATE operation, existing members will be overridden.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CustomAudienceMember"
          },
          "type": "array"
        },
        "name": {
          "description": "Name of the custom audience. It should be unique for all custom audiences created by a customer. This field is required for creating operations.",
          "type": "string"
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the custom audience. Custom audience resource names have the form: `customers/{customer_id}/customAudiences/{custom_audience_id}`"
        }
      }
    },
    "GoogleAdsGoogleadsV25Resources__CustomAudienceMember": {
      "description": "A member of custom audience. A member can be a KEYWORD, URL, PLACE_CATEGORY or APP. It can only be created or removed but not changed.",
      "type": "object",
      "properties": {
        "app": {
          "type": "string",
          "description": "A package name of Android apps which users installed such as com.google.example."
        },
        "keyword": {
          "description": "A keyword or keyword phrase — at most 10 words and 80 characters. Languages with double-width characters such as Chinese, Japanese, or Korean, are allowed 40 characters, which describes the user's interests or actions.",
          "type": "string"
        },
        "memberType": {
          "type": "string",
          "description": "The type of custom audience member, KEYWORD, URL, PLACE_CATEGORY or APP.",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Users whose interests or actions are described by a keyword.",
            "Users who have interests related to the website's content.",
            "Users who visit place types described by a place category.",
            "Users who have installed a mobile app."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "KEYWORD",
            "URL",
            "PLACE_CATEGORY",
            "APP"
          ]
        },
        "placeCategory": {
          "format": "int64",
          "description": "A place type described by a place category users visit.",
          "type": "string"
        },
        "url": {
          "type": "string",
          "description": "An HTTP URL, protocol-included — at most 2048 characters, which includes contents users have interests in."
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__CustomAudienceOperation": {
      "description": "A single operation (create, update) on a custom audience.",
      "type": "object",
      "properties": {
        "remove": {
          "description": "Remove operation: A resource name for the removed custom audience is expected, in this format: `customers/{customer_id}/customAudiences/{custom_audience_id}`",
          "type": "string"
        },
        "update": {
          "description": "Update operation: The custom audience is expected to have a valid resource name.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CustomAudience"
        },
        "updateMask": {
          "type": "string",
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "format": "google-fieldmask"
        },
        "create": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CustomAudience",
          "description": "Create operation: No resource name is expected for the new custom audience."
        }
      }
    }
  }
}