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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-09-18 UTC."],[[["\u003cp\u003eBulk edits negative keywords within a specified negative keyword list, allowing for atomic deletion and creation of keywords.\u003c/p\u003e\n"],["\u003cp\u003eUtilizes an HTTP POST request with specific path parameters to identify the advertiser and negative keyword list.\u003c/p\u003e\n"],["\u003cp\u003eRequires providing a request body containing lists of negative keywords to delete and create.\u003c/p\u003e\n"],["\u003cp\u003eReturns a response body listing successfully created negative keywords or an empty list if none were created.\u003c/p\u003e\n"],["\u003cp\u003eNeeds authorization with the \u003ccode\u003ehttps://www.googleapis.com/auth/display-video\u003c/code\u003e scope for access.\u003c/p\u003e\n"]]],["This API operation allows bulk editing of negative keywords within a list. It utilizes a POST request to a specific URL including the `advertiserId` and `negativeKeywordListId`. The request body defines `deletedNegativeKeywords` to remove and `createdNegativeKeywords` to add. The response returns a list of successfully created `negativeKeywords`. This process is atomic, ensuring either complete success or failure, without any partial results. This method requires authorization with the specified OAuth scope.\n"],null,["| Display \\& Video 360 API v1 has been sunset.\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.BulkEditNegativeKeywordsResponse.SCHEMA_REPRESENTATION)\n- [Authorization Scopes](#body.aspect)\n- [Try it!](#try-it)\n\nBulk edits negative keywords in a single negative keyword list.\n\nThe operation will delete the negative keywords provided in [BulkEditNegativeKeywordsRequest.deleted_negative_keywords](/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords/bulkEdit#body.request_body.FIELDS.deleted_negative_keywords) and then create the negative keywords provided in [BulkEditNegativeKeywordsRequest.created_negative_keywords](/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords/bulkEdit#body.request_body.FIELDS.created_negative_keywords).\n\nThis operation is guaranteed to be atomic and will never result in a partial success or partial failure.\n\nHTTP request\n\n`POST https://displayvideo.googleapis.com/v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListId}/negativeKeywords:bulkEdit`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\nPath parameters\n\n| Parameters ||\n|-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `advertiserId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs. |\n| `negativeKeywordListId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` Required. The ID of the parent negative keyword list to which the negative keywords belong. |\n\nRequest body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"deletedNegativeKeywords\": [ string ], \"createdNegativeKeywords\": [ { object (/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword) } ] } ``` |\n\n| Fields ||\n|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `deletedNegativeKeywords[]` | `string` The negative keywords to delete in batch, specified as a list of [keyword_values](/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword.FIELDS.keyword_value). |\n| `createdNegativeKeywords[]` | `object (`[NegativeKeyword](/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword)`)` The negative keywords to create in batch, specified as a list of [NegativeKeywords](/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword). |\n\nResponse body\n\nIf successful, the response body contains data with the following structure:\nResponse message for NegativeKeywordService.BulkEditNegativeKeywords.\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"negativeKeywords\": [ { object (/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword) } ] } ``` |\n\n| Fields ||\n|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `negativeKeywords[]` | `object (`[NegativeKeyword](/display-video/api/reference/rest/v1/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword)`)` The list of negative keywords that have been successfully created. This list will be absent if empty. |\n\nAuthorization 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](https://developers.google.com/identity/protocols/OAuth2)."]]