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

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

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

## Request

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

Creates or removes asset group signals. Operation statuses are returned.

## Path parameters

- `customersId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesMutateAssetGroupSignalsRequest: Request message for AssetGroupSignalService.MutateAssetGroupSignals.
  - `operations` GoogleAdsSearchads360V23ServicesAssetGroupSignalOperation[]: Required. The list of operations to perform on individual asset group signals.
    - `create` GoogleAdsSearchads360V23ResourcesAssetGroupSignal: AssetGroupSignal represents a signal in an asset group. The existence of a signal tells the performance max campaign who's most likely to convert. Performance Max uses the signal to look for new people with similar or stronger intent to find conversions across Search, Display, Video, and more.
      - `approvalStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'APPROVED' | 'LIMITED' | 'DISAPPROVED' | 'UNDER_REVIEW': Output only. Approval status is the output value for search theme signal after Google ads policy review. When using Audience signal, this field is not used and will be absent.
      - `assetGroup` string: Immutable. The asset group which this asset group signal belongs to.
      - `audience` GoogleAdsSearchads360V23CommonAudienceInfo: An audience criterion.
        - `audience` string: The Audience resource name.
      - `disapprovalReasons` string[]: Output only. Computed for SearchTheme signals. When using Audience signal, this field is not used and will be absent.
      - `resourceName` string: Immutable. The resource name of the asset group signal. Asset group signal resource name have the form: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}`
      - `searchTheme` GoogleAdsSearchads360V23CommonSearchThemeInfo: A Search Theme criterion only on Performance Max campaign. Represents a keyword-like advertiser input.
        - `text` string: Each Search Theme has a value of a simple string, like keywords. There are limits on overall length, allowed characters, and number of words.
    - `exemptPolicyViolationKeys` GoogleAdsSearchads360V23CommonPolicyViolationKey[]: Optional. The list of policy violation keys that should not cause a PolicyViolationError to be reported. Not all policy violations are exemptable, refer to the is_exemptible field in the returned PolicyViolationError. Resources violating these polices will be saved, but will not be eligible to serve. They may begin serving at a later time due to a change in policies, re-review of the resource, or a change in advertiser certificates.
      - `policyName` string: Unique ID of the violated policy.
      - `violatingText` string: The text that violates the policy if specified. Otherwise, refers to the policy in general (for example, when requesting to be exempt from the whole policy). If not specified for criterion exemptions, the whole policy is implied. Must be specified for ad exemptions.
    - `remove` string: Remove operation: A resource name for the removed asset group signal is expected, in this format: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{criterion_id}`
  - `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

- GoogleAdsSearchads360V23ServicesMutateAssetGroupSignalsResponse: Response message for an asset group signal 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` GoogleAdsSearchads360V23ServicesMutateAssetGroupSignalResult[]: All results for the mutate.
    - `assetGroupSignal` GoogleAdsSearchads360V23ResourcesAssetGroupSignal: AssetGroupSignal represents a signal in an asset group. The existence of a signal tells the performance max campaign who's most likely to convert. Performance Max uses the signal to look for new people with similar or stronger intent to find conversions across Search, Display, Video, and more.
      - `approvalStatus` 'UNSPECIFIED' | 'UNKNOWN' | 'APPROVED' | 'LIMITED' | 'DISAPPROVED' | 'UNDER_REVIEW': Output only. Approval status is the output value for search theme signal after Google ads policy review. When using Audience signal, this field is not used and will be absent.
      - `assetGroup` string: Immutable. The asset group which this asset group signal belongs to.
      - `audience` GoogleAdsSearchads360V23CommonAudienceInfo: An audience criterion.
        - `audience` string: The Audience resource name.
      - `disapprovalReasons` string[]: Output only. Computed for SearchTheme signals. When using Audience signal, this field is not used and will be absent.
      - `resourceName` string: Immutable. The resource name of the asset group signal. Asset group signal resource name have the form: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}`
      - `searchTheme` GoogleAdsSearchads360V23CommonSearchThemeInfo: A Search Theme criterion only on Performance Max campaign. Represents a keyword-like advertiser input.
        - `text` string: Each Search Theme has a value of a simple string, like keywords. There are limits on overall length, allowed characters, and number of words.
    - `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)
