---
title: "POST /v23/customers/{customersId}/experimentArms:mutate"
method: POST
path: "/v23/customers/{customersId}/experimentArms:mutate"
tags: ["customers"]
---

# POST /v23/customers/{customersId}/experimentArms:mutate

`POST /v23/customers/{customersId}/experimentArms:mutate`

## Request

- Base URL: `https://searchads360.googleapis.com`
- URL: `https://searchads360.googleapis.com/v23/customers/{customersId}/experimentArms:mutate`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/doubleclicksearch`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/doubleclicksearch`
- TypeScript: <https://skmtc.dev/google/apis/searchads360/docs/v23/customers/:customersId/experimentArms:mutate/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates, updates, or removes experiment arms. Operation statuses are returned. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [ExperimentArmError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()

## Path parameters

- `customersId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesMutateExperimentArmsRequest: Request message for ExperimentArmService.MutateExperimentArms.
  - `operations` GoogleAdsSearchads360V23ServicesExperimentArmOperation[]: Required. The list of operations to perform on individual experiment arm.
    - `create` GoogleAdsSearchads360V23ResourcesExperimentArm: A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.
      - `assetGroups` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo[]: 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.
        - `assetGroup` string: Asset group resource name.
        - `assetGroupAssets` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo[]: List of asset group assets under the asset group.
          - `asset` string: Asset resource name of the asset group asset.
          - `fieldType` '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' | 'LANDING_PAGE_PREVIEW' | 'LONG_DESCRIPTION' | 'CALL_TO_ACTION': Field type of the asset group asset.
      - `campaigns` string[]: List of campaigns in the trial arm. The max length is one.
      - `control` boolean: Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.
      - `experiment` string: Immutable. The experiment to which the ExperimentArm belongs.
      - `inDesignCampaigns` string[]: Output only. The in design campaigns in the treatment experiment arm.
      - `name` string: 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.
      - `resourceName` string: 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}`
      - `trafficSplit` string, int64: Traffic split of the trial arm. The value should be between 1 and 100 and must total 100 between the two trial arms.
    - `remove` string: Remove operation: The experiment arm is expected to have a valid resource name, in this format: `customers/{customer_id}/experiments/{campaign_experiment_id}`
    - `update` GoogleAdsSearchads360V23ResourcesExperimentArm: A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.
      - `assetGroups` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo[]: 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.
        - `assetGroup` string: Asset group resource name.
        - `assetGroupAssets` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo[]: List of asset group assets under the asset group.
          - `asset` string: Asset resource name of the asset group asset.
          - `fieldType` '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' | 'LANDING_PAGE_PREVIEW' | 'LONG_DESCRIPTION' | 'CALL_TO_ACTION': Field type of the asset group asset.
      - `campaigns` string[]: List of campaigns in the trial arm. The max length is one.
      - `control` boolean: Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.
      - `experiment` string: Immutable. The experiment to which the ExperimentArm belongs.
      - `inDesignCampaigns` string[]: Output only. The in design campaigns in the treatment experiment arm.
      - `name` string: 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.
      - `resourceName` string: 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}`
      - `trafficSplit` string, int64: Traffic split of the trial arm. The value should be between 1 and 100 and must total 100 between the two trial arms.
    - `updateMask` string, google-fieldmask: FieldMask that determines which resource fields are modified in an update.
  - `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 is false.
  - `responseContentType` 'UNSPECIFIED' | 'RESOURCE_NAME_ONLY' | 'MUTABLE_RESOURCE': The response content type setting. Determines whether the mutable resource or just the resource name should be returned post mutation.
  - `validateOnly` boolean: If true, the request is validated but not executed. Only errors are returned, not results.

## Response `200`

Successful response

- GoogleAdsSearchads360V23ServicesMutateExperimentArmsResponse: Response message for experiment arm mutate.
  - `partialFailureError` GoogleRpcStatus: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  - `results` GoogleAdsSearchads360V23ServicesMutateExperimentArmResult[]: All results for the mutate.
    - `experimentArm` GoogleAdsSearchads360V23ResourcesExperimentArm: A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.
      - `assetGroups` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo[]: 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.
        - `assetGroup` string: Asset group resource name.
        - `assetGroupAssets` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupAssetInfo[]: List of asset group assets under the asset group.
          - `asset` string: Asset resource name of the asset group asset.
          - `fieldType` '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' | 'LANDING_PAGE_PREVIEW' | 'LONG_DESCRIPTION' | 'CALL_TO_ACTION': Field type of the asset group asset.
      - `campaigns` string[]: List of campaigns in the trial arm. The max length is one.
      - `control` boolean: Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.
      - `experiment` string: Immutable. The experiment to which the ExperimentArm belongs.
      - `inDesignCampaigns` string[]: Output only. The in design campaigns in the treatment experiment arm.
      - `name` string: 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.
      - `resourceName` string: 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}`
      - `trafficSplit` string, int64: Traffic split of the trial arm. The value should be between 1 and 100 and must total 100 between the two trial arms.
    - `resourceName` string: Returned for successful operations.

---

[API](https://skmtc.dev/google/apis/searchads360.md) - [All operations](https://skmtc.dev/google/apis/searchads360/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/searchads360/revisions/4a4511f84b18?raw)
