Starting September 8, 2025, every new line item will need to declare whether or not they will serve Eurpoean Union (EU) political ads. Display & Video 360 API and SDF uploads that don't provide declarations will fail. See our deprecations page for more details on how to update your integration to make this declaration.
Required. The ID of the parent channel to which the sites belong.
Union parameter owner. Required. Identifies the DV360 entity that owns the parent channel. It can be either a partner or an advertiser. owner can be only one of the following:
The ID of the partner that owns the parent channel.
Request body
The request body contains data with the following structure:
JSON representation
{"deletedSites": [string],"createdSites": [{object (Site)}],// Union field owner can be only one of the following:"advertiserId": string// End of list of possible types for union field owner.}
Fields
deletedSites[]
string
The sites to delete in batch, specified as a list of site url_or_app_ids.
The sites to create in batch, specified as a list of Sites.
Union field owner. Required. Identifies the DV360 entity that owns the parent channel. It can be either a partner or an advertiser. owner can be only one of the following:
[null,null,["Last updated 2025-04-02 UTC."],[[["\u003cp\u003eThis operation allows for bulk editing of sites under a single channel, enabling deletion and creation in batch.\u003c/p\u003e\n"],["\u003cp\u003eThe request requires specifying the channel ID and the owner (partner or advertiser) along with lists of sites to delete and create.\u003c/p\u003e\n"],["\u003cp\u003eThe sites to be deleted are specified using their \u003ccode\u003eurl_or_app_ids\u003c/code\u003e, while sites to be created require providing full \u003ccode\u003eSite\u003c/code\u003e objects.\u003c/p\u003e\n"],["\u003cp\u003eA successful response will return a \u003ccode\u003eBulkEditSitesResponse\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eAuthorization requires the \u003ccode\u003ehttps://www.googleapis.com/auth/display-video\u003c/code\u003e scope.\u003c/p\u003e\n"]]],["This API operation facilitates bulk edits of sites within a channel. It uses a POST request to `https://displayvideo.googleapis.com/v3/partners/{partnerId}/channels/{channelId}/sites:bulkEdit`. Required actions include specifying the `channelId` and `partnerId` via path parameters. The request body, formatted as JSON, contains lists of `deletedSites` (site URLs or app IDs) and `createdSites` (site objects). The request must include the `partnerId` or `advertiserId` to define the owner of the sites. A successful request returns a `BulkEditSitesResponse`.\n"],null,["# Method: partners.channels.sites.bulkEdit\n\n| Display \\& Video 360 API is deprecated and will sunset on **October 7, 2025** . Migrate to [Display \\& Video 360 API v4](/display-video/api/reference/rest/v4) before sunset to avoid an interruption in service.\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nBulk edits sites under a single channel.\n\nThe operation will delete the sites provided in [BulkEditSitesRequest.deleted_sites](/display-video/api/reference/rest/v3/partners.channels.sites/bulkEdit#body.request_body.FIELDS.deleted_sites) and then create the sites provided in [BulkEditSitesRequest.created_sites](/display-video/api/reference/rest/v3/partners.channels.sites/bulkEdit#body.request_body.FIELDS.created_sites).\n\n### HTTP request\n\n`POST https://displayvideo.googleapis.com/v3/partners/{partnerId}/channels/{channelId}/sites:bulkEdit`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `channelId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` Required. The ID of the parent channel to which the sites belong. |\n| Union parameter `owner`. Required. Identifies the DV360 entity that owns the parent channel. It can be either a partner or an advertiser. `owner` can be only one of the following: ||\n| `partnerId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The ID of the partner that owns the parent channel. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"deletedSites\": [ string ], \"createdSites\": [ { object (/display-video/api/reference/rest/v3/advertisers.channels.sites#Site) } ], // Union field `owner` can be only one of the following: \"advertiserId\": string // End of list of possible types for union field `owner`. } ``` |\n\n| Fields ||\n|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `deletedSites[]` | `string` The sites to delete in batch, specified as a list of site [url_or_app_ids](/display-video/api/reference/rest/v3/advertisers.channels.sites#Site.FIELDS.url_or_app_id). |\n| `createdSites[]` | `object (`[Site](/display-video/api/reference/rest/v3/advertisers.channels.sites#Site)`)` The sites to create in batch, specified as a list of [Sites](/display-video/api/reference/rest/v3/advertisers.channels.sites#Site). |\n| Union field `owner`. Required. Identifies the DV360 entity that owns the parent channel. It can be either a partner or an advertiser. `owner` can be only one of the following: ||\n| `partnerId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The ID of the partner that owns the parent channel. |\n| `advertiserId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The ID of the advertiser that owns the parent channel. |\n\n### Response body\n\nIf successful, the response body contains an instance of [BulkEditSitesResponse](/display-video/api/reference/rest/v3/BulkEditSitesResponse).\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/display-video`\n\nFor more information, see the [OAuth 2.0 Overview](/identity/protocols/OAuth2)."]]