--- title: "Lines" slug: "lines" updated: 2026-10-02T20:28:23Z published: 2026-10-02T20:28:23Z canonical: "help.yahooinc.com/lines" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.yahooinc.com/llms.txt > Use this file to discover all available pages before exploring further. # 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 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 ```plaintext /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. | `integer` | Required | Optional | | `packageId` | Specifies the package ID. | `integer` | Optional | 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. Once the line is created, this value cannot be changed. | `string` | Required | N/A | | `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 - `ARCHIVED`: The campaign has been archived. ***Note:*** The status must be reset to `ACTIVE` in the following cases: - When the `endDate` is extended after the original end date has passed. - When the `scheduleBudget` is increased after the original budget has been reached or exceeded. | `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** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. Weighted CPA can be enabled using the `weight` parameter on items on the `conversionList`. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100. - `CPC`: Establish a cost per click goal by specifying the target CPC (`goalAmount`) and Max CPM (`bidPrice`) amounts. - `CPI`: Establish a cost per installation goal by specifying the target CPI (`goalAmount`), Max CPM (`bidPrice`) amounts and at least one conversion rule. **Note**: The objective type for this goal must be `appMarketingObjective`. - `CPIA`: Establish cost per incremental actor goal by specifying Target CPIA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one pixel rule. **Note**: Lift measurement should be enabled in order to use this goal. - `CUSTOMER_VALUE_OPTIMIZATION`: Establish a soft goal to maximize overall customer value by specifying the Max CPM (`bidPrice`) amount. **Note**: Only for display lines when the campaign object `yahooBlueprintPerformance` is set to `true`, refer to [Campaigns](/dsp-api/docs/campaigns). - `ECPM`: An effective cost per mille (ECPM) goal aims at minimizing CPM. Specify the Max CPM (`bidPrice`) amount. - `IFO_CPA`: Establish a Cost per Action (CPA) goal to maximize In-flight outcomes purchases or conversions as defined by the Line's IFO Rule(s), by specifying the Target CPA (goalAmount) and Max CPM (bidPrice) amounts and at least one IFO conversion rule. Weighted CPA can be enabled using the weight parameter on items on the conversionList. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100. **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `IFO_ROAS`: Establish a return of ad spend (ROAS) goal to maximize In-flight outcomes purchase value or conversion value as defined by the Line's IFO Rule(s), by specifying the Max CPM (bidPrice) amounts and at least one IFO conversion rule. **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `NONE`: This is the default option. With this goal type, Yahoo DSP does not factor in a goal when it bids on impressions. - `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`). **Note**: Do not use `OCPC` for display lines when the campaign `yahooBlueprintPerformance` is set to `true`, refer to [Campaigns](/dsp-api/docs/campaigns). - `REACH`: DSP optimizes an oCPM-billed Reach goal to reach as many unique users/households as possible within the line budget, prioritizing new users/households before repeat exposures. Specify the Max CPM (`bidPrice`) amount. - `ROAS`: Establish a return on ad spend goal by specifying the Max CPM (`bidPrice`) amount and at least one conversion rule. - `VCPM`: Establish a viewable CPM goal by specifying the target VCPM (`goalAmount`) and Max CPM (`bidPrice`) amounts. **Video Line** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. Weighted CPA can be enabled using the `weight` parameter on items on the `conversionList`. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100. - `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` or `CPCV`, additionally specify Max CPCV (`maxGoal`) amount. - `CPI`: Establish a cost per installation goal by specifying the target CPI (`goalAmount`), Max CPM (`bidPrice`) amounts and at least one conversion rule. **Note**: The objective type for this goal must be `appMarketingObjective` - `CPIA`: Establish cost per incremental actor goal by specifying Target CPIA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one pixel rule. Note: Lift measurement should be enabled in order to use this goal. - `CUSTOMER_VALUE_OPTIMIZATION`: Establish a soft goal to maximize overall customer value by specifying the Max CPM (bidPrice) amount. **Note**: Only for video lines when the campaign object `yahooBlueprintPerformance` is set to `true`, refer to [Campaigns](/dsp-api/docs/campaigns). - `ECPM`: An effective cost per mille (ECPM) goal aims at minimizing CPM. Specify the Max CPM (`bidPrice`) amount. - `IFO_CPA`: Establish a Cost per Action (CPA) goal to maximize In-flight outcomes purchases or conversions as defined by the Line's IFO Rule(s), by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one IFO conversion rule. Weighted CPA can be enabled using the weight parameter on items on the conversionList. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100. **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `IFO_ROAS`: Establish a return of ad spend (ROAS) goal to maximize In-flight outcomes purchase value or conversion value as defined by the Line's IFO Rule(s), by specifying the Max CPM (bidPrice) amounts and at least one IFO conversion rule. **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `NONE`: This is the default option. With this goal type, Yahoo DSP does not factor in a goal when it bids on impressions. - `REACH`: DSP optimizes an oCPM-billed Reach goal to reach as many unique users/households as possible within the line budget, prioritizing new users/households before repeat exposures. Specify the Max CPM (`bidPrice`) amount. - `ROAS`: Establish a return on ad spend goal by specifying the Max CPM (`bidPrice`) amount and at least one 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. **Audio Line** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. Weighted CPA can be enabled using the `weight` parameter on items on the `conversionList`. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100. - `CPCL`: Establish a cost per single completed listen goal by specifying the Target CPCL (`goalAmount`), Max CPM (`bidPrice`) amounts. When `billingMethodType` is `CPM_PRICE` or `CPCL`, additionally specify Max CPCL (`maxGoal`) amount. - `CPI`: Establish a cost per installation goal by specifying the target CPI (`goalAmount`), Max CPM (`bidPrice`) amounts and at least one conversion rule. **Note**: The objective type for this goal must be `appMarketingObjective`. - `ECPM`: An effective cost per mille (ECPM) goal aims at minimizing CPM. Specify the Max CPM (`bidPrice`) amount. - `IFO_CPA`: Establish a Cost per Action (CPA) goal to maximize In-flight outcomes purchases or conversions as defined by the Line's IFO Rule(s), by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one IFO conversion rule. Weighted CPA can be enabled using the weight parameter on items on the conversionList. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100 **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `IFO_ROAS`: Establish a return of ad spend (ROAS) goal to maximize In-flight outcomes purchase value or conversion value as defined by the Line's IFO Rule(s), by specifying the Max CPM (bidPrice) amounts and at least one IFO conversion rule. **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `NONE`: This is the default option. With this goal type, the DSP does not factor in a goal when it bids on impressions. - `REACH`: DSP optimizes an oCPM-billed Reach goal to reach as many unique users/households as possible within the line budget, prioritizing new users/households before repeat exposures. Specify the Max CPM (`bidPrice`) amount. - `ROAS`: Establish a return on ad spend goal by specifying the Max CPM (`bidPrice`) amount and at least one conversion rule. **Connected TV (CTV) Line** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. Weighted CPA can be enabled using the `weight` parameter on items on the `conversionList`. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100. - `CPI`: Establish a cost per installation goal by specifying the target CPI (`goalAmount`), Max CPM (`bidPrice`) amounts and at least one conversion rule. **Note**: The objective type for this goal must be `appMarketingObjective`. - `ECPM`: An effective cost per mille (ECPM) goal aims at minimizing CPM. Specify the Max CPM (`bidPrice`) amount. - `IFO_CPA`: Establish a Cost per Action (CPA) goal to maximize In-flight outcomes purchases or conversions as defined by the Line's IFO Rule(s), by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one IFO conversion rule. Weighted CPA can be enabled using the weight parameter on items on the conversionList. Each non-reporting Online conversion rule must have a weight assigned, totaling up to 100. **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `IFO_ROAS`: Establish a return of ad spend (ROAS) goal to maximize In-flight outcomes purchase value or conversion value as defined by the Line's IFO Rule(s), by specifying the Max CPM (bidPrice) amounts and at least one IFO conversion rule. **Note**: When this goal type is selected, at least one measurement rule of type IFO and `isReportingOnly` field set to false must be included in the [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-object). - `MAXIMIZE_INCREMENTAL_REACH`:Establish a soft goal to maximize incremental reach by specifying the Max CPM (bidPrice) amount. Use this goal type to maximize reaching new audiences/households across CTV channels that are not being targeted on linear TV. - `REACH`: DSP optimizes an oCPM-billed Reach goal to reach as many unique users/households as possible within the line budget, prioritizing new users/households before repeat exposures. Specify the Max CPM (`bidPrice`) amount. - `ROAS`: Establish a return on ad spend goal by specifying the Max CPM (bidPrice) amount and at least one conversion rule. | `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. Only valid when `billingMethodType` is `MARGIN` and when `goalType` is any of the following: `CPC`, `CPA`, `VCPM`, `CPI`. When not specified, defaults to `SOFT` for goal types `CPC`, `VCPM` and `CPA` or `HARD` for goal type `CPI`. | `string` | Optional | Optional | | `goalAmount` | Specifies the target amount for certain goal types. Required when `goalType` is `CPC`, `CPA`, `VCPM`, `CPI`, `CPCV` or `CPSV`. | `number` | Required | Optional | | `bidPrice` | Specifies the maximum bid price (Maximum CPM Price) allowed for certain goal types. | `number` | Required | Optional | | `maxGoal` | Specifies the maximum goal price. Required when `goalType` is `ROAS` or `CPCV`. | `number` | Required | Optional | | `marginGoal` | Specifies the margin percentage. Required when `goalType` is `OCPC`. | `number` | Required | Optional | | `isNativeEnabled` | Specifies if the line can serve native ads. - `true`: enable native ad support. - `false`: disable native ad support. Once the line is created, this value cannot be changed. If not specified when creating the line, defaults to `false`. | `boolean` | Optional | N/A | | `isGhostBiddingEnabled` | Specifies if the line can run the lift measurement study. - `true`: enables the lift measurement study. - `false`: disables the lift measurement study. If not specified when creating the line, defaults to `false`. | `boolean` | Optional | N/A | | `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`. If not specified when creating the line, defaults to `EVEN`. | `string` | Optional | Optional | | `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`. Required if the value of `pacingModeType` is `PACE_AHEAD`. | `integer` | Required | Optional | | `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. Required when `goalType` is `CPI`. | `string` | Optional | Optional | | `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` Required when `goalType` is `CPI`. | `string` | Optional | Optional | | `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 Required when `goalType` is `CPI`. | `string` | Optional | Optional | | `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`. **Note:** Only `MARGIN` is compatible with Yahoo Blueprint Performance, refer to [Campaigns](/dsp-api/docs/campaigns). | `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 | | `schedules` | Specifies either a single budget schedule or multiple budget schedules. To learn more, refer to [Schedules Object](/dsp-api/docs/lines#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](/dsp-api/docs/lines#feelist-object). **Note**: This is available to self-serve accounts only. | `object` | Optional | Optional | | `conversionList` | Yahoo DSP can optimize a line with multiple Online Conversion rules when you establish conversion values. To learn more, refer to the [ConversionList Object](/dsp-api/docs/lines#conversionlist-object). | `object` | Optional | Optional | | `measurementRulesList` | Yahoo DSP can optimize a line with multiple Offline/IFO Conversion rules. To learn more, refer to [Measurement Rules List Object](/dsp-api/docs/lines#measurement-rules-list-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](/dsp-api/docs/lines#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. - `Native`: To create a Native line. Once the line is created, this value cannot be changed. | `string` | Optional | N/A | | `scheduleAutoSyncEnabled` | Set to **true** to have the Start and End dates of the line match the Start and End dates of its campaign or package. If a campaign has packages, the line’s schedule dates only match with the package’s dates. **Note** - If a campaign or package’s dates are changed, the schedule dates of the line will automatically adjust to match as long as scheduleAutoSyncEnabled is set to **true**. - Match scheduling is unavailable for a line with multiple schedules. However, if the line is under a campaign or package with multiple schedules, the line uses the campaign or package’s earliest Start Date and latest End Date. - If the package schedule dates need to be modified, set this field to **false**. | `boolean` | Optional | Optional | | `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 | | `bidShadingOptOut` | Allows you to disable bid shading for a line. - true - bid shading is disabled - false - bid shading is enabled **Note:** Set to `false` when campaign `yahooBlueprintPerformance` is set to` true,` refer to [Campaigns](/dsp-api/docs/campaigns). | `Boolean` | Optional | Optional | | `byoaId` | The ID of the custom algorithm rule set up at the advertiser level. | `integer` | Required for Build Your own Algorithm (BYOA) | Required for Build Your own Algorithm (BYOA) | | `byoaMultiplierCap` | This acts as a failsafe mechanism, as it will limit how high the BYOA bids can go. If this is not indicated, the “Max CPM” will act as that limit. BYOA multiplier cap is mandatory when a line is associated with BYOA and the value should be greater than 0. Lines cannot have BYOA multiplier cap when it is not associated with BYOA. | `number` | Required for Build Your own Algorithm (BYOA) | Required for Build Your own Algorithm (BYOA) | | `createdAt` | Read-only field that specifies the time when the Line was created. | `string` | N/A | N/A | | `updatedAt` | Read-only field that specifies the time when the Line was updated. | `string` | N/A | N/A | ### 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. Required when specifying multiple schedules. | `string` | Required | 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. Required when the `budgetType` is `CURRENCY`. | `number` | Required | Optional | | `dailyBudget` | Specifies the daily budget amount. Required when the `budgetType` is `CURRENCY` and `dailyBudgetType` is `SPECIFIED_AMOUNT`. | `number` | Required | Optional | | `impBudget` | Specifies the total number of impressions bought. Required when `budgetType` is `IMPRESSION`. | `integer` | Required | Optional | | `impDailyBudget` | Specifies the total number of impressions bought per day. Required when `budgetType` is `IMPRESSION`. | `number` | Required | Optional | | `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] > 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](/dsp-api/docs/advertisers). 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 30. - `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 30. - `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`. **Note:** `viewBeaconValueDiscount` is set to `0` when the campaign `yahooBlueprintPerformance` is set to `true`, refer to [Campaigns](/dsp-api/docs/campaigns). | `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 | | `weight` | Weight value of each non-reporting only online conversion rule associated with the line, accepting numbers up to two decimal places. The sum of all weights must be 100. | `number` | Optional | Optional | ### Measurement Rules List Object Yahoo DSP can optimize a line with multiple Offline/In-Flight Outcomes (IFO) Measurement rules. To obtain the available measurement rules, refer to [Read Advertiser Measurement Rules](/dsp-api/docs/advertisers#read-advertiser1). Each entry in the `measurementRulesList` object contains the following fields. | **Field** | **Description** | **Data Type** | **Create** | **Update** | | --- | --- | --- | --- | --- | | `ruleId` | Specifies the measurement rule ID. | `Integer` | Required | Required | | `name` | Name of the measurement rule. The name can not be specified or changed. | `String` | Optional | Optional | | `type` | Specifies the type of the measurement rule. Can be either “IFO” or “Offline” | `String` | Required | Required | | `lineId` | Specifies the line ID. **Note**: When updating an existing line, not specifying the measurement rule will remove the rule from the line. | `integer` | Required | Required | | `vendorName` | Specifies the name of the vendor for the measurement rule. | `String` | Required | Required | | `clickWindow` | Specifies the amount of time after a click that the measurement rule 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 a maximum value of 30. | `String` | Required | Optional | | `viewWindow` | Specifies the time after the impression that the measurement rule 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 a maximum value of 30. | `String` | Required | Optional | | `value` | Assigns a default conversion value for the measurement rule. If no value is specified, defaults to 0. | `Number` | Required | Required | | `trackingCost` | Specifies the tracking fee deducted from the bid price due to the measurement rule. This field is informational only and can’t be edited. | `Number` | N/A | N/A | | `isReportingOnly` | Specifies if the measurement rule is for reporting purposes only. If no value is specified, it defaults to false and the measurement rule can be used for optimization. **Note:** When the `goalType` is `IFO_CPA` or `IFO_ROAS`then at least one measurement rule of type IFO must have `isReportingOnly` set to `false`. - 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. ```plaintext GET /traffic/lines/{id} ``` ### Parameters | **Parameters** | **Parameter Type** | **Description** | **Data Type** | **Required** | | --- | --- | --- | --- | --- | | `lineId` | path | Specifies the line ID. | `integer` | Y | ### Example Request URL ```plaintext GET https://dspapi.admanagerplus.yahoo.com/traffic/lines/630162 ``` ### Example Response ```plaintext {  "response": {    "id": 630162,    "name": "display-line-multi-budget-15",    "orderId": 462137,    "bidPrice": 1,    "goalAmount": 1.34,    "maxGoal": 1.34,    "marginGoal": 25,    "billingPrice": 1,    "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": "2026-03-05T19:10:10Z",        "endDateStr": "2026-03-31T05:00:00Z",        "dailyBudgetType": "AUTO_ALLOCATED"      },      {        "id": 1307653,        "name": "s1",        "budget": 1000,        "dailyBudget": 150,        "startDateStr": "2026-03-05T19:10:10Z",        "endDateStr": "2026-03-31T05:00:00Z",        "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": "2026-03-06T05:22:42Z" } ``` ## Read Lines Get a filtered list of lines. ```plaintext GET /traffic/lines?orderId={orderId}&query={query}&page={page}&limit={limit}&sort={sort}&dir={dir}&startTime={startTime}&endTime={endTime} ``` 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 | | `startTime` | Defines the start of the time window. Used with `endTime` to return Lines created or updated within a timeframe. | `string` | N | | `endTime` | Defines the end of the time window. Used with `startTime` to return Lines created or updated within a timeframe. | `string` | N | ### Example Request URL ```plaintext GET https://dspapi.admanagerplus.yahoo.com/traffic/lines?orderId=462137&limit=2&sort=id&dir=desc&seatId=2&startTime=2026-03-01T00:00:00Z&endTime=2026-03-31T00:00:00Z ``` ### Example Response ```plaintext {  "response": [    {      "id": 630162,      "name": "display-line-multi-budget-15",      "orderId": 462137,      "bidPrice": 1,      "goalAmount": 1.34,      "maxGoal": 1.34,      "marginGoal": 25,      "billingPrice": 1,      "isNativeEnabled": false,      "status": "PAUSED",      "pacingModeType": "EVEN",      "mediaType": "DISPLAY",      "goalModeType": "SOFT",      "goalType": "CPC",      "billingMethodType": "MARGIN",      "marginType": "TOTAL_BUDGET",      "budgetType": "CURRENCY",      "updatedAt": "2026-03-05T19:10:10Z",      "createdAt": "2026-03-05T19:10:10Z",      "schedules": [        {          "id": 1307654,          "name": "s2",          "budget": 2000,          "startDateStr": "2026-03-05T19:10:10Z",          "endDateStr": "2026-03-31T05:00:00Z",          "dailyBudgetType": "AUTO_ALLOCATED"        },        {          "id": 1307653,          "name": "s1",          "budget": 1000,          "dailyBudget": 150,          "startDateStr": "2026-03-05T19:10:10Z",          "endDateStr": "2026-03-31T05:00:00Z",          "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,      "isNativeEnabled": false,      "status": "PAUSED",      "pacingModeType": "EVEN",      "mediaType": "DISPLAY",      "goalModeType": "SOFT",      "goalType": "CPC",      "billingMethodType": "MARGIN",      "marginType": "TOTAL_BUDGET",      "budgetType": "CURRENCY",      "updatedAt": "2026-03-05T19:10:10Z",      "createdAt": "2026-03-05T19:10:10Z",      "schedules": [        {          "id": 1307652,          "name": "s2",          "budget": 2000,          "startDateStr": "2026-03-05T19:10:10Z",          "endDateStr": "2026-03-31T05:00:00Z",          "dailyBudgetType": "AUTO_ALLOCATED"        },        {          "id": 1307651,          "name": "s1",          "budget": 1000,          "dailyBudget": 150,          "startDateStr": "2026-03-05T19:10:10Z",          "endDateStr": "2026-03-31T05:00:00Z",          "dailyBudgetType": "SPECIFIED_AMOUNT"        }      ],      "feeList": [],      "conversionList": []    }  ],  "errors": null,  "timeStamp": "2026-03-06T05:22:42Z" } ``` ## Create Line Create a new line. ```plaintext 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. - To create a Native display line, specify `DISPLAY` as the line’s `mediaType` value and `NATIVE` as `channelType`. - To create a Native video line, specify `VIDEO` as the line’s `mediaType` value and `NATIVE` as `channelType`. > [!WARNING] > 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](/dsp-api/docs/geography) and [Example: Activate Paused Line](/dsp-api/docs/lines#example-activate-paused-line) for more details. ### Parameters All fields are specified in the body of `application/json` payload. ### Example Request URL ```plaintext POST https://dspapi.admanagerplus.yahoo.com/traffic/lines ``` ### Example: Create (Margin) oCPM Display Line To create a `DISPLA`Y 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 ```plaintext {  "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,  "schedules": [    {      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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 ```plaintext {  "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,  "schedules": [    {      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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 ```plaintext {  "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,  "schedules": [    {      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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 ```plaintext {  "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,  "schedules": [    {      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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 ```plaintext {  "name": "video-line-single-budget-imp-6",  "orderId": 462137,  "bidPrice": 9,  "marginGoal": 25,  "billingPrice": 9,  "isNativeEnabled": false,  "pacingAcceleration": 0,  "status": "PAUSED",  "pacingModeType": "EVEN",  "mediaType": "VIDEO",  "goalType": "CPCV",  "goalAmount": 1.1,  "maxGoal": 1.15,  "budgetType": "IMPRESSION",  "billingMethodType": "CPM_PRICE",  "marginType": "TOTAL_BUDGET",  "schedules": [    {      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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 ```plaintext {  "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,  "schedules": [    {      "name": "s1",      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "budget": 1000,      "dailyBudget": 150,      "dailyBudgetType": "SPECIFIED_AMOUNT"    },    {      "name": "s2",      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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] > 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 ```plaintext {  "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,  "schedules": [    {      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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 ```plaintext {    "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,    "goalType":"NONE",    "channelType":"DOOH",    "schedules": [        {            "startDateStr": "2026-03-05T19:10:10Z",            "endDateStr": "2026-03-31T05:00:00Z",            "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 ```plaintext {    "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,    "goalType":"NONE",    "channelType":"CTV",    "schedules": [        {            "startDateStr": "2026-03-05T19:10:10Z",            "endDateStr": "2026-03-31T05:00:00Z",            "budget": 1,            "dailyBudgetType": "AUTO_ALLOCATED"        }    ] ``` ## Update Line Update an existing line. ```plaintext 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] > 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 ```plaintext {  "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 ```plaintext {  "schedules": [    {      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "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 ```plaintext {  "conversionList": [    {      "lineId": 355775,      "beaconId": 762,      "acceptViewThrough": true,      "viewWindow": 2,      "clickWindow": 4,      "clickWindowUnitType": "DAY",      "viewWindowUnitType": "HOUR",      "beaconValuePc": 1.2    }  ] } ``` ### Example: Update Line with Measurement Rule (IFO/Offline) The following payload shows how to add a measurement rule to an existing line. #### Sample Request Body ```json {  "id": 12345,  "name": "My Line",  "status": "ACTIVE",  "goalType": "IFO_CPA"  …  "measurementRulesList": [    {                "clickWindow": 30,                "clickWindowUnitType": "DAY",                "viewWindow": 30,                "viewWindowUnitType": "DAY",                "value": 0.0,                "name": "IFO Rule",                "type": "IFO",                "ruleId": 70003624,                "lineId": 12345,                "vendorName": "IFO Vendor",                "isReportingOnly": false    },    {                "clickWindow": 7,                "clickWindowUnitType": "DAY",                "viewWindow": 7,                "viewWindowUnitType": "DAY",                "value": 0.0,                "name": "Test_new_JM",                "type": "Offline",                "ruleId": 70004430,                "lineId": 12345,                "vendorName": "Yahoo Store Visits",                "isReportingOnly": false    }  ]   } ``` ### 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 ```plaintext {  "conversionList": [    {      "id": 144856,      "lineId": 0,      "beaconId": 762    }  ] } ``` ### Example: Remove an Existing Measurement Rule To remove a measurement rule, exclude the rule in the payload. Compared to the request in the sample request in the [Update Section](/dsp-api/docs/lines#update-line-with-measurement-rule-ifooffline), don’t include the Offline rule in the request, causing the rule to be removed from the line. #### Sample Request Body ```json {  "id": 12345,  "name": "My Line",  "status": "ACTIVE",  "goalType": "IFO_CPA"  …  "measurementRulesList": [    {                "clickWindow": 30,                "clickWindowUnitType": "DAY",                "viewWindow": 30,                "viewWindowUnitType": "DAY",                "value": 0.0,                "name": "IFO Rule",                "type": "IFO",                "ruleId": 70003624,                "lineId": 12345,                "vendorName": "IFO Vendor",                "isReportingOnly": false    }    // Removed Offline Rule  ]   } ``` ## Remove Future Schedules for Multi-Schedule Lines Schedules set in the future for multi-schedule lines can be removed. ```plaintext 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 ```plaintext PUT https://dspapi.admanagerplus.yahoo.com/traffic/lines/2188261 ``` ### Sample Request Body ```plaintext {    "schedules": [        {            "id": 2232962,            "name": "sc1",            "budget": 100.0,            "startDateStr": "2022-07-18",            "endDateStr": "2022-07-29",            "dailyBudgetType": "AUTO_ALLOCATED"        },        {            "id": 2295452,            "name": "sc2",            "budget": 10.0,            "startDateStr": "2026-03-05T19:10:10Z",            "endDateStr": "2026-03-31T05:00:00Z",            "dailyBudgetType": "AUTO_ALLOCATED"        },        {            "id": 2254164,            "name": "sc3",            "budget": 77.0,            "startDateStr": "2026-03-05T19:10:10Z",            "endDateStr": "2026-03-31T05:00:00Z",            "dailyBudgetType": "AUTO_ALLOCATED"        },        {            "id": 2274448,            "name": "sc4",            "budget": 100.0,            "startDateStr": "2026-03-05T19:10:10Z",            "endDateStr": "2026-03-31T05:00:00Z",            "dailyBudgetType": "AUTO_ALLOCATED"        },        {            "id": 2388411,            "name": "sc2",            "budget": 100.0,            "startDateStr": "2026-03-05T19:10:10Z",            "endDateStr": "2026-03-31T05:00:00Z",            "dailyBudgetType": "AUTO_ALLOCATED",            "isScheduleDeleted": true        }    ] } ``` ### Sample Response ```plaintext {    "response": {        "id": 2188261,        "name": "MultiLine-1",        "orderId": 429394,        "bidPrice": 1.0,        "goalAmount": 1.0,        "maxGoal": 1.0,        "billingPrice": 50.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": "2026-03-05T19:10:10Z",               "endDateStr": "2026-03-31T05:00:00Z",               "dailyBudgetType": "AUTO_ALLOCATED"            },            {               "id": 2295452,               "name": "sc2",               "budget": 10.0,               "startDateStr": "2026-03-05T19:10:10Z",               "endDateStr": "2026-03-31T05:00:00Z",               "dailyBudgetType": "AUTO_ALLOCATED"            },            {               "id": 2274448,               "name": "sc4",               "budget": 100.0,               "startDateStr": "2026-03-05T19:10:10Z",               "endDateStr": "2026-03-31T05:00:00Z",               "dailyBudgetType": "AUTO_ALLOCATED"            },            {               "id": 2254164,               "name": "sc3",               "budget": 77.0,               "startDateStr": "2026-03-05T19:10:10Z",               "endDateStr": "2026-03-31T05:00:00Z",               "dailyBudgetType": "AUTO_ALLOCATED"            }        ],        "feeList": [],        "conversionList": []    },    "errors": null,    "timeStamp": "2026-03-06T05:22:42Z" } ``` ## Delete Lines The DSP Traffic API does not support deletion of lines.