> [!WARNING]
> Display \& Video 360 API v5 is currently in beta.

- [HTTP request](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.PATH_PARAMETERS)
- [Request body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.request_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.response_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.BulkEditAdGroupAssignedTargetingOptionsResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.aspect)
- [Try it!](https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#try-it)

Bulk edits targeting options for multiple ad groups.

The same set of delete and create requests will be applied to all specified ad groups. Specifically, the operation will delete the assigned targeting options provided in `https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.request_body.FIELDS.delete_requests` from each ad group, and then create the assigned targeting options provided in `https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#body.request_body.FIELDS.create_requests`.

This method is only supported for Demand Gen ad groups.

### HTTP request

`POST https://displayvideo.googleapis.com/v5/advertisers/{advertiserId}/adGroups:bulkEditAssignedTargetingOptions`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `advertiserId` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. The ID of the advertiser the ad groups belong to. |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "adGroupIds": [ string ], "deleteRequests": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/DeleteAssignedTargetingOptionsRequest`) } ], "createRequests": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/CreateAssignedTargetingOptionsRequest`) } ] } ``` |

| Fields ||
|---|---|
| `adGroupIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Required. The IDs of the ad groups the assigned targeting options will belong to. A maximum of 25 ad group IDs can be specified. |
| `deleteRequests[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/DeleteAssignedTargetingOptionsRequest`)`` Optional. The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: - `TARGETING_TYPE_AGE_RANGE` - `TARGETING_TYPE_APP` - `TARGETING_TYPE_APP_CATEGORY` - `TARGETING_TYPE_CATEGORY` - `TARGETING_TYPE_COMBINED_AUDIENCE` - `TARGETING_TYPE_CUSTOM_LIST` - `TARGETING_TYPE_FIRST_PARTY_AND_PARTNER_AUDIENCE` - `TARGETING_TYPE_GENDER` - `TARGETING_TYPE_GEO_REGION` - `TARGETING_TYPE_GOOGLE_AUDIENCE` - `TARGETING_TYPE_HOUSEHOLD_INCOME` - `TARGETING_TYPE_KEYWORD` - `TARGETING_TYPE_LANGUAGE` - `TARGETING_TYPE_LOOKALIKE_AUDIENCE` - `TARGETING_TYPE_PARENTAL_STATUS` - `TARGETING_TYPE_URL` - `TARGETING_TYPE_YOUTUBE_CHANNEL` - `TARGETING_TYPE_YOUTUBE_VIDEO` |
| `createRequests[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/CreateAssignedTargetingOptionsRequest`)`` Optional. The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionRequest`. Supported targeting types: - `TARGETING_TYPE_AGE_RANGE` - `TARGETING_TYPE_APP` - `TARGETING_TYPE_APP_CATEGORY` - `TARGETING_TYPE_CATEGORY` - `TARGETING_TYPE_COMBINED_AUDIENCE` - `TARGETING_TYPE_CUSTOM_LIST` - `TARGETING_TYPE_FIRST_PARTY_AND_PARTNER_AUDIENCE` - `TARGETING_TYPE_GENDER` - `TARGETING_TYPE_GEO_REGION` - `TARGETING_TYPE_GOOGLE_AUDIENCE` - `TARGETING_TYPE_HOUSEHOLD_INCOME` - `TARGETING_TYPE_KEYWORD` - `TARGETING_TYPE_LANGUAGE` - `TARGETING_TYPE_LOOKALIKE_AUDIENCE` - `TARGETING_TYPE_PARENTAL_STATUS` - `TARGETING_TYPE_URL` - `TARGETING_TYPE_YOUTUBE_CHANNEL` - `TARGETING_TYPE_YOUTUBE_VIDEO` |

### Response body

Response message for `https://developers.google.com/display-video/api/reference/rest/v5/advertisers.adGroups/bulkEditAssignedTargetingOptions#google.ads.displayvideo.v5.AdGroupAssignedTargetingOptionsService.BulkEditAssignedTargetingOptions`.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "updatedAdGroupIds": [ string ], "failedAdGroupIds": [ string ], "errors": [ { object (`https://developers.google.com/display-video/api/reference/rest/v5/sdfdownloadtasks.operations#Operation.Status`) } ] } ``` |

| Fields ||
|---|---|
| `updatedAdGroupIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The IDs of the ad groups which were successfully updated. |
| `failedAdGroupIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The IDs of the ad groups which failed to update. |
| `errors[]` | ``object (`https://developers.google.com/display-video/api/reference/rest/v5/sdfdownloadtasks.operations#Operation.Status`)`` Output only. The error information for each ad group that failed to update. |

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/display-video`

For more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2).