[null,null,["อัปเดตล่าสุด 2025-07-25 UTC"],[[["\u003cp\u003eBulk edits negative keywords in a single negative keyword list, by deleting and creating them atomically to avoid partial failures.\u003c/p\u003e\n"],["\u003cp\u003eUses an HTTP POST request to the specified endpoint with advertiser and negative keyword list IDs as path parameters.\u003c/p\u003e\n"],["\u003cp\u003eThe request body requires a JSON payload specifying negative keywords to be deleted and created.\u003c/p\u003e\n"],["\u003cp\u003eThe response includes a list of successfully created negative keywords, if any.\u003c/p\u003e\n"],["\u003cp\u003eAuthorization requires the \u003ccode\u003ehttps://www.googleapis.com/auth/display-video\u003c/code\u003e OAuth scope.\u003c/p\u003e\n"]]],["This content describes a bulk operation for managing negative keywords within a negative keyword list. The key action is to perform bulk edits, which involves deleting specified `keyword_values` and creating new `NegativeKeywords`. This operation uses a `POST` HTTP request to a specific URL, requiring `advertiserId` and `negativeKeywordListId` in the path. The request body contains lists of negative keywords to be deleted and created. The response body returns a list of successfully created negative keywords, and the operation is guaranteed to be atomic.\n"],null,["# Method: advertisers.negativeKeywordLists.negativeKeywords.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 - [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/v3/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/v3/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\n### HTTP request\n\n`POST https://displayvideo.googleapis.com/v3/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListId}/negativeKeywords:bulkEdit`\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 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\n### Request 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/v3/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/v3/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword.FIELDS.keyword_value). |\n| `createdNegativeKeywords[]` | `object (`[NegativeKeyword](/display-video/api/reference/rest/v3/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword)`)` The negative keywords to create in batch, specified as a list of [NegativeKeywords](/display-video/api/reference/rest/v3/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword). |\n\n### Response body\n\nResponse message for NegativeKeywordService.BulkEditNegativeKeywords.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"negativeKeywords\": [ { object (/display-video/api/reference/rest/v3/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword) } ] } ``` |\n\n| Fields ||\n|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `negativeKeywords[]` | `object (`[NegativeKeyword](/display-video/api/reference/rest/v3/advertisers.negativeKeywordLists.negativeKeywords#NegativeKeyword)`)` The list of negative keywords that have been successfully created. This list will be absent if empty. |\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)."]]