{
  "$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-experiment-arms-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateExperimentArmsRequest",
  "description": "Request message for ExperimentArmService.MutateExperimentArms.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-experimentarms-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateExperimentArmsRequest",
  "type": "object",
  "properties": {
    "validateOnly": {
      "type": "boolean",
      "description": "If true, the request is validated but not executed. Only errors are returned, not results."
    },
    "responseContentType": {
      "description": "The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.",
      "type": "string",
      "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"
      ]
    },
    "operations": {
      "description": "Required. The list of operations to perform on individual experiment arm.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__ExperimentArmOperation"
      },
      "type": "array"
    },
    "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_ExperimentArm_AssetDetail": {
      "type": "object",
      "properties": {
        "asset": {
          "description": "The asset that is being modified for the experiment.",
          "type": "string"
        },
        "fieldType": {
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action.",
            "The asset is linked for use as a classic display image."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION",
            "CLASSIC_DISPLAY_IMAGE"
          ],
          "type": "string",
          "description": "Field type for the asset."
        },
        "assetDetailOperation": {
          "x-enumDescriptions": [
            "Not specified.",
            "The value is unknown in this version.",
            "Asset is attached to the ad.",
            "Asset is removed from the ad."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "ADD",
            "REMOVE"
          ],
          "type": "string",
          "description": "Enum to specify whether the asset is removed or added from the base ad."
        }
      },
      "description": "Details of an asset modification for the experiment ad, such as adding or removing the asset."
    },
    "GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetGroupAssetInfo": {
      "description": "Holds the details of an asset within an asset group for an Optimize Assets experiment arm.",
      "type": "object",
      "properties": {
        "fieldType": {
          "type": "string",
          "description": "Field type of the asset group asset.",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The asset is linked for use as a headline.",
            "The asset is linked for use as a description.",
            "The asset is linked for use as mandatory ad text.",
            "The asset is linked for use as a marketing image.",
            "The asset is linked for use as a media bundle.",
            "The asset is linked for use as a YouTube video.",
            "The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.",
            "The asset is linked for use as a Lead Form extension.",
            "The asset is linked for use as a Promotion extension.",
            "The asset is linked for use as a Callout extension.",
            "The asset is linked for use as a Structured Snippet extension.",
            "The asset is linked for use as a Sitelink.",
            "The asset is linked for use as a Mobile App extension.",
            "The asset is linked for use as a Hotel Callout extension.",
            "The asset is linked for use as a Call extension.",
            "The asset is linked for use as a Price extension.",
            "The asset is linked for use as a long headline.",
            "The asset is linked for use as a business name.",
            "The asset is linked for use as a square marketing image.",
            "The asset is linked for use as a portrait marketing image.",
            "The asset is linked for use as a logo.",
            "The asset is linked for use as a landscape logo.",
            "The asset is linked for use as a non YouTube logo.",
            "The asset is linked for use to select a call-to-action.",
            "The asset is linked for use to select an ad image.",
            "The asset is linked for use as a business logo.",
            "The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.",
            "The asset is linked for use as a Demand Gen carousel card.",
            "The asset is linked for use as a Business Message.",
            "The asset is linked for use as a tall portrait marketing image.",
            "The asset is linked for use as related YouTube videos.",
            "The asset is linked for use as a landing page preview image.",
            "The asset is linked for use as a long description.",
            "The asset is linked for use as a call-to-action.",
            "The asset is linked for use as a classic display image."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "HEADLINE",
            "DESCRIPTION",
            "MANDATORY_AD_TEXT",
            "MARKETING_IMAGE",
            "MEDIA_BUNDLE",
            "YOUTUBE_VIDEO",
            "BOOK_ON_GOOGLE",
            "LEAD_FORM",
            "PROMOTION",
            "CALLOUT",
            "STRUCTURED_SNIPPET",
            "SITELINK",
            "MOBILE_APP",
            "HOTEL_CALLOUT",
            "CALL",
            "PRICE",
            "LONG_HEADLINE",
            "BUSINESS_NAME",
            "SQUARE_MARKETING_IMAGE",
            "PORTRAIT_MARKETING_IMAGE",
            "LOGO",
            "LANDSCAPE_LOGO",
            "VIDEO",
            "CALL_TO_ACTION_SELECTION",
            "AD_IMAGE",
            "BUSINESS_LOGO",
            "HOTEL_PROPERTY",
            "DEMAND_GEN_CAROUSEL_CARD",
            "BUSINESS_MESSAGE",
            "TALL_PORTRAIT_MARKETING_IMAGE",
            "RELATED_YOUTUBE_VIDEOS",
            "LANDING_PAGE_PREVIEW",
            "LONG_DESCRIPTION",
            "CALL_TO_ACTION",
            "CLASSIC_DISPLAY_IMAGE"
          ]
        },
        "asset": {
          "description": "Asset resource name of the asset group asset.",
          "type": "string"
        }
      }
    },
    "GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetGroupInfo": {
      "type": "object",
      "properties": {
        "assetGroup": {
          "description": "Asset group resource name.",
          "type": "string"
        },
        "assetGroupAssets": {
          "type": "array",
          "description": "List of asset group assets under the asset group.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetGroupAssetInfo"
          }
        }
      },
      "description": "Holds the asset groups included in an arm of an Optimize Assets experiment."
    },
    "GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetTestingInfo": {
      "type": "object",
      "properties": {
        "assetVariationInfos": {
          "type": "array",
          "description": "Details of assets associated for each experimental copy of the ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetVariationInfo"
          }
        }
      },
      "description": "Details of assets associated with the experimental copies of ads."
    },
    "GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetVariationInfo": {
      "type": "object",
      "properties": {
        "baseAd": {
          "description": "Associated base ad resource name.",
          "type": "string"
        },
        "assetDetails": {
          "description": "Details for each asset that is being modified from the base ad.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetDetail"
          },
          "type": "array"
        },
        "baseAdGroup": {
          "type": "string",
          "description": "Associated base AdGroup resource name."
        }
      },
      "description": "Details of asset variations to be performed on an ad in the control ad group."
    },
    "GoogleAdsGoogleadsV25Resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings": {
      "description": "Parameters for an experiment to create a Performance Max campaign. The experimental Performance Max campaign gets created automatically based on the existing SHOPPING campaign settings and the settings specified in this field.",
      "type": "object",
      "properties": {
        "biddingStrategyType": {
          "description": "Immutable. Bidding strategy type of the Performance Max experiment campaign.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.",
            "Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.",
            "Fixed CPM is a manual bidding strategy with a fixed CPM.",
            "Fixed share of voice is a manual bidding strategy for YouTube Sponsorships that bills either on CPM or a fixed cost per day.",
            "Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.",
            "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.",
            "Manual click based bidding where user pays per click.",
            "Manual impression based bidding where user pays per thousand impressions.",
            "A bidding strategy that pays a configurable amount per video view.",
            "A bidding strategy that automatically maximizes number of conversions given a daily budget.",
            "An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.",
            "Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.",
            "Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.",
            "Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.",
            "Target CPC is an automated bid strategy that sets bids to help get as many clicks as possible at the target cost-per-click (CPC) you set.",
            "Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.",
            "Target CPV is an automated bidding strategy that sets bids to optimize performance given the average target cost per view.",
            "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).",
            "Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.",
            "Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).",
            "Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "COMMISSION",
            "ENHANCED_CPC",
            "FIXED_CPM",
            "FIXED_SHARE_OF_VOICE",
            "INVALID",
            "MANUAL_CPA",
            "MANUAL_CPC",
            "MANUAL_CPM",
            "MANUAL_CPV",
            "MAXIMIZE_CONVERSIONS",
            "MAXIMIZE_CONVERSION_VALUE",
            "PAGE_ONE_PROMOTED",
            "PERCENT_CPC",
            "TARGET_CPA",
            "TARGET_CPC",
            "TARGET_CPM",
            "TARGET_CPV",
            "TARGET_IMPRESSION_SHARE",
            "TARGET_OUTRANK_SHARE",
            "TARGET_ROAS",
            "TARGET_SPEND"
          ]
        },
        "targetCpaMicros": {
          "format": "int64",
          "description": "Immutable. Target CPA of the Performance Max experiment campaign.",
          "type": "string"
        },
        "budgetAmountMicros": {
          "type": "string",
          "description": "Immutable. The amount of budget of the Performance Max experiment campaign.",
          "format": "int64"
        },
        "targetRoas": {
          "description": "Immutable. Target ROAS of the Performance Max experiment campaign.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "GoogleAdsGoogleadsV25Resources_ExperimentArm_PerformanceMaxExperimentArmInfo": {
      "description": "Information specific to the control or treatment campaign of a Performance Max experiment.",
      "type": "object",
      "properties": {
        "experimentalPerformanceMaxCampaignSettings": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources_ExperimentArm_ExperimentalPerformanceMaxCampaignSettings",
          "description": "Immutable. Performance Max campaign settings to be applied on the Google-created experimental campaign in a Performance Max experiment. The experimental campaign is automatically created by Google upon experiment creation."
        }
      }
    },
    "GoogleAdsGoogleadsV25Resources__ExperimentArm": {
      "description": "A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.",
      "type": "object",
      "properties": {
        "campaigns": {
          "type": "array",
          "description": "List of campaigns in the trial arm. The max length is one.",
          "items": {
            "type": "string"
          }
        },
        "trafficSplit": {
          "type": "string",
          "description": "Traffic split of the trial arm. The value should be between 1 and 100 and must total 100 between the two trial arms.",
          "format": "int64"
        },
        "inDesignCampaigns": {
          "type": "array",
          "description": "Output only. The in design campaigns in the treatment experiment arm.",
          "items": {
            "type": "string"
          }
        },
        "resourceName": {
          "type": "string",
          "description": "Immutable. The resource name of the experiment arm. Experiment arm resource names have the form: `customers/{customer_id}/experimentArms/{TrialArm.trial_id}~{TrialArm.trial_arm_id}`"
        },
        "experiment": {
          "type": "string",
          "description": "Immutable. The experiment to which the ExperimentArm belongs."
        },
        "performanceMaxExperimentArmInfo": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources_ExperimentArm_PerformanceMaxExperimentArmInfo",
          "description": "Immutable. Information specific to the control or treatment campaign of a Performance Max experiment. This field is specific to experiments of type PMAX_REPLACEMENT_SHOPPING. For example, the treatment experiment arm contains the information of treatment Performance Max campaign settings for PMAX_REPLACEMENT_SHOPPING experiments."
        },
        "assetTestingInfo": {
          "description": "Details of assets under experiment.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetTestingInfo"
        },
        "assetGroups": {
          "type": "array",
          "description": "List of asset groups in the experiment arm. The max length is one. In the Optimize Assets experiment construction, the control arm and treatment arm should both contain the same asset group ID.",
          "items": {
            "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources_ExperimentArm_AssetGroupInfo"
          }
        },
        "name": {
          "description": "Required. The name of the experiment arm. It must have a minimum length of 1 and maximum length of 1024. It must be unique under an experiment.",
          "type": "string"
        },
        "control": {
          "description": "Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.",
          "type": "boolean"
        }
      }
    },
    "GoogleAdsGoogleadsV25Services__ExperimentArmOperation": {
      "description": "A single operation on an experiment arm.",
      "type": "object",
      "properties": {
        "update": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__ExperimentArm",
          "description": "Update operation: The experiment arm is expected to have a valid resource name."
        },
        "updateMask": {
          "description": "FieldMask that determines which resource fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "description": "Create operation",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__ExperimentArm"
        },
        "remove": {
          "type": "string",
          "description": "Remove operation: The experiment arm is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`"
        }
      }
    }
  }
}