Lines

Line budgets, bidding, and billing are tied together in support of a line goal. The line optimizes bidding towards an objective. But line goals are always always constrained by media, budget, and billing configurations that define that line.

Overview

In Yahoo DSP, a line is a subcomponent of a campaign that specifies an advertising strategy. Yahoo DSP defines each line by one or more ads, a goal type, and a set of budgetary and targeting parameters.

Each line item should represent a distinct targeting strategy. Using lines, a campaign can independently target diverse exchanges, deals, locations, demographics, ad positions, frequency, audiences, devices, days of the week, apps, URLs, page relevancy, mobile carriers, and languages.

Although you can specify budgets at both the campaign and line level; flight dates, frequency caps, and budgets specified at the campaign level override line-level configurations.

Endpoint

/traffic/lines

The action taken depends on the HTTP method and the parameters specified.

  • Use the GET method to read an existing line.

  • Use the POST method to create a new line.

  • Use the PUT method to update an existing line.

Resources

The platform provides the following resources for managing and tracking lines:

  • lines

  • schedules

  • feeList

  • conversionList

Line Object

The Line object contains the following fields:

Field

Description

Data Type

Create

Update

id

Specifies the line ID.

integer

N/A

Required

name

Specifies the unique name of the line.

string

Required

Optional

orderId

Specifies the campaign ID.

To learn more, refer to Campaigns.

integer

Required

Optional

mediaType

Specifies the media type served by the line.

Allowed values:

  • DISPLAY: To run an image ad, create a display line item within a campaign.

  • VIDEO: To run a video ad, create a video line item within a campaign.

  • AUDIO: To run an audio ad, create an audio line item within a campaign.

string

Required

N/A [1]

status

Specifies the current status of the line.

Allowed values:

  • ACTIVE: Active/running

  • PAUSED: Just ended

  • INACTIVE: Inactive/ended

The following status types are read-only:

  • STOP_TOTAL_BUDGET: Total budget reached

  • STOP_DAILY_BUDGET: Daily budget reached

  • NOT_STARTED: Not started yet

  • ENDED: Ended

  • ERROR: Error

string

Required

Optional

goalType

Specifies the goal type the platform will use to optimize line performance.

Different goal types are available depending on the mediaType specified.

Display Line

  • NONE: This is the default option. With this goal type, Yahoo DSP does not factor in a goal when it bids on impressions.

  • CPI: Establish a cost per installation goal by specifying the target CPI (goalAmount), Max CPM (bidPrice) amounts and at least one conversion rule.

  • CPC: Establish a cost per click goal by specifying the target CPC (goalAmount) and Max CPM (bidPrice) amounts.

  • CPA: Establish a cost per action goal by specifying the Target CPA (goalAmount) and Max CPM (bidPrice) amounts and at least one conversion rule.

  • CPSV: Establish a cost per store visit goal by specifying the target CPSV (goalAmount), Max CPM (bidPrice) amounts and at least one offline conversion rule.

  • VCPM: Establish a viewable CPM goal by specifying the target VCPM (goalAmount) and Max CPM (bidPrice) amounts.

  • ROAS: Establish a return on ad spend goal by specifying the Max ROAS (maxGoal) and Max CPM (bidPrice) amounts and at least one conversion rule.

  • MAXINVIEWRATE: Maximize Viewability: Establish a soft goal to maximize viewability by specifying the Max CPM (bidPrice) amount.

  • OCPC: (Fixed CPM billing only, i.e. when billingMethodType is CPM_PRICE) Establish an optimized CPC goal by specifying the target CPC (goalAmount) and profit margin percentage (marginGoal).

Video Line

  • NONE: This is the default option. With this goal type, Yahoo DSP does not factor in a goal when it bids on impressions.

  • CPI: Establish a cost per installation goal by specifying the target CPI (goalAmount), Max CPM (bidPrice) amounts and at least one conversion rule.

  • CPIA: Establish cost per incremental actor goal by specifying Target CPIA (goalAmount) and Max CPM (goalAmount) amounts and at least one pixel rule.

  • CPC: Establish a cost per click goal by specifying the target CPC (goalAmount) and Max CPM (bidPrice) amounts.

  • CPCV: Establish a cost per single completed view goal by specifying the Target CPCV (goalAmount), Max CPM (bidPrice) amounts. When billingMethodType is CPM_PRICE, additionally specify Max CPCV (maxGoal) amount.

  • CPSV: Establish a cost per store visit goal by specifying the target CPSV (goalAmount), Max CPM (bidPrice) amounts and at least one offline conversion rule.

  • VCPM: Establish a viewable CPM goal for oCPM and Fixed CPM-billed lines by specifying the target VCPM (goalAmount) and Max CPM (bidPrice) amounts.

  • MAXCOMPLETIONRATE: Maximize Completion Rate: This is a soft optimization feature that helps improve the video completion rate over time without sacrificing impression delivery. For this goal type, specify the CPM (bidPrice) amount.

  • MAXCTR: Maximize CTR: This is a soft optimization feature that helps improve the click-through rate (CTR) over time without sacrificing impression delivery. For this goal type, specify the CPM (bidPrice) amount.

  • MAXINVIEWRATE: Maximize Viewability: This is a soft optimization feature that helps improve the video viewability as defined by third-party measurement provider Moat.

    A viewable video impression requires that 50% of video ad pixels are active and in the viewable portion of the viewer’s browser for two consecutive seconds. For this goal type, specify the CPM (bidPrice) amount.

  • COMPLETION_HARD_THRESHOLD: Specify Max CPM (bidPrice) amount and the completionThreshold percentage. (This goal type requires a special role).

Audio Line

  • NONE: This is the default option. With this goal type, the DSP does not factor in a goal when it bids on impressions.

  • ECPM: Establish a CPM goal by specifying the target ECPM (goalAmount) and Max ECPM (bidPrice) amounts.

string

Required

Optional

goalModeType

Specifies the goal mode. The goal mode determines whether the optimizes for line delivery or line performance.

Allowed values:

  • SOFT: maximizes line performance while meeting line delivery objectives (spending the line’s total budget).

  • HARD: optimizes line delivery while matching or exceeding the specified target CPC goal.

string

Optional [2]

Optional

goalAmount

Specifies the target amount for certain goal types.

number

Required [3]

Optional

bidPrice

Specifies the maximum bid price (Maximum CPM Price) allowed for certain goal types.

number

Required

Optional

maxGoal

Specifies the maximum goal price.

number

Required [4]

Optional

marginGoal

Specifies the margin percentage.

number

Required [5]

Optional

isNativeEnabled

Specifies if the line can serve native ads. Native ads are not supported at this time for video lines.

  • true: enable native ad support.

  • false: disable native ad support.

boolean

Optional [6]

N/A [6]

pacingModeType

Specifies the pacing mode.

Allowed values:

  • EVEN: Spread the line budget evenly. If your daily budget is Auto Allocated, Yahoo DSP spreads the total budget evenly over the line’s flight dates. If your daily budget is a Specified Amount, Yahoo DSP spreads the specified daily budget evenly throughout the day.

  • ASAP: Bid on every impression opportunity that meets the line’s targeting criteria. If your daily budget is Auto Allocated, Yahoo DSP delivers ASAP until all remaining budget is consumed. If your daily budget is a Specified Amount, Yahoo DSP delivers ASAP until the specified amount is consumed.

  • PACE_AHEAD: Provides greater control over how line budgets are allocated during a flight by enabling you to over-pace daily budgets. If the daily budget is user-specified, the line will over-pace the daily budget every day until the total budget is consumed. The amount over-spent is determined by the pacingAcceleration specified. If the line’s daily budget is auto-allocated, the line’s spend rate is dynamically determined based on the line’s remaining total budget, the remaining days in the flight, and the line’s pacingAcceleration.

string

Optional

Optional [7]

pacingAcceleration

Specifies the percentage over the daily budget that the line may spend per day.

Ahead pacing is the product of the even pacing value multiplied by the pacing acceleration value: (remaining budget/remaining days) * pacing acceleration value.

integer

Required [8]

Optional [8]

appMarketingObjective

Defines the objective of the app marketing line. It can be set for a line with CPI goal type.

Allowed values:

  • APP_INSTALL: Dynamic suppression will suppress device ids that already have the app.

  • POST_INSTALL: Dynamic suppression is not done for the post-install objective.

  • RE_ENGAGEMENT: Dynamic suppression will be able to target the device ids that already have the app.

string

Optional [9]

Optional [9]

appUrl

The URL of the app that line is running for. It should be Google app URL if the line is targeting Android devices and Apple store app URL if the line is targeting IOS devices.

Example values: https://play.google.com/store/apps/details?id=com.espn.score_center&hl=en_US, https://apps.apple.com/pe/app/instagram/id389801252

string

Optional [10]

Optional [10]

appLocale

The region (country) of the Google play store or Apple app store where the app is uploaded.

Allowed values:

  • de-de: Germany

  • el-gr: Greece

  • en-au: Australia

  • en-ca: Canada

  • en-gb: United Kingdom

  • en-hk: Hong Kong

  • en-in: India

  • en-nz: New Zealand

  • en-ph: Philippines

  • en-sg: Singapore

  • en-us: United States

  • en-za: South Africa

  • es-ar: Argentina

  • es-cl: Chile

  • es-co: Colombia

  • es-cr: Costa Rica

  • es-es: Spain

  • es-mx: Mexico

  • es-pe: Peru

  • es-pr: Puerto Rico

  • es-us: United States (Spanish)

  • fr-ca: Canada (French)

  • fr-ch: Switzerland

  • fr-fr: France

  • id-id: Indonesia

  • it-it: Italy

  • ja-jp: Japan

  • ko-kr: South Korea

  • ms-my: Malaysia

  • pt-br: Brazil

  • sv-se: Sweden

  • th-th: Thailand

  • vi-vn: Vietnam

  • zh-cn: China

  • zh-tw: Taiwan

string

Optional [11]

Optional [11]

appId

The app ID is generated based on the appUrl and appLocale provided.

Example values: com.espn.score_center, 389801252

string

N/A

N/A

budgetType

Specifies whether the line uses impression-based budgeting or budgeting based on US dollars for the line.

Allowed values:

  • CURRENCY: Budget based on US Dollars.

  • IMPRESSION: Budget based on impressions. Impression-based budgeting enables you to control the number of impressions a line delivers, and respects the line’s Max CPM price, daily pacing, optimization goals, and targeting options.

string

Optional

Optional

billingMethodType

Specifies the billing method.

Allowed values:

  • CPM_PRICE: With Fixed CPM billing, you pay a fixed price per thousand impressions.

  • CPC: With Fixed CPC billing, you pay a fixed price per click.

  • MARGIN: (oCPM) With oCPM billing, Yahoo DSP predicts the probability that events (such as clicks, conversions, video completions, or impressions) will occur.

  • CPCV: (Video Line only) Cost Per Completed View for video. With CPCV billing, you only pay for completed video views. Note: If you choose CPCV, you must set pacingMode to EVEN and you can only set goalType to either CPCV or NONE.

string

Required

Optional

billingPrice

Specifies the amount paid based on the specified billingMethodType.

  • When billingMethodType is MARGIN (oCPM), specifies the profit margin percentage.

  • When billingMethodType is CPCV, this field represents the amount you want to pay for each completed video view.

  • When billingMethodType is CPM_PRICE, this field represents the amount you want to pay per thousand impressions.

  • When billingMethodType is CPC, this field represents the amount you want to pay for each click.

number

Optional

Optional

marginType

Specifies how the margin is calculated.

Allowed values:

  • TOTAL_BUDGET: Margin is calculated as a percentage of advertiser spend, which includes all costs (inventory, Yahoo fees, and variable costs).

  • BUYER_COST: Margin is calculated as a percentage of the buyer cost where buyer cost = inventory cost + Yahoo fees. This option excludes all variable costs.

Note: This is available to self-serve accounts only.

string

Required

Optional

completionThreshold

Specifies the completion threshold percentage.

integer

Required [12]

Optional

schedules

Specifies either a single budget schedule or multiple budget schedules.

To learn more, refer to Schedules Object.

Note: Multiple schedules are supported only when budgetType is CURRENCY.

object

Required

Optional

feeList

Track external costs such as ad serving, measurement, and brand safety costs. To help you better manage your margins, you can add up to six variable CPM costs to each line for tracking purposes.

To learn more, refer to FeeList Object.

Note: This is available to self-serve accounts only.

object

Optional

Optional

conversionList

Yahoo DSP can optimize a line with multiple conversion rules when you establish conversion values.

To learn more, refer to ConversionList Object.

object

Optional

Optional

bidMultiplierCap

A bid multiplier is a targeting-specific configuration that specifies the relative weight that should be given to targeted ad placement opportunities.

To learn more, refer to Bid Multiplier Cap Object.

object

N/A

N/A

channelType

Specifies the type of media used to build the line’s creatives.

Allowed values:

  • DOOH: To create digital-out-of-home line.

  • CTV: To create a connected TV line.

string

Optional

N/A [13]

enableBudgetRollover

Set to true to have any unspent budget at the end of a line’s current schedule automatically moved to the budget of its next schedule.

  • true - budget rollover is enabled.

  • false - budget rollover is disabled.

Important:

  • Budget rollover is only supported for multi-schedule lines.

  • If a schedule has no spend, rollover will not occur for that schedule.

  • The rollover will occur within 6 hours of the current schedule ending.

  • Any schedules that ended for a line before enabling budget rollover will not have their unspent budgets moved.

  • Any unspent budget will continue to move from schedule to schedule until enableBudgetRollover is disabled. The field can be enabled or disabled at any time.

  • Any over delivery for a line’s schedule will not be moved into the next schedule.

boolean

Optional

Optional

Schedules Object

The schedules object contains the following fields:

Field

Description

Data Type

Create

Update

id

Specifies ID of the budget schedule.

integer

N/A

N/A

name

Specifies the name of the schedule.

string

Required [14]

Optional

startDateStr

Specifies the start date of the line in the yyyy-MM-dd format.

string

Required

Required

endDateStr

Specifies the end date of the line in the yyyy-MM-dd format.

string

Required

Required

budget

Specifies the total budget of the line.

number

Required [15]

Optional

dailyBudget

Specifies the daily budget amount.

number

Required [16]

Optional

impBudget

Specifies the total number of impressions bought.

integer

Required [17]

Optional [17]

impDailyBudget

Specifies the total number of impressions bought per day.

number

Required [18]

Optional [18]

dailyBudgetType

Specifies the daily budget type.

Allowed values:

  • SPECIFIED_AMOUNT: Specify a daily spend cap for the line during the schedule period.

  • AUTO_ALLOCATED: Allocation based on the overall budget and the number of days left in the schedule.

string

Required

Optional

isScheduleDeleted

Specifies whether to delete a schedule. To delete a schedule, set the value to true.

Note: Only schedules that are set in the future and part of a multi-schedule line can be deleted.

boolean

N/A

Optional

FeeList Object

Note

This feature is only available for self-serve accounts.

The feeList object contains the following fields:

Field

Description

Data Type

Create

Update

id

Specifies the line fee ID.

integer

N/A

Required

name

Specifies a user-defined name.

string

Required

Optional

fee

Specifies the CPM amount: the amount you must pay per thousand impressions.

number

Required

Optional

typeName

Specifies the variable cost type.

Allowed values:

  • AD_SERVING: Track external ad serving cost.

  • AD_VERIFICATION: Track external ad verification cost.

  • AUDIENCE_MEASUREMENT: Track external ad measurement cost.

  • BRAND_SAFETY: Track external brand safety cost.

  • VIEWABILITY: Track external viewability cost.

  • OTHER: Any additional external cost.

Note: Once a variable cost is created, its type cannot be changed.

string

Required

N/A

ConversionList Object

Yahoo DSP can optimize a line with multiple conversion rules when you establish conversion values.

To obtain the available conversions, refer to Read Advertiser Beacon Lookups.

Each entry in the conversionList object contains the following fields:

Field

Description

Data Type

Create

Update

id

Specifies the conversion pixel ID.

integer

N/A

Required

name

Name of the conversion pixel. The name can not be specified or changed.

string

N/A

N/A

beaconId

Specifies the conversion pixel ID.

integer

Required

Required

lineId

Specifies the line ID.

Note: When updating an existing conversion, setting this field to 0 will remove the conversion.

integer

Optional

Required

acceptViewThrough

Specifies whether a view through is accepted.

boolean

Required

Optional

clickWindow

Specifies the amount of time after a click that the conversion is tracked.

integer

Required

Optional

clickWindowUnitType

Specifies the click window unit type.

Allowed values:

  • DAY: If specified, clickWindow can have a minimum value of 1 and maximum value of 45.

  • HOUR: If specified, clickWindow can have a minimum value of 1 and maximum value of 48.

  • MINUTE: If specified, clickWindow can have a minimum value of 1 and maximum value of 240.

string

Required

Optional

viewWindow

Specifies the time after the impression that conversion is tracked.

integer

Required

Optional

viewWindowUnitType

Specifies the unit type of the view window.

Allowed values:

  • DAY: If specified, viewWindow can have a minimum value of 1 and maximum value of 45.

  • HOUR: If specified, viewWindow can have a minimum value of 1 and maximum value of 48.

  • MINUTE: If specified, viewWindow can have a minimum value of 1 and maximum value of 240.

string

Required

Optional

viewBeaconValueDiscount

Specifies the discount value percentage. If no value is specified, defaults to 0.

number

Optional

Optional

beaconValuePc

Specifies the value of each conversion.

number

Required

Optional

isReportingOnly

Specifies if the conversion pixel is for reporting purposes only. This option can only be employed when line goalType is CPA, CPIA, ROAS. If no value is specified, defaults to false and the conversion pixel can be used for optimization.

  • true: for reporting only.

  • false: can be used for optimization.

boolean

Optional

Optional

Bid Multiplier Cap Object

The bidMultiplierCap object contains the following fields:

Field

Description

Data Type

Create

Update

multiplierCap

The current bid multiplier cap for the line.

number

N/A

N/A

Read Line

Get data for a specific line.

GET /traffic/lines/{id}

Parameters

Parameters

Parameter Type

Description

Data Type

Required

lineId

path

Specifies the line ID.

integer

Y

Example Request URL

GET https://dspapi.admanagerplus.yahoo.com/traffic/lines/630162

Example Response

{
  "response": {
    "id": 630162,
    "name": "display-line-multi-budget-15",
    "orderId": 462137,
    "bidPrice": 1,
    "goalAmount": 1.34,
    "maxGoal": 1.34,
    "marginGoal": 25,
    "billingPrice": 1,
    "completionThreshold": 0,
    "isNativeEnabled": false,
    "status": "PAUSED",
    "pacingModeType": "EVEN",
    "mediaType": "DISPLAY",
    "goalModeType": "SOFT",
    "goalType": "CPC",
    "billingMethodType": "MARGIN",
    "marginType": "TOTAL_BUDGET",
    "budgetType": "CURRENCY",
    "schedules": [
      {
        "id": 1307654,
        "name": "s2",
        "budget": 2000,
        "startDateStr": "2020-09-29T05:00:00Z",
        "endDateStr": "2020-12-29T05:59:59Z",
        "dailyBudgetType": "AUTO_ALLOCATED"
      },
      {
        "id": 1307653,
        "name": "s1",
        "budget": 1000,
        "dailyBudget": 150,
        "startDateStr": "2020-08-11T05:00:00Z",
        "endDateStr": "2020-09-29T04:59:59Z",
        "dailyBudgetType": "SPECIFIED_AMOUNT"
      }
    ],
    "feeList": [
      {
        "id": 12584,
        "name": "amc",
        "fee": 0.86,
        "typeName": "AD_SERVING"
      }
    ],
    "conversionList": [
      {
        "id": 7386,
        "lineId": 630162,
        "beaconId": 15776560,
        "acceptViewThrough": true,
        "clickWindow": 4,
        "viewWindow": 2,
        "name": "test rule 1",
        "viewBeaconValueDiscount": 0,
        "beaconValuePc": 1.05,
        "clickWindowUnitType": "DAY",
        "isReportingOnly": false,
        "viewWindowUnitType": "HOUR"
      }
    ]
  },
  "errors": null,
  "timeStamp": "2020-07-14T02:03:50.037Z"
}

Read Lines

Get a filtered list of lines.

GET /traffic/lines?orderId={orderId}&query={query}&page={page}&limit={limit}&sort={sort}&dir={dir}

All of the accepted parameters are query parameters.

Parameters

Parameter

Description

Data Type

Required

orderId

Specifies the campaign ID.

integer

Y

query

Specifies the search term.

Use URL encoding conventions (i.e. a space should be replaced with a + or %20).

string

N

page

Specifies the page number.

integer

N

limit

Specifies the total number of items to return. Maximum allowed value is 100.

integer

N

sort

Specifies the column to sort by.

string

N

dir

Specifies the sort direction. Allowed values:

  • ASC: data is sorted in ascending order.

  • DESC: data is sorted in descending order.

string

N

Example Request URL

GET https://dspapi.admanagerplus.yahoo.com/traffic/lines?orderId=462137&limit=2&sort=id&dir=desc&seatId=2

Example Response

{
  "response": [
    {
      "id": 630162,
      "name": "display-line-multi-budget-15",
      "orderId": 462137,
      "bidPrice": 1,
      "goalAmount": 1.34,
      "maxGoal": 1.34,
      "marginGoal": 25,
      "billingPrice": 1,
      "completionThreshold": 0,
      "isNativeEnabled": false,
      "status": "PAUSED",
      "pacingModeType": "EVEN",
      "mediaType": "DISPLAY",
      "goalModeType": "SOFT",
      "goalType": "CPC",
      "billingMethodType": "MARGIN",
      "marginType": "TOTAL_BUDGET",
      "budgetType": "CURRENCY",
      "schedules": [
        {
          "id": 1307654,
          "name": "s2",
          "budget": 2000,
          "startDateStr": "2020-09-29T05:00:00Z",
          "endDateStr": "2020-12-29T05:59:59Z",
          "dailyBudgetType": "AUTO_ALLOCATED"
        },
        {
          "id": 1307653,
          "name": "s1",
          "budget": 1000,
          "dailyBudget": 150,
          "startDateStr": "2020-08-11T05:00:00Z",
          "endDateStr": "2020-09-29T04:59:59Z",
          "dailyBudgetType": "SPECIFIED_AMOUNT"
        }
      ],
      "feeList": [
        {
          "id": 12584,
          "name": "amc",
          "fee": 0.86,
          "typeName": "AD_SERVING"
        }
      ],
      "conversionList": [
        {
          "id": 7386,
          "lineId": 630162,
          "beaconId": 15776560,
          "acceptViewThrough": true,
          "clickWindow": 4,
          "viewWindow": 2,
          "name": "test rule 1",
          "viewBeaconValueDiscount": 0,
          "beaconValuePc": 1.05,
          "clickWindowUnitType": "DAY",
          "isReportingOnly": false,
          "viewWindowUnitType": "HOUR"
        }
      ]
    },
    {
      "id": 630161,
      "name": "display-line-multi-budget-12",
      "orderId": 462137,
      "bidPrice": 1,
      "goalAmount": 1.34,
      "maxGoal": 1.34,
      "marginGoal": 25,
      "billingPrice": 1,
      "completionThreshold": 0,
      "isNativeEnabled": false,
      "status": "PAUSED",
      "pacingModeType": "EVEN",
      "mediaType": "DISPLAY",
      "goalModeType": "SOFT",
      "goalType": "CPC",
      "billingMethodType": "MARGIN",
      "marginType": "TOTAL_BUDGET",
      "budgetType": "CURRENCY",
      "schedules": [
        {
          "id": 1307652,
          "name": "s2",
          "budget": 2000,
          "startDateStr": "2020-09-29T05:00:00Z",
          "endDateStr": "2020-12-29T05:59:59Z",
          "dailyBudgetType": "AUTO_ALLOCATED"
        },
        {
          "id": 1307651,
          "name": "s1",
          "budget": 1000,
          "dailyBudget": 150,
          "startDateStr": "2020-08-11T05:00:00Z",
          "endDateStr": "2020-09-29T04:59:59Z",
          "dailyBudgetType": "SPECIFIED_AMOUNT"
        }
      ],
      "feeList": [],
      "conversionList": []
    }
  ],
  "errors": null,
  "timeStamp": "2020-07-14T02:28:12.227Z"
}

Create Line

Create a new line.

POST /traffic/lines/
  • To create a display line, specify DISPLAY as the line’s mediaType value.

  • To create a video line, specify VIDEO as the line’s mediaType value.

  • To create an audio line, specify AUDIO as the line’s mediaType value.

  • To create a DOOH line, specify DOOH as the line’s channelType value.

  • To create a CTV line, specify CTV as the line’s channelType value.

Important

A line cannot be created in ACTIVE status. Use PAUSED or INACTIVE status instead. After at least one type of geography targeting is enabled, the line can be activated with a PUT request. Refer to Geography Targeting and Example: Activate Paused Line for more details.

Parameters

All fields are specified in the body of application/json payload.

Example Request URL

POST https://dspapi.admanagerplus.yahoo.com/traffic/lines

Example: Create (Margin) oCPM Display Line

To create a DISPLAY line with MARGIN (oCPM) billing type, refer to the table and payload below.

Field

Value

Type

mediaType

DISPLAY

string

billingMethodType

MARGIN

string

billingPrice

Desired % profit margin

number

Example Request Body

{
  "name": "display-line-ocpm-1",
  "orderId": 462137,
  "status": "PAUSED",
  "mediaType": "DISPLAY",
  "pacingModeType": "EVEN",
  "budgetType": "CURRENCY",
  "goalType": "CPC",
  "billingMethodType": "MARGIN",
  "billingPrice": 2,
  "marginType": "TOTAL_BUDGET",
  "bidPrice": 1,
  "maxGoal": 1,
  "marginGoal": 25,
  "goalAmount": 1,
  "isNativeEnabled": false,
  "completionThreshold": 0,
  "schedules": [
    {
      "startDateStr": "2020-09-29",
      "endDateStr": "2020-12-28",
      "budget": 2000,
      "dailyBudgetType": "AUTO_ALLOCATED"
    }
  ]
}

Example: Create oCPC Display Line

To create a DISPLAY line with oCPC goal type, refer to the table and payload below.

Field

Value

Type

mediaType

DISPLAY

string

billingMethodType

CPM_PRICE

string

goalType

OCPC

string

goalAmount

Target CPC

number

marginGoal

Profit Margin Goal %

number

Example Request Body

{
  "name": "display-line-ocpc-1",
  "orderId": 462137,
  "mediaType": "DISPLAY",
  "billingMethodType": "CPM_PRICE",
  "billingPrice": 1,
  "marginType": "TOTAL_BUDGET",
  "bidPrice": 1,
  "goalType": "OCPC",
  "maxGoal": 1.1,
  "marginGoal": 25,
  "status": "PAUSED",
  "goalAmount": 1.1,
  "pacingModeType": "EVEN",
  "isNativeEnabled": false,
  "completionThreshold": 0,
  "schedules": [
    {
      "startDateStr": "2020-08-11",
      "endDateStr": "2020-09-28",
      "budget": 1000,
      "dailyBudget": 150,
      "dailyBudgetType": "SPECIFIED_AMOUNT"
    }
  ]
}

Example: Create CPCV Video Line

To create a VIDEO line with CPCV billing and goal, refer to the table and payload below.

Field

Value

Type

mediaType

VIDEO

string

billingMethodType

CPCV

string

goalType

CPCV

string

billingPrice

Amount you want to pay for each completed video view

number

bidPrice

Max CPM price

number

goalAmount

Target CPCV

number

pacingMode

EVEN

string

maxGoal

Maximum goal price

number

Example Request Body

{
  "name": "video-line-cpcv-single-budget-1",
  "orderId": 462137,
  "status": "PAUSED",
  "mediaType": "VIDEO",
  "pacingModeType": "EVEN",
  "budgetType": "CURRENCY",
  "goalType": "CPCV",
  "billingMethodType": "CPCV",
  "billingPrice": 1,
  "marginType": "TOTAL_BUDGET",
  "bidPrice": 1,
  "maxGoal": 1,
  "marginGoal": 25,
  "goalAmount": 1,
  "isNativeEnabled": false,
  "completionThreshold": 0,
  "schedules": [
    {
      "startDateStr": "2020-08-11",
      "endDateStr": "2021-01-28",
      "budget": 1000,
      "dailyBudget": 150,
      "dailyBudgetType": "SPECIFIED_AMOUNT"
    }
  ]
}

Example: Create Line with Currency Daily Budget & Single Schedule

To create a DISPLAY line with a specified daily budget and a single budget schedule, refer to the table and payload below.

Field

Value

Type

mediaType

DISPLAY

string

budgetType

CURRENCY

string

goalType

CPC

string

goalAmount

Target CPC

number

marginGoal

Profit Margin Goal %

number

Example Request Body

{
  "name": "display-line-single-budget-1",
  "orderId": 462137,
  "status": "PAUSED",
  "mediaType": "DISPLAY",
  "budgetType": "CURRENCY",
  "goalType": "CPC",
  "billingMethodType": "MARGIN",
  "billingPrice": 1,
  "marginType": "TOTAL_BUDGET",
  "pacingModeType": "EVEN",
  "bidPrice": 1,
  "marginGoal": 25,
  "goalAmount": 1.34,
  "isNativeEnabled": false,
  "completionThreshold": 0,
  "schedules": [
    {
      "startDateStr": "2020-08-11",
      "endDateStr": "2021-01-28",
      "budget": 1000,
      "dailyBudget": 150,
      "dailyBudgetType": "SPECIFIED_AMOUNT"
    }
  ],
  "conversionList": [
    {
      "beaconId": 15776560,
      "acceptViewThrough": true,
      "clickWindow": 4,
      "viewWindow": 2,
      "viewBeaconValueDiscount": 0,
      "beaconValuePc": 1.05,
      "clickWindowUnitType": "DAY",
      "viewWindowUnitType": "HOUR"
    }
  ],
  "feeList": [
    {
      "typeName": "AD_SERVING",
      "name": "amc",
      "fee": 0.86
    }
  ]
}

Example: Create Impression Budget Video Line

To create a VIDEO line with auto allocated Impression-based budget, refer to the table and payload below.

Field

Value

Type

mediaType

VIDEO

string

billingMethodType

CPM_PRICE

string

billingPrice

Amount you want to pay for each 1000 impressions

number

schedules.impBudget

Total number of impressions you plan to buy

integer

schedules.dailyBudgetType

AUTO_ALLOCATED

string

Example Request Body

{
  "name": "video-line-single-budget-imp-6",
  "orderId": 462137,
  "bidPrice": 9,
  "marginGoal": 25,
  "billingPrice": 9,
  "isNativeEnabled": false,
  "completionThreshold": 60,
  "pacingAcceleration": 0,
  "status": "PAUSED",
  "pacingModeType": "EVEN",
  "mediaType": "VIDEO",
  "goalType": "COMPLETION_HARD_THRESHOLD",
  "goalAmount": 1.1,
  "maxGoal": 1.15,
  "budgetType": "IMPRESSION",
  "billingMethodType": "CPM_PRICE",
  "marginType": "TOTAL_BUDGET",
  "schedules": [
    {
      "startDateStr": "2020-08-11",
      "endDateStr": "2021-01-28",
      "impBudget": 7111,
      "dailyBudgetType": "AUTO_ALLOCATED"
    }
  ]
}

Example: Create Multiple Budget Line

To create a line with multiple budgets, refer to the payload below.

Example Request Body

{
  "name": "display-line-multi-budget-1",
  "orderId": 462137,
  "status": "PAUSED",
  "mediaType": "DISPLAY",
  "budgetType": "CURRENCY",
  "goalType": "CPC",
  "billingMethodType": "MARGIN",
  "billingPrice": 1,
  "marginType": "TOTAL_BUDGET",
  "pacingModeType": "EVEN",
  "bidPrice": 1,
  "marginGoal": 25,
  "goalAmount": 1.34,
  "isNativeEnabled": false,
  "completionThreshold": 0,
  "schedules": [
    {
      "name": "s1",
      "startDateStr": "2020-08-11",
      "endDateStr": "2020-09-28",
      "budget": 1000,
      "dailyBudget": 150,
      "dailyBudgetType": "SPECIFIED_AMOUNT"
    },
    {
      "name": "s2",
      "startDateStr": "2020-09-29",
      "endDateStr": "2020-12-28",
      "budget": 2000,
      "dailyBudgetType": "AUTO_ALLOCATED"
    }
  ]
}

Example: Create Line with AppMarketing Objective

To create a line with CPI goal and app marketing objective, refer to the table and payload below.

Note

At least one conversion pixel is required when the goal type is CPI.

Field

Value

Type

appMarketingObjective

RE_ENGAGEMENT

string

appUrl

App URL

string

appLocale

en-us

string

conversionList

Conversion pixel

array

Example Request Body

{
  "name": "test-video5599",
  "orderId": 312515,
  "status": "PAUSED",
  "mediaType": "VIDEO",
  "pacingModeType": "EVEN",
  "budgetType": "CURRENCY",
  "goalType": "CPI",
  "billingMethodType": "CPCV",
  "dailyBudgetType": "SPECIFIED_AMOUNT",
  "dailyBudget": 1.25,
  "billingPrice": 1,
  "marginType": "TOTAL_BUDGET",
  "bidPrice": 1,
  "maxGoal": 1,
  "marginGoal": 25,
  "goalAmount": 1,
  "isNativeEnabled": false,
  "completionThreshold": 0,
  "schedules": [
    {
      "startDateStr": "2020-08-11",
      "endDateStr": "2021-01-28",
      "impBudget": 7111,
      "dailyBudgetType": "AUTO_ALLOCATED"
    }
  ],
  "appMarketingObjective": "RE_ENGAGEMENT",
  "appUrl": "https://apps.apple.com/us/app/colorsnap-visualizer-iphone/id316256242&locale=en-us",
  "appLocale": "en-us",
  "conversionList": [
    {
      "beaconId": 15776560,
      "acceptViewThrough": true,
      "clickWindow": 4,
      "viewWindow": 2,
      "viewBeaconValueDiscount": 0,
      "beaconValuePc": 1.05,
      "clickWindowUnitType": "DAY",
      "viewWindowUnitType": "HOUR"
    }
  ]
}

Example: Create DOOH Line

To create a Digital-Out-Of-Home line, refer to the table and payload below.

Field

Value

Type

channelType

DOOH

string

mediaType

DISPLAY or VIDEO

string

billingMethodType

MARGIN or CPM_PRICE

string

conversionList

Should be empty array

array

goalType

Should be NONE

string

Example Request Body

{
    "name": "display-DOOH-line",
    "orderId": 235472,
    "status": "PAUSED",
    "mediaType": "DISPLAY",
    "pacingModeType": "EVEN",
    "budgetType": "CURRENCY",
    "billingMethodType": "CPM_PRICE",
    "billingPrice": 0.1,
    "marginType": "TOTAL_BUDGET",
    "bidPrice": 0.1,
    "maxGoal": 1,
    "marginGoal": 25,
    "goalAmount": 1,
    "isNativeEnabled": false,
    "completionThreshold": 0,
    "goalType":"NONE",
    "channelType":"DOOH",
    "schedules": [
        {
            "startDateStr": "2022-07-21",
            "endDateStr": "2022-07-25",
            "budget": 1,
            "dailyBudgetType": "AUTO_ALLOCATED"
        }
    ]
}

Example: Create a CTV Line

To create a Connected TV line, refer to the table and payload below.

Field

Value

Type

channelType

CTV

string

mediaType

VIDEO

string

Example Request Body

{
    "name": "CTV line",
    "orderId": 1675983,
    "status": "PAUSED",
    "mediaType": "VIDEO",
    "pacingModeType": "EVEN",
    "budgetType": "CURRENCY",
    "billingMethodType": "CPM_PRICE",
    "billingPrice": 0.1,
    "marginType": "TOTAL_BUDGET",
    "bidPrice": 0.1,
    "maxGoal": 1,
    "marginGoal": 25,
    "goalAmount": 1,
    "isNativeEnabled": false,
    "completionThreshold": 0,
    "goalType":"NONE",
    "channelType":"CTV",
    "schedules": [
        {
            "startDateStr": "2024-01-09",
            "endDateStr": "2024-01-25",
            "budget": 1,
            "dailyBudgetType": "AUTO_ALLOCATED"
        }
    ]

Update Line

Update an existing line.

PUT /traffic/lines/{id}

Partial updates are supported (with the exception of feeList, refer to note below); values of supported fields which are not in the payload will remain unchanged.

Note

When updating variable costs using feeList, any existing entries will be removed automatically unless they included in the payload.

Parameters

The Line id is specified in the url path. All other fields are specified in the body of the application/json payload.

Example: Activate Paused Line

The following payload shows how to change the line status from PAUSED to ACTIVE.

Example Request Body

{
  "status": "ACTIVE"
}

Example: Update Line Budget & Start/End Dates

The following payload shows how to update the total budget and start/end dates of a line.

Example Request Body

{
  "schedules": [
    {
      "startDateStr": "2020-08-11",
      "endDateStr": "2021-01-31",
      "impBudget": 10000
    }
  ]
}

Example: Update Line with Conversion Pixel

The following payload shows how to add a conversion pixel to an existing line.

Example Request Body

{
  "conversionList": [
    {
      "lineId": 355775,
      "beaconId": 762,
      "acceptViewThrough": true,
      "viewWindow": 2,
      "clickWindow": 4,
      "clickWindowUnitType": "DAY",
      "viewWindowUnitType": "HOUR",
      "beaconValuePc": 1.2
    }
  ]
}

Example: Remove an Existing Conversion Pixel

The following payload shows how to remove an existing conversion pixel from a line. An existing conversion pixel can be removed by setting lineId to 0.

Example Request Body

{
  "conversionList": [
    {
      "id": 144856,
      "lineId": 0,
      "beaconId": 762
    }
  ]
}

Remove Future Schedules for Multi-Schedule Lines

Schedules set in the future for multi-schedule lines can be removed.

PUT /traffic/lines/{id}

To delete a schedule, set isScheduleDeleted to true in the specific budget schedule object.

Parameters

Specify the Line id in the URL path and all other fields in the request body.

Sample Request URL

PUT https://dspapi.admanagerplus.yahoo.com/traffic/lines/2188261

Sample Request Body

{
    "schedules": [
        {
            "id": 2232962,
            "name": "sc1",
            "budget": 100.0,
            "startDateStr": "2022-07-18",
            "endDateStr": "2022-07-29",
            "dailyBudgetType": "AUTO_ALLOCATED"
        },
        {
            "id": 2388411,
            "name": "sc2",
            "budget": 100.0,
            "startDateStr": "2022-11-12",
            "endDateStr": "2022-11-29",
            "dailyBudgetType": "AUTO_ALLOCATED",
            "isScheduleDeleted": true
        }
    ]
}

Sample Response

{
    "response": {
        "id": 2188261,
        "name": "MultiLine-1",
        "orderId": 429394,
        "bidPrice": 1.0,
        "goalAmount": 1.0,
        "maxGoal": 1.0,
        "billingPrice": 50.0,
        "completionThreshold": 0.0,
        "isNativeEnabled": false,
        "channelType": "DEFAULT",
        "status": "PAUSED",
        "pacingModeType": "EVEN",
        "mediaType": "DISPLAY",
        "goalModeType": "SOFT",
        "goalType": "CPC",
        "billingMethodType": "MARGIN",
        "marginType": "TOTAL_BUDGET",
        "budgetType": "CURRENCY",
        "schedules": [
            {
               "id": 2232962,
               "name": "sc1",
               "budget": 100.0,
               "startDateStr": "2022-07-18T07:00:00Z",
               "endDateStr": "2022-07-30T06:59:59Z",
               "dailyBudgetType": "AUTO_ALLOCATED"
            }
        ],
        "feeList": [],
        "conversionList": []
    },
    "errors": null,
    "timeStamp": "2022-10-12T10:27:11.607Z"
}

Delete Lines

The DSP Traffic API does not support deletion of lines.