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

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

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

## Request

- Base URL: `https://searchads360.googleapis.com`
- URL: `https://searchads360.googleapis.com/v23/customers/{+customerId}/assetGroups:mutate`
- Auth: OAuth 2 (implicit, authorization URL `https://accounts.google.com/o/oauth2/auth`, scopes: `https://www.googleapis.com/auth/doubleclicksearch`) and OAuth 2 (authorization code, authorization URL `https://accounts.google.com/o/oauth2/auth`, token URL `https://accounts.google.com/o/oauth2/token`, scopes: `https://www.googleapis.com/auth/doubleclicksearch`)

Creates, updates or removes asset groups. Operation statuses are returned.

## Path parameters

- `customerId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesMutateAssetGroupsRequest: Request message for AssetGroupService.MutateAssetGroups.
  - `operations` GoogleAdsSearchads360V23ServicesAssetGroupOperation[]: Required. The list of operations to perform on individual asset groups.
    - `create` GoogleAdsSearchads360V23ResourcesAssetGroup: An asset group. AssetGroupAsset is used to link an asset to the asset group. AssetGroupSignal is used to associate a signal to an asset group.
      - `adStrength` 'UNSPECIFIED' | 'UNKNOWN' | 'PENDING' | 'NO_ADS' | 'POOR' | 'AVERAGE' | 'GOOD' | 'EXCELLENT': Output only. Overall ad strength of this asset group.
      - `assetCoverage` GoogleAdsSearchads360V23ResourcesAssetCoverage: Information about the asset coverage of an asset group.
        - `adStrengthActionItems` GoogleAdsSearchads360V23ResourcesAdStrengthActionItem[]: Output only. A list of action items to improve the ad strength of an asset group.
          - `actionItemType` 'UNSPECIFIED' | 'UNKNOWN' | 'ADD_ASSET': Output only. The action item type.
          - `addAssetDetails` GoogleAdsSearchads360V23ResourcesAdStrengthActionItemAddAssetDetails: The details of the asset to add.
            - `assetCount` integer: Output only. The number of assets to add.
            - `assetFieldType` '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': Output only. The asset field type of the asset(s) to add.
            - `videoAspectRatioRequirement` 'UNSPECIFIED' | 'UNKNOWN' | 'HORIZONTAL' | 'SQUARE' | 'VERTICAL': Output only. For video field types, the required aspect ratio of the video. When unset and asset_field_type is YOUTUBE_VIDEO, the system recommends the advertiser upload any YouTube video, regardless of aspect ratio.
      - `campaign` string: Immutable. The campaign with which this asset group is associated. The asset which is linked to the asset group.
      - `finalMobileUrls` string[]: A list of final mobile URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.
      - `finalUrls` string[]: A list of final URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.
      - `id` string, int64: Output only. The ID of the asset group.
      - `name` string: Required. Name of the asset group. Required. It must have a minimum length of 1 and maximum length of 128. It must be unique under a campaign.
      - `path1` string: First part of text that may appear appended to the url displayed in the ad.
      - `path2` string: Second part of text that may appear appended to the url displayed in the ad. This field can only be set when path1 is set.
      - `primaryStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'ELIGIBLE' | 'PAUSED' | 'REMOVED' | 'NOT_ELIGIBLE' | 'LIMITED' | 'PENDING': Output only. The primary status of the asset group. Provides insights into why an asset group is not serving or not serving optimally.
      - `primaryStatusReasons` string[]: Output only. Provides reasons into why an asset group is not serving or not serving optimally. It will be empty when the asset group is serving without issues.
      - `resourceName` string: Immutable. The resource name of the asset group. Asset group resource names have the form: `customers/{customer_id}/assetGroups/{asset_group_id}`
      - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'PAUSED' | 'REMOVED': The status of the asset group.
    - `remove` string: Remove operation: A resource name for the removed asset group is expected, in this format: `customers/{customer_id}/assetGroups/{asset_group_id}`
    - `update` GoogleAdsSearchads360V23ResourcesAssetGroup: An asset group. AssetGroupAsset is used to link an asset to the asset group. AssetGroupSignal is used to associate a signal to an asset group.
      - `adStrength` 'UNSPECIFIED' | 'UNKNOWN' | 'PENDING' | 'NO_ADS' | 'POOR' | 'AVERAGE' | 'GOOD' | 'EXCELLENT': Output only. Overall ad strength of this asset group.
      - `assetCoverage` GoogleAdsSearchads360V23ResourcesAssetCoverage: Information about the asset coverage of an asset group.
        - `adStrengthActionItems` GoogleAdsSearchads360V23ResourcesAdStrengthActionItem[]: Output only. A list of action items to improve the ad strength of an asset group.
          - `actionItemType` 'UNSPECIFIED' | 'UNKNOWN' | 'ADD_ASSET': Output only. The action item type.
          - `addAssetDetails` GoogleAdsSearchads360V23ResourcesAdStrengthActionItemAddAssetDetails: The details of the asset to add.
            - `assetCount` integer: Output only. The number of assets to add.
            - `assetFieldType` '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': Output only. The asset field type of the asset(s) to add.
            - `videoAspectRatioRequirement` 'UNSPECIFIED' | 'UNKNOWN' | 'HORIZONTAL' | 'SQUARE' | 'VERTICAL': Output only. For video field types, the required aspect ratio of the video. When unset and asset_field_type is YOUTUBE_VIDEO, the system recommends the advertiser upload any YouTube video, regardless of aspect ratio.
      - `campaign` string: Immutable. The campaign with which this asset group is associated. The asset which is linked to the asset group.
      - `finalMobileUrls` string[]: A list of final mobile URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.
      - `finalUrls` string[]: A list of final URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.
      - `id` string, int64: Output only. The ID of the asset group.
      - `name` string: Required. Name of the asset group. Required. It must have a minimum length of 1 and maximum length of 128. It must be unique under a campaign.
      - `path1` string: First part of text that may appear appended to the url displayed in the ad.
      - `path2` string: Second part of text that may appear appended to the url displayed in the ad. This field can only be set when path1 is set.
      - `primaryStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'ELIGIBLE' | 'PAUSED' | 'REMOVED' | 'NOT_ELIGIBLE' | 'LIMITED' | 'PENDING': Output only. The primary status of the asset group. Provides insights into why an asset group is not serving or not serving optimally.
      - `primaryStatusReasons` string[]: Output only. Provides reasons into why an asset group is not serving or not serving optimally. It will be empty when the asset group is serving without issues.
      - `resourceName` string: Immutable. The resource name of the asset group. Asset group resource names have the form: `customers/{customer_id}/assetGroups/{asset_group_id}`
      - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'PAUSED' | 'REMOVED': The status of the asset group.
    - `updateMask` string, google-fieldmask: FieldMask that determines which resource fields are modified in an update.
  - `validateOnly` boolean: If true, the request is validated but not executed. Only errors are returned, not results.

## Response `200`

Successful response

## Changes

- **2026-10-10** `3c8ec4f526ec`: 2 breaking
  - removed the request body
  - removed the media type `*/*` for the response with the status `200`

[Operation history](https://skmtc.dev/google/apis/searchads360/changes/v23/customers/:customerId/assetGroups:mutate/post.md)

---

[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/3c8ec4f526ec?raw)
