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

# POST /v23/customers/{+customerId}/experimentArms:mutate

`POST /v23/customers/{+customerId}/experimentArms:mutate`

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

## Path parameters

- `customerId` 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.
      - `experiment` string — Immutable. The experiment to which the ExperimentArm belongs.
      - `campaigns` string[] — List of campaigns in the trial arm. The max length is one.
      - `inDesignCampaigns` string[] — Output only. The in design campaigns in the treatment experiment arm.
      - `control` boolean — Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.
      - `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.
      - `assetGroups` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo[] — List of asset groups in the experiment arm.
        - `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.
      - `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}`
      - `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.
    - `update` GoogleAdsSearchads360V23ResourcesExperimentArm — A Google ads experiment for users to experiment changes on multiple campaigns, compare the performance, and apply the effective changes.
      - `experiment` string — Immutable. The experiment to which the ExperimentArm belongs.
      - `campaigns` string[] — List of campaigns in the trial arm. The max length is one.
      - `inDesignCampaigns` string[] — Output only. The in design campaigns in the treatment experiment arm.
      - `control` boolean — Whether this arm is a control arm. A control arm is the arm against which the other arms are compared.
      - `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.
      - `assetGroups` GoogleAdsSearchads360V23ResourcesExperimentArmAssetGroupInfo[] — List of asset groups in the experiment arm.
        - `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.
      - `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}`
      - `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.
    - `updateMask` string, google-fieldmask — FieldMask that determines which resource fields are modified in an update.
    - `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}`
  - `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.
  - `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.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/searchads360.md) · [All operations](https://skmtc.net/google/apis/searchads360/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/searchads360/revisions/40d087435afd/schema)
