Authenticate with OAuth 2.0 using the DV360 API scope (https://www.googleapis.com/auth/display-video); ensure the service account or user has the appropriate DV360 advertiser role.
Identify the advertiser ID, insertion order ID, and desired line item type (e.g. LINE_ITEM_TYPE_DISPLAY_DEFAULT or LINE_ITEM_TYPE_VIDEO_DEFAULT) before making the creation call.
POST to https://displayvideo.googleapis.com/v3/advertisers/{ADVERTISER_ID}/lineItems with a body containing insertionOrderId, displayName, lineItemType, entityStatus (ENTITY_STATUS_DRAFT), pacing, frequencyCap, and budget.
Capture the lineItemId from the response and create targeting assignments by POSTing to /advertisers/{ADVERTISER_ID}/lineItems/{LINE_ITEM_ID}/targetingTypes/{TARGETING_TYPE}/assignedTargetingOptions.
Associate creatives with the line item via the creativeAssignments field in a PATCH call on the line item.
Update entityStatus to ENTITY_STATUS_ACTIVE when the line item is ready, and confirm the parent insertion order is also active.
Known gotchas
The DV360 API version is in the URL path (v3 as of 2025); using a deprecated version may return functional responses but the behavior of deprecated fields is not guaranteed.
Line items created in DRAFT status will not serve until both the line item and its parent insertion order are set to ENTITY_STATUS_ACTIVE and all required targeting is assigned.
Some targeting types are mutually exclusive or require the advertiser to have specific features enabled (e.g. audience targeting requires linked DMP or first-party data sources).
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp