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.
Method: advertisers.lineItems.bulkUpdate
Stay organized with collections
Save and categorize content based on your preferences.
Updates multiple line items.
Requests to this endpoint cannot be made concurrently with the following requests updating the same line item:
YouTube & Partners line items cannot be created or updated using the API.
HTTP request
POST https://displayvideo.googleapis.com/v4/advertisers/{advertiserId}/lineItems:bulkUpdate
The URL uses gRPC Transcoding syntax.
Path parameters
Parameters |
advertiserId |
string (int64 format)
Required. The ID of the advertiser this line item belongs to.
|
Request body
The request body contains data with the following structure:
JSON representation |
{
"lineItemIds": [
string
],
"targetLineItem": {
object (LineItem )
},
"updateMask": string
} |
Fields |
lineItemIds[] |
string (int64 format)
Required. IDs of line items to update.
|
targetLineItem |
object (LineItem )
Required. A line item object containing the fields to be updated and the new values to assign to all line items specified in lineItemIds ."
|
updateMask |
string (FieldMask format)
Required. A field mask identifying which fields to update. Only the following fields are currently supported:
This is a comma-separated list of fully qualified names of fields. Example: "user.displayName,photo" .
|
Response body
Response message for LineItemService.BulkUpdateLineItems.
If successful, the response body contains data with the following structure:
JSON representation |
{
"updatedLineItemIds": [
string
],
"failedLineItemIds": [
string
],
"skippedLineItemIds": [
string
],
"errors": [
{
object (Status )
}
]
} |
Fields |
updatedLineItemIds[] |
string (int64 format)
The IDs of successfully updated line items.
|
failedLineItemIds[] |
string (int64 format)
The IDs of line items that failed to update.
|
skippedLineItemIds[] |
string (int64 format)
The IDs of line items that are skipped for updates. For example, unnecessary mutates that will result in effectively no changes to line items will be skipped and corresponding line item IDs can be tracked here.
|
errors[] |
object (Status )
Errors returned by line items 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.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-21 UTC.
[null,null,["Last updated 2025-08-21 UTC."],[],["The Display & Video 360 API v4, in beta, allows bulk updates of multiple line items via a POST request to a specific URL, using gRPC Transcoding syntax. Requests require an advertiser ID and specify `lineItemIds`, `targetLineItem` data, and an `updateMask` in the request body, which is in JSON format. The response indicates successful, failed, or skipped updates and returns respective line item IDs. Specific updates on a same item cannot be concurrent, and YouTube & Partners line items are not supported.\n"],null,["# Method: advertisers.lineItems.bulkUpdate\n\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 - [JSON representation](#body.BulkUpdateLineItemsResponse.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nUpdates multiple line items.\n\nRequests to this endpoint cannot be made concurrently with the following requests updating the same line item:\n\n- [lineItems.bulkEditAssignedTargetingOptions](/display-video/api/reference/rest/v4/advertisers.lineItems/bulkEditAssignedTargetingOptions#google.ads.displayvideo.v4.LineItemAssignedTargetingOptionsService.BulkEditAssignedTargetingOptions)\n- [lineItems.patch](/display-video/api/reference/rest/v4/advertisers.lineItems/patch#google.ads.displayvideo.v4.LineItemService.UpdateLineItem)\n- [assignedTargetingOptions.create](/display-video/api/reference/rest/v4/advertisers.lineItems.targetingTypes.assignedTargetingOptions/create#google.ads.displayvideo.v4.LineItemAssignedTargetingOptionsService.CreateLineItemAssignedTargetingOption)\n- [assignedTargetingOptions.delete](/display-video/api/reference/rest/v4/advertisers.lineItems.targetingTypes.assignedTargetingOptions/delete#google.ads.displayvideo.v4.LineItemAssignedTargetingOptionsService.DeleteLineItemAssignedTargetingOption)\n\nYouTube \\& Partners line items cannot be created or updated using the API.\n\n### HTTP request\n\n`POST https://displayvideo.googleapis.com/v4/advertisers/{advertiserId}/lineItems:bulkUpdate`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------|\n| `advertiserId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` Required. The ID of the advertiser this line item belongs to. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"lineItemIds\": [ string ], \"targetLineItem\": { object (/display-video/api/reference/rest/v4/advertisers.lineItems#LineItem) }, \"updateMask\": string } ``` |\n\n| Fields ||\n|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `lineItemIds[]` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` Required. IDs of line items to update. |\n| `targetLineItem` | `object (`[LineItem](/display-video/api/reference/rest/v4/advertisers.lineItems#LineItem)`)` Required. A line item object containing the fields to be updated and the new values to assign to all line items specified in [lineItemIds](/display-video/api/reference/rest/v4/advertisers.lineItems/bulkUpdate#body.request_body.FIELDS.line_item_ids).\" |\n| `updateMask` | `string (`[FieldMask](https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask)` format)` Required. A field mask identifying which fields to update. Only the following fields are currently supported: - [entityStatus](/display-video/api/reference/rest/v4/advertisers.lineItems#LineItem.FIELDS.entity_status) - [containsEuPoliticalAds](/display-video/api/reference/rest/v4/advertisers.lineItems#LineItem.FIELDS.contains_eu_political_ads) This is a comma-separated list of fully qualified names of fields. Example: `\"user.displayName,photo\"`. |\n\n### Response body\n\nResponse message for LineItemService.BulkUpdateLineItems.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"updatedLineItemIds\": [ string ], \"failedLineItemIds\": [ string ], \"skippedLineItemIds\": [ string ], \"errors\": [ { object (/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation.Status) } ] } ``` |\n\n| Fields ||\n|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `updatedLineItemIds[]` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The IDs of successfully updated line items. |\n| `failedLineItemIds[]` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The IDs of line items that failed to update. |\n| `skippedLineItemIds[]` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The IDs of line items that are skipped for updates. For example, unnecessary mutates that will result in effectively no changes to line items will be skipped and corresponding line item IDs can be tracked here. |\n| `errors[]` | `object (`[Status](/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation.Status)`)` Errors returned by line items that failed to update. |\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)."]]