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

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

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

## Request

- Base URL: `https://searchads360.googleapis.com`
- URL: `https://searchads360.googleapis.com/v23/customers/{customersId}/assetGroupAssets: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/assetGroupAssets:mutate/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates, updates or removes asset group assets. Operation statuses are returned.

## Path parameters

- `customersId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesMutateAssetGroupAssetsRequest: Request message for AssetGroupAssetService.MutateAssetGroupAssets.
  - `operations` GoogleAdsSearchads360V23ServicesAssetGroupAssetOperation[]: Required. The list of operations to perform on individual asset group assets.
    - `create` GoogleAdsSearchads360V23ResourcesAssetGroupAsset: AssetGroupAsset is the link between an asset and an asset group. Adding an AssetGroupAsset links an asset with an asset group.
      - `asset` string: Immutable. The asset which this asset group asset is linking.
      - `assetGroup` string: Immutable. The asset group which this asset group asset is linking.
      - `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': The description of the placement of the asset within the asset group. For example: HEADLINE, YOUTUBE_VIDEO etc
      - `policySummary` GoogleAdsSearchads360V23CommonPolicySummary: Contains policy summary information.
        - `approvalStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'DISAPPROVED' | 'APPROVED_LIMITED' | 'APPROVED' | 'AREA_OF_INTEREST_ONLY': The overall approval status, which is calculated based on the status of its individual policy topic entries.
        - `policyTopicEntries` GoogleAdsSearchads360V23CommonPolicyTopicEntry[]: The list of policy findings.
          - `constraints` GoogleAdsSearchads360V23CommonPolicyTopicConstraint[]: Indicates how serving of this resource may be affected (for example, not serving in a country).
            - `certificateDomainMismatchInCountryList` GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A list of countries where a resource's serving is constrained.
              - …
            - `certificateMissingInCountryList` GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A list of countries where a resource's serving is constrained.
              - …
            - `countryConstraintList` GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A list of countries where a resource's serving is constrained.
              - …
            - `resellerConstraint` GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint: Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.
          - `evidences` GoogleAdsSearchads360V23CommonPolicyTopicEvidence[]: Additional information that explains policy finding (for example, the brand name for a trademark finding).
            - `destinationMismatch` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch: Evidence of mismatches between the URLs of a resource.
              - …
            - `destinationNotWorking` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking: Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices.
              - …
            - `destinationTextList` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList: A list of strings found in a destination page that caused a policy finding.
              - …
            - `languageCode` string: The language the resource was detected to be written in. This is an IETF language tag such as "en-US".
            - `textList` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList: A list of fragments of text that violated a policy.
              - …
            - `websiteList` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList: A list of websites that caused a policy finding. Used for ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more than five websites, only the top five (those that appear in resources the most) will be listed here.
              - …
          - `topic` string: Policy topic this finding refers to. For example, "ALCOHOL", "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible policy topics is not fixed for a particular API version and may change at any time.
          - `type` 'UNSPECIFIED' | 'UNKNOWN' | 'PROHIBITED' | 'LIMITED' | 'FULLY_LIMITED' | 'DESCRIPTIVE' | 'BROADENING' | 'AREA_OF_INTEREST_ONLY': Describes the negative or positive effect this policy will have on serving.
        - `reviewStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'REVIEW_IN_PROGRESS' | 'REVIEWED' | 'UNDER_APPEAL' | 'ELIGIBLE_MAY_SERVE': Where in the review process the resource is.
      - `primaryStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'ELIGIBLE' | 'PAUSED' | 'REMOVED' | 'PENDING' | 'LIMITED' | 'NOT_ELIGIBLE': Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain "status" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.
      - `primaryStatusDetails` GoogleAdsSearchads360V23CommonAssetLinkPrimaryStatusDetails[]: Output only. Provides the details of the primary status and its associated reasons.
        - `assetDisapproved` GoogleAdsSearchads360V23CommonAssetDisapproved: Details related to AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED
          - `offlineEvaluationErrorReasons` string[]: Provides the quality evaluation disapproval reason of an asset.
        - `reason` 'UNSPECIFIED' | 'UNKNOWN' | 'ASSET_LINK_PAUSED' | 'ASSET_LINK_REMOVED' | 'ASSET_DISAPPROVED' | 'ASSET_UNDER_REVIEW' | 'ASSET_APPROVED_LABELED': Provides the reason of this PrimaryStatus.
        - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ELIGIBLE' | 'PAUSED' | 'REMOVED' | 'PENDING' | 'LIMITED' | 'NOT_ELIGIBLE': Provides the PrimaryStatus of this status detail.
      - `primaryStatusReasons` string[]: Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.
      - `resourceName` string: Immutable. The resource name of the asset group asset. Asset group asset resource name have the form: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`
      - `source` 'UNSPECIFIED' | 'UNKNOWN' | 'ADVERTISER' | 'AUTOMATICALLY_CREATED': Output only. Source of the asset group asset.
      - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' | 'PAUSED': The status of the link between an asset and asset group.
    - `remove` string: Remove operation: A resource name for the removed asset group asset is expected, in this format: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`
    - `update` GoogleAdsSearchads360V23ResourcesAssetGroupAsset: AssetGroupAsset is the link between an asset and an asset group. Adding an AssetGroupAsset links an asset with an asset group.
      - `asset` string: Immutable. The asset which this asset group asset is linking.
      - `assetGroup` string: Immutable. The asset group which this asset group asset is linking.
      - `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': The description of the placement of the asset within the asset group. For example: HEADLINE, YOUTUBE_VIDEO etc
      - `policySummary` GoogleAdsSearchads360V23CommonPolicySummary: Contains policy summary information.
        - `approvalStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'DISAPPROVED' | 'APPROVED_LIMITED' | 'APPROVED' | 'AREA_OF_INTEREST_ONLY': The overall approval status, which is calculated based on the status of its individual policy topic entries.
        - `policyTopicEntries` GoogleAdsSearchads360V23CommonPolicyTopicEntry[]: The list of policy findings.
          - `constraints` GoogleAdsSearchads360V23CommonPolicyTopicConstraint[]: Indicates how serving of this resource may be affected (for example, not serving in a country).
            - `certificateDomainMismatchInCountryList` GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A list of countries where a resource's serving is constrained.
              - …
            - `certificateMissingInCountryList` GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A list of countries where a resource's serving is constrained.
              - …
            - `countryConstraintList` GoogleAdsSearchads360V23CommonPolicyTopicConstraintCountryConstraintList: A list of countries where a resource's serving is constrained.
              - …
            - `resellerConstraint` GoogleAdsSearchads360V23CommonPolicyTopicConstraintResellerConstraint: Indicates that a policy topic was constrained due to disapproval of the website for reseller purposes.
          - `evidences` GoogleAdsSearchads360V23CommonPolicyTopicEvidence[]: Additional information that explains policy finding (for example, the brand name for a trademark finding).
            - `destinationMismatch` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationMismatch: Evidence of mismatches between the URLs of a resource.
              - …
            - `destinationNotWorking` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationNotWorking: Evidence details when the destination is returning an HTTP error code or isn't functional in all locations for commonly used devices.
              - …
            - `destinationTextList` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceDestinationTextList: A list of strings found in a destination page that caused a policy finding.
              - …
            - `languageCode` string: The language the resource was detected to be written in. This is an IETF language tag such as "en-US".
            - `textList` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceTextList: A list of fragments of text that violated a policy.
              - …
            - `websiteList` GoogleAdsSearchads360V23CommonPolicyTopicEvidenceWebsiteList: A list of websites that caused a policy finding. Used for ONE_WEBSITE_PER_AD_GROUP policy topic, for example. In case there are more than five websites, only the top five (those that appear in resources the most) will be listed here.
              - …
          - `topic` string: Policy topic this finding refers to. For example, "ALCOHOL", "TRADEMARKS_IN_AD_TEXT", or "DESTINATION_NOT_WORKING". The set of possible policy topics is not fixed for a particular API version and may change at any time.
          - `type` 'UNSPECIFIED' | 'UNKNOWN' | 'PROHIBITED' | 'LIMITED' | 'FULLY_LIMITED' | 'DESCRIPTIVE' | 'BROADENING' | 'AREA_OF_INTEREST_ONLY': Describes the negative or positive effect this policy will have on serving.
        - `reviewStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'REVIEW_IN_PROGRESS' | 'REVIEWED' | 'UNDER_APPEAL' | 'ELIGIBLE_MAY_SERVE': Where in the review process the resource is.
      - `primaryStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'ELIGIBLE' | 'PAUSED' | 'REMOVED' | 'PENDING' | 'LIMITED' | 'NOT_ELIGIBLE': Output only. Provides the PrimaryStatus of this asset link. Primary status is meant essentially to differentiate between the plain "status" field, which has advertiser set values of enabled, paused, or removed. The primary status takes into account other signals (for assets its mainly policy and quality approvals) to come up with a more comprehensive status to indicate its serving state.
      - `primaryStatusDetails` GoogleAdsSearchads360V23CommonAssetLinkPrimaryStatusDetails[]: Output only. Provides the details of the primary status and its associated reasons.
        - `assetDisapproved` GoogleAdsSearchads360V23CommonAssetDisapproved: Details related to AssetLinkPrimaryStatusReasonPB.ASSET_DISAPPROVED
          - `offlineEvaluationErrorReasons` string[]: Provides the quality evaluation disapproval reason of an asset.
        - `reason` 'UNSPECIFIED' | 'UNKNOWN' | 'ASSET_LINK_PAUSED' | 'ASSET_LINK_REMOVED' | 'ASSET_DISAPPROVED' | 'ASSET_UNDER_REVIEW' | 'ASSET_APPROVED_LABELED': Provides the reason of this PrimaryStatus.
        - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ELIGIBLE' | 'PAUSED' | 'REMOVED' | 'PENDING' | 'LIMITED' | 'NOT_ELIGIBLE': Provides the PrimaryStatus of this status detail.
      - `primaryStatusReasons` string[]: Output only. Provides a list of reasons for why an asset is not serving or not serving at full capacity.
      - `resourceName` string: Immutable. The resource name of the asset group asset. Asset group asset resource name have the form: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`
      - `source` 'UNSPECIFIED' | 'UNKNOWN' | 'ADVERTISER' | 'AUTOMATICALLY_CREATED': Output only. Source of the asset group asset.
      - `status` 'UNSPECIFIED' | 'UNKNOWN' | 'ENABLED' | 'REMOVED' | 'PAUSED': The status of the link between an asset and asset group.
    - `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.
  - `validateOnly` boolean: If true, the request is validated but not executed. Only errors are returned, not results.

## Response `200`

Successful response

- GoogleAdsSearchads360V23ServicesMutateAssetGroupAssetsResponse: Response message for an asset group asset 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` GoogleAdsSearchads360V23ServicesMutateAssetGroupAssetResult[]: All results for the mutate.
    - `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)
