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.
Whether this line item will serve European Union political ads.
If containsEuPoliticalAds has been set to DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING in the parent advertiser, then this field will be assigned DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING if not otherwise specified. This field can then be updated using the UI, API, or Structured Data Files.
Response body
If successful, the response body contains data with the following structure:
[[["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 2025-08-21 UTC."],[[["\u003cp\u003eDuplicates an existing line item within a specified advertiser, returning the ID of the new line item.\u003c/p\u003e\n"],["\u003cp\u003eThe API request requires the advertiser ID and the ID of the line item to be duplicated.\u003c/p\u003e\n"],["\u003cp\u003eYou can specify a display name for the new line item in the request body.\u003c/p\u003e\n"],["\u003cp\u003eThis method may experience high latency, so increasing your default timeout is recommended.\u003c/p\u003e\n"],["\u003cp\u003eYouTube & Partners line items cannot be duplicated using this API.\u003c/p\u003e\n"]]],["This content describes how to duplicate a line item via an API, excluding YouTube & Partners line items. The HTTP request uses a `POST` method with `advertiserId` and `lineItemId` as required path parameters. The request body requires a `targetDisplayName` for the new line item. Successful responses return a JSON with a `duplicateLineItemId` field. The API call requires OAuth scope authorization and regularly experiences high latency, recommending increased timeouts.\n"],null,["# Method: advertisers.lineItems.duplicate\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.DuplicateLineItemResponse.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nDuplicates a line item. Returns the ID of the created line item if successful.\n\nYouTube \\& Partners line items cannot be created or updated using the API.\n\n**This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.\n\n### HTTP request\n\n`POST https://displayvideo.googleapis.com/v3/advertisers/{advertiserId}/lineItems/{lineItemId}:duplicate`\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| `lineItemId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` Required. The ID of the line item to duplicate. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"targetDisplayName\": string, \"containsEuPoliticalAds\": enum (/display-video/api/reference/rest/v3/EuPoliticalAdvertisingStatus) } ``` |\n\n| Fields ||\n|--------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `targetDisplayName` | `string` The display name of the new line item. Must be UTF-8 encoded with a maximum size of 240 bytes. |\n| `containsEuPoliticalAds` | `enum (`[EuPoliticalAdvertisingStatus](/display-video/api/reference/rest/v3/EuPoliticalAdvertisingStatus)`)` Whether this line item will serve European Union political ads. If [containsEuPoliticalAds](/display-video/api/reference/rest/v3/advertisers#Advertiser.FIELDS.contains_eu_political_ads) has been set to `DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING` in the parent advertiser, then this field will be assigned `DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING` if not otherwise specified. This field can then be updated using the UI, API, or Structured Data Files. \u003cbr /\u003e | **Warning** : Starting **September 8, 2025** , this field must be set. If not, either the value `DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING` will be assigned to the line item if the parent advertiser has declared that it does not serve EU political ads, or **the request will fail**. \u003cbr /\u003e |\n\n### Response body\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|-------------------------------------------|\n| ``` { \"duplicateLineItemId\": string } ``` |\n\n| Fields ||\n|-----------------------|----------------------------------------------------------------------------------------------------------------------|\n| `duplicateLineItemId` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The ID of the created line item. |\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)."]]