--- title: "Packages" slug: "packages" updated: 2026-10-02T19:49:25Z published: 2026-10-02T19:49:25Z canonical: "help.yahooinc.com/packages" --- > ## 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. # Packages *Describes Yahoo DSP packages, specifying how to create, read and update packages with standard HTTP POST, GET and PUT calls, with example request URLs, Body and Response JSON.* ## Overview In Yahoo DSP, a package is an optional subcomponent of a campaign that specifies an advertising strategy. Using packages, you can group multiple lines based on common attributes, including a budget, flight dates, and goals. This grouping provides an additional level of hierarchy between the campaign and line level, enabling you to manage multiple lines at once. When you create packages under a campaign, you can test your strategy by comparing the performance of packages. You can then deactivate underperforming packages and keep high-performing packages active. Lines that are grouped under a package work a bit differently than lines that are not part of a package. Some of the differences are Permanence, Budgets, Start & End dates, and Targeting. > [!WARNING] > Important > > Lines will not serve if a package is deactivated. ## Read Campaign with package enabled To read campaigns with package enabled, make a GET call to this endpoint: ```plaintext GET traffic/campaigns/{campaignId} ``` > [!NOTE] > Note > > Packages can only be created under campaigns that allow packages. | Parameter | Parameter Type | Description | Data Type | Required | | --- | --- | --- | --- | --- | | id | path | Specifies the campaign ID | integer | Yes | ### Example Request URL ```plaintext GET https://dspapi.admanagerplus.yahoo.com/traffic/campaigns/701134 ``` ### Example Response ```plaintext {  "response": {    "id": 701134,    "name": "TrafficAPI Single Campaign",    "updatedAt": "2026-03-05T19:10:10Z",    "createdAt": "2026-03-05T19:10:10Z",    "packageEnabled": true,    "goalValue": 5,    "accountId": 12034,    "status": "ACTIVE",    "goalType": "CTR",    "timezone": "America/Chicago",    "currency": "CAD",    "budgetSchedules": [      {        "id": 709476,        "startDate": "2026-03-05T19:10:10Z",        "endDate": "2026-03-31T05:00:00Z",        "scheduleBudget": 444.5,        "scheduleDailyBudget": 18,        "scheduleBudgetType": "SPECIFIED_AMOUNT"      }    ],  "errors": null,  "timeStamp": "2026-03-06T05:22:42Z" } ``` ## Create a new campaign with package enabled To create a new campaign with a package enabled, make a POST request like this: ```plaintext POST traffic/campaigns ``` > [!NOTE] > Note > > Once campaigns are created, you can’t update the packageEnabled attribute. ### Parameters All fields are specified in the body of the `application/json` payload. ### Example Request URL ```plaintext POST https://dspapi.admanagerplus.yahoo.com/traffic/campaigns ``` ### Example Request Body (Package enabled) ```plaintext {  "name": "traffic test budget - 24",  "budgetSchedules": [    {      "scheduleBudget": 444.5,      "scheduleBudgetType": "SPECIFIED_AMOUNT",      "scheduleDailyBudget": 18,      "startDate": "2026-03-05T19:10:10Z",      "endDate": "2026-03-31T05:00:00Z"    }  ],  "goalType": "CTR",  "goalValue": 5,  "accountId": 2034341,  "status": "ACTIVE",  "timezone": "America/Chicago",  "currency": "USD",  "demoVendor": "YAHOO",  "packageEnabled": true } ``` ### Example Response ```plaintext {  "response": {    "id": 735839,    "name": "traffic test budget - 24",    "updatedAt": "2026-03-05T19:10:10Z",    "createdAt": "2026-03-05T19:10:10Z",    "goalValue": 5,    "frequencyCapValue": 0,    "accountId": 2034341,    "status": "ACTIVE",     "packageEnabled": true    "goalType": "CTR",    "timezone": "America/Chicago",    "currency": "USD",    "demoVendor": "YAHOO",    "budgetSchedules": [      {        "id": 745085,        "startDate": "2026-03-05T19:10:10Z",        "endDate": "2026-03-31T05:00:00Z",        "scheduleBudget": 444.5,        "scheduleDailyBudget": 18,        "scheduleBudgetType": "SPECIFIED_AMOUNT"      }    ]  },  "errors": null,  "timeStamp": "2026-03-06T05:22:42Z" } ``` ## Packages ### Endpoint ```plaintext /traffic/packages ``` The action that you take depends on the HTTP method and the parameters you specify. For example: - Use the `GET` method to read an existing package. - Use the `POST` method to create a new package. - Use the `PUT` method to update an existing package. ### Resources The platform provides these resources for managing and tracking packages: - packages - budgetSchedules ### Package Object The package object contains the following fields: | Field | Description | Data Type | Create | Update | | --- | --- | --- | --- | --- | | id | Specifies the package ID | integer | N/A | Required | | name | Specifies the unique name of the package. | string | Required | Optional | | orderId | Specifies the campaign ID. | integer | Required | Optional | | status | Specifies the current status of the package. Allowed values: - `ACTIVE`: Active/running - `PAUSED`: Just ended - `INACTIVE`: Inactive/ended The following status types are read-only: - `ARCHIVED` : The campaign has been archived. - `STOP_TOTAL_BUDGET`: Total budget reached - `STOP_DAILY_BUDGET`: Daily budget reached - `NOT_STARTED`: Not started yet - `ENDED`: Ended - `ERROR`: Error ***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 | | budgetType | Specifies whether the package uses impression-based budgeting or budgeting based on US dollars for the package. 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 package delivers. | string | Optional | Optional | | supplyType | The source of the package’s supply. `supplyType` is required only when `budgetDistributorEnabled` is set to `true`. Otherwise, `supplyType` is optional. Only `THIRD_PARTY` is an accepted value. | string | Required | Optional | | budgetSchedules | Specifies either a single budget schedule or multiple budget schedules. To learn more, see budgetSchedules Object. Note that multiple schedules are supported only when budgetType is CURRENCY. | object | Required | Optional | | budgetDistributorEnabled | Enables package budget distributor that allocates a package’s budget across its lines. When enabled, only homogeneous lines can be created within each channel type (example: video → video lines, audio → audio lines, display → display lines). CTV supports only Video lines. Native supports only Native Video and Native Display lines. DOOH supports display, video, or audio lines based on the package selection. - true: enable package budget distributor support. - false: disable package budget distributor support. | boolean | Optional | Optional | | mediaType | Specifies the media type served by the package. Allowed values: - DISPLAY: To run an image ad, create a display package item within a campaign. - VIDEO: To run a video ad, create a video package item within a campaign. - AUDIO: To run a audio ad, create a audio package item within a campaign. 1Once the package is created, this value cannot be changed | string | Optional | N/A1 | | `channelType` | Specifies the type of channel 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 | | `goalType` | Specifies the goal type the platform will use to optimize package performance. Different goal types are available depending on the mediaType specified. **Display Package** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. - `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. - `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. - `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. - `CUSTOMER_VALUE_OPTIMIZATION`: Establish a soft goal to maximize overall customer value by specifying the Max CPM (`bidPrice`) amount. **Note**: Only for display package items when the campaign object `yahooBlueprintPerformance` is set to `true`, refer to [Campaigns](/dsp-api/docs/campaigns). - `ECPM`: This goal aims at minimizing CPM. Specify the Max CPM (`bidPrice`) amount. - `NONE`: This is the default option. With this goal type, 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 packages items when the campaign object `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 package 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`) amounts and at least one conversion rule. - `VCPM`: Establish a viewable CPM goal by specifying the target VCPM (`goalAmount`) and Max CPM (`bidPrice`) amounts. **Video package** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. - `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. - `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. - `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. - `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. - `CUSTOMER_VALUE_OPTIMIZATION`: Establish a soft goal to maximize overall customer value by specifying the Max CPM (`bidPrice`) amount. **Note**: Only for video package items when the campaign object `yahooBlueprintPerformance` is set to `true`, refer to [Campaigns](/dsp-api/docs/campaigns). - `ECPM`: This goal aims at minimizing CPM. Specify the Max CPM (`bidPrice`) amount. - `NONE`: This is the default option. With this goal type, 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 package 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`) amounts and at least one conversion rule. - `VCPM`: Establish a viewable CPM goal for oCPM and Fixed CPM-billed packages by specifying the target VCPM (`goalAmount`) and Max CPM (`bidPrice`) amounts. **Audio Package** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. - `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. - `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. - `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. - `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 package 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) Package** - `CPA`: Establish a cost per action goal by specifying the Target CPA (`goalAmount`) and Max CPM (`bidPrice`) amounts and at least one conversion rule. - `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. - `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. - `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. - `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 package 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` | Optional | Optional | | packageGoals | Specifies multiple goals the platform will use to optimize package performance. The following apply for package goals: - Yahoo Blueprint Performance (YBP) is required to be toggled at campaign level; - The budget distributor is required to be enabled at package level; - Package goal mode is required to be set to SOFT; - At least two goals must be set but no more than three; - The following goal types are supported: CPC, CPA, CPCV, VCPM, ROAS, ECPM, CPIA, CPSV, IFO_CPA, IFO_ROAS; CUSTOMER_VALUE_OPTIMIZATION; - Goal weight needs to be larger than 0 and total goal weight must not exceed 100; - Package objective is not supported. To learn more, refer to [Package Goals Object](/dsp-api/docs/packages#package-goals-object) for more details. | object | Optional | Optional | | goalModeType | Specifies the goal mode. The goal mode determines whether the optimizes for package delivery or package performance. Allowed values: - SOFT: maximizes package performance while meeting package delivery objectives (spending the package’s total budget). - HARD: optimizes package delivery while matching or exceeding the specified target CPC goal. 2Only 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 , CPA and CPI. | string | Optional2 | Optional | | goalAmount | Specifies the target amount for certain goal types. Required when goalType is CPC, CPA, IFO CPA, VCPM, ROAS, CPI, CPIA or CPCV. | number | Required | Optional | | billingMethodType | Specifies the billing method. Allowed values: - MARGIN: (oCPM) With oCPM billing, DSP predicts the probability that events (such as clicks, conversions, video completions, or impressions) will occur. **Note**: Only `MARGIN` is compatible with Yahoo Blueprint Performance, refer to [Campaigns](/dsp-api/docs/campaigns). | string | 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 that this is available to self-serve accounts only. | string | Required | Optional | | isNativeEnabled | Specifies if the package can serve native ads. - true: enable native ad support. - false: disable native ad support. Once the package is created, this value cannot be changed. If not specified when creating the package, defaults to false. | boolean | Optional | N/A | | pacingModeType | Specifies the pacing mode. Allowed values: - EVEN: spread the package budget evenly. If your daily budget is Auto Allocated, DSP spreads the total budget evenly over the line’s flight dates. If your daily budget is a Specified Amount, DSP spreads the specified daily budget evenly throughout the day. - ASAP: Bid on every impression opportunity that meets the package’s targeting criteria. If your daily budget is Auto Allocated, DSP delivers ASAP until all remaining budget is consumed. If your daily budget is a Specified Amount, DSP delivers ASAP until the specified amount is consumed. - PACE_AHEAD: Provides greater control over how package 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 of 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. 3If not specified when creating the line, defaults to EVEN. | string | Optional | Optional3 | | userFrequencyCap | Specifies multi-layer frequency cap for the package. With multi-layer frequency capping, you can set up to 2 layers of frequency capping. To learn more, see User Frequency Cap Object. | object | Optional | Optional | | objective | Specifies objective of the package. | string | Optional | Optional | | enableBudgetRollover | Set to `true` to have any unspent budget at the end of a package’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 packages. - 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 package before enabling budget rollover will not have their unspent budgets moved. - Any unspent budget will continue to roll over from schedule to schedule until enableBudgetRollover is disabled. The field can be enabled or disabled at any time. - Any over delivery for a package’s schedule will not be rolled into the next schedule. | `boolean` | Optional | Optional | | `updatedAt` | Read-only field that specifies the time of the last update. | `string` | N/A | N/A | | `createdAt` | Read-only field that specifies the time when the package was created. | `string` | N/A | N/A | ### Package Goals Object The package goals object consists of a list of items containing the following fields: | Field | Description | Data Type | Create | Update | | --- | --- | --- | --- | --- | | goalType | Specifies the goal type the platform will use to optimize package performance. | string | Required | Required | | goalAmount | Specifies the amount allocated to the goal. | integer | Required | Required | | goalWeight | Specifies the weight allocated to the goal. Note: the total goal weight must add up to 100. | integer | Required | Required | ### Budget Schedules Object The budgetSchedules object contains the following fields: | Field | Description | Data Type | Create | Update | | --- | --- | --- | --- | --- | | id | Specifies the ID of the budget schedule. | integer | N/A | N/A | | name | Specifies the name of the schedule. 4Required when specifying multiple schedules. | string | Required4 | Required | | startDate | Specifies the start date of the package in the *yyyy-MM-dd* format. | string | Required | Required | | endDate | Specifies the end date of the package in the *yyyy-MM-dd* format. | string | Required | Required | | budget | Specifies the total budget of the package. 5Required when the budgetType is CURRENCY. | number | Required5 | Optional | | dailyBudget | Specifies the daily budget amount. 6Required when the budgetType is CURRENCY and dailyBudgetType is SPECIFIED_AMOUNT. | number | Required6 | Optional | | impBudget | Specifies the total number of impressions bought. 7Required when budgetType is IMPRESSION. | integer | Required7 | Optional | | impDailyBudget | Specifies the total number of impressions bought per day. 8Required when budgetType is IMPRESSION. | number | Required8 | Optional | | dailyBudgetType | Specifies the daily budget type. Allowed values: - SPECIFIED_AMOUNT: Specify a daily spend cap for the package during the schedule period. - AUTO_ALLOCATED: Allocation based on the overall budget and the number of days left in the schedule. | string | Required | Optional | | language | Specifies the language. If not specified, defaults to ENGLISH. | string | Optional. | 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 package can be deleted. | `Boolean` | N/A | Optional | ### User Frequency Cap Object A User Frequency Cap object defines multi-layer frequency capping for the package. The `userFrequencyCap` can be used to set up to 2 layers of frequency capping. | Field | Description | Data Type | Create | Update | | --- | --- | --- | --- | --- | | frequencyCapValueDay | Specifies the maximum number of impressions to serve per day. | integer | Optional | Optional | | frequencyCapValueWeek | Specifies the maximum number of impressions to serve per week. | integer | Optional | Optional | > [!NOTE] > Note > > Only frequencyCapValueDay or frequencyCapValueWeek can be set for YPN packages using the userFrequencyCap object. But Third-Party packages support all multi-level cap. ## Read Package To get data for a specific package, make a GET call: ```plaintext GET /traffic/packages/{id} ``` | Parameters | Parameter Type | Description | Data Type | Required | | --- | --- | --- | --- | --- | | id | path | Specifies the package ID | integer | Yes | ### Example Request URL ```plaintext GET https://dspapi.admanagerplus.yahoo.com/traffic/packages/10286 ``` ### Example Response ```plaintext { "response": {    "id": 10286,    "orderId": 1405781,    "name": "package-impression-2",    "flightingEnabled": true,    "budgetType": "IMPRESSION",    "supplyType": "THIRD_PARTY",    "status": "ACTIVE",    "budgetSchedules": [        {            "id": 10520,            "name": "s1",            "impBudget": 1001,            "impDailyBudget": 11,            "dailyBudgetType": "SPECIFIED_AMOUNT",            "startDate": "2026-03-05T19:10:10Z",            "endDate": "2026-03-31T05:00:00Z"        },        {            "id": 10526,            "name": "s2",            "impBudget": 100,            "impDailyBudget": 1,            "dailyBudgetType": "SPECIFIED_AMOUNT",            "startDate": "2026-03-05T19:10:10Z",            "endDate": "2026-03-31T05:00:00Z"        }    ] }, "errors": null, "timeStamp": "2026-03-06T05:22:42Z" } ``` ## Read Packages To get a filtered list of packages, make a GET call: ```plaintext GET /traffic/packages?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 | Yes | | query | Specifies the search term. Use URL encoding conventions (i.e. a space should be replaced with a + or %20). | string | No | | page | Specifies the page number. | integer | No | | limit | Specifies the total number of items to return. Maximum allowed value is 100. | integer | No | | sort | Specifies the column to sort by. | string | No | | dir | Specifies the sort direction. Allowed values: - ASC: data is sorted in ascending order. - DESC: data is sorted in descending order | string | No | | startTime | Defines the start of the time window. Used with `endTime` to return Packages created or updated within a timeframe. | string | N | | endTime | Defines the start of the time window. Used with `startTime` to return Packages created or updated within a timeframe. | string | N | ### Example Request URL ```plaintext GET https://dspapi.admanagerplus.yahoo.com/traffic/packages?orderId=1405781&limit=2&sort=id&dir=desc&startTime=2026-03-01T00:00:00Z&endTime=2026-03-31T00:00:00Z ``` ### Example Response ```plaintext { "response": [    {        "id": 10286,        "orderId": 1405781,        "name": "package-impression-2",        "flightingEnabled": true,        "budgetType": "IMPRESSION",        "supplyType": "THIRD_PARTY",        "status": "ACTIVE",        "updatedAt": "2026-03-05T19:10:10Z",        "createdAt": "2026-03-05T19:10:10Z",        "budgetSchedules": [            {                "id": 10520,                "name": "s1",                "impBudget": 1001,                "impDailyBudget": 11,                "dailyBudgetType": "SPECIFIED_AMOUNT",                "startDate": "2026-03-05T19:10:10Z",                "endDate": "2026-03-31T05:00:00Z"            },            {                "id": 10526,                "name": "s2",                "impBudget": 100,                "impDailyBudget": 1,                "dailyBudgetType": "SPECIFIED_AMOUNT",                "startDate": "2026-03-05T19:10:10Z",                "endDate": "2026-03-31T05:00:00Z"            }        ]    },    {        "id": 6776,        "orderId": 1405781,        "name": "package-impression-1",        "flightingEnabled": false,        "budgetType": "IMPRESSION",        "supplyType": "THIRD_PARTY",        "status": "ACTIVE",        "budgetSchedules": [            {                "id": 7004,                "impBudget": 8888,                "impDailyBudget": 88,                "dailyBudgetType": "SPECIFIED_AMOUNT",                "startDate": "2026-03-05T19:10:10Z",                "endDate": "2026-03-31T05:00:00Z"            }        ]    } ], "errors": null, "timeStamp": "2026-03-06T05:22:42Z" } ``` ## Create Package To create packages, make a POST call: ```plaintext POST /traffic/packages/ ``` ### Parameters All fields are specified in the body of the `application/json` payload. #### Sample Request URL ```plaintext POST https://dspapi.admanagerplus.yahoo.com/traffic/packages ``` #### Sample Request Body ```plaintext {    "name": "package-usd-1.5",    "orderId": 1386505,    "budgetType": "CURRENCY",    "supplyType": "YAHOO",    "status": "ACTIVE",    "budgetSchedules": [        {            "budget": 999,            "name": "S1",            "dailyBudgetType": "AUTO_ALLOCATED",            "startDate": "2026-03-05T19:10:10Z",            "endDate": "2026-03-31T05:00:00Z"        }    ] } ``` ### Example: Create (Margin) oCPM Display Package with Budget distributor on To create a DISPLAY line with MARGIN (oCPM) billing type, refer to the table and payload below. | Field | Value | Type | | --- | --- | --- | | budgetDistributorEnabled | true | boolean | | mediaType | DISPLAY | string | | goalModeType | HARD | string | | goalType | CPA | string | | billingMethodType | MARGIN | string | | billingPrice | Desired % profit margin | number | #### Sample Response Body ```plaintext {  "name": "TRAFFIC_API_PACKAGE_eEYx70Ap",  "orderId": "61",  "bidPrice": "1.5",  "goalAmount": "1.5",  "billingPrice": "2.0",  "flightingEnabled": false,  "budgetType": "CURRENCY",  "status": "ACTIVE",  "supplyType": "THIRD_PARTY",  "budgetDistributorEnabled": true,  "budgetSchedules": [    {      "budget": 100,      "dailyBudget": 20,      "dailyBudgetType": "SPECIFIED_AMOUNT",      "startDate": "2026-03-05T19:10:10Z",      "endDate": "2026-03-31T05:00:00Z"    }  ],  "pacingModeType": "EVEN",  "mediaType": "DISPLAY",  "goalModeType": "HARD",  "goalType": "CPA",  "billingMethodType": "MARGIN",  "marginType": "TOTAL_BUDGET" } ``` ### Example: Create Native Display Package with Budget distributor on and User Frequency Cap To create a DISPLAY package with User Frequency Cap, refer to the table and payload below. | Field | Value | Type | | --- | --- | --- | | budgetDistributorEnabled | true | boolean | | userFrequencyCap | frequencyCapValueDay:10 | boolean | | mediaType | DISPLAY | string | | goalModeType | HARD | string | | goalType | CPA | string | | billingMethodType | MARGIN | string | | billingPrice | Desired % profit margin | number | #### Sample Response Body ```plaintext {  "orderId": 61,  "name": "TRAFFIC_TEST_PACKAGE_5OAivCTW",  "bidPrice": 0.5,  "goalAmount": 0.5,  "billingPrice": 0,  "budgetType": "CURRENCY",  "channelType": "Native",  "supplyType": "YAHOO",  "objective": "VISIT_WEB",  "status": "ACTIVE",  "budgetSchedules": [    {      "budget": 100,      "name": "CQdgy",      "dailyBudgetType": "AUTO_ALLOCATED",      "startDate": "2026-03-05T19:10:10Z",      "endDate": "2026-03-31T05:00:00Z"    }  ],  "mediaType": "DISPLAY",  "goalType": "CPA",  "billingMethodType": "MARGIN",  "budgetDistributorEnabled": true,  "goalModeType": "HARD",  "marginType": "TOTAL_BUDGET",  "pacingModeType": "EVEN",  "userFrequencyCap": {    "frequencyCapValueDay": 10  } } ``` ### Example: Create Native Display Package with Budget distributor on and Dynamic Product Ads Objective To create a DISPLAY line with Budget distributor on and Objective DYNAMIC_PRODUCT_ADS, refer to the table and payload below. | Field | Value | Type | | --- | --- | --- | | budgetDistributorEnabled | true | boolean | | mediaType | DISPLAY | string | | goalModeType | HARD | string | | goalType | ENHANCED_CPC | string | | billingMethodType | CPC_WITH_MARGIN | string | | objective | DYNAMIC_PRODUCT_ADS | string | #### Sample Response Body ```plaintext {  "orderId": 61,  "name": "TRAFFIC_TEST_PACKAGE_Ert8aOyR",  "bidPrice": 0.0,  "goalAmount": 0.0,  "billingPrice": 0.0,  "budgetType": "CURRENCY",  "channelType": "Native",  "supplyType": "YAHOO",  "objective": "DYNAMIC_PRODUCT_ADS",  "status": "ACTIVE",  "budgetSchedules": [    {      "budget": 100.0,      "name": "lduaC",      "dailyBudgetType": "AUTO_ALLOCATED",      "startDate": "2026-03-05T19:10:10Z",      "endDate": "2026-03-31T05:00:00Z"    }  ],  "mediaType": "DISPLAY",  "goalType": "ENHANCED_CPC",  "billingMethodType": "CPC_WITH_MARGIN",  "budgetDistributorEnabled": true,  "goalModeType": "HARD",  "marginType": "TOTAL_BUDGET",  "pacingModeType": "EVEN" } ``` ## Update Package To update a package, make a PUT request: ```plaintext PUT /traffic/packages/{id} ``` Partial updates are supported values of supported fields which are not in the payload will remain unchanged. ### Parameters The Package id is specified in the url path. All other fields are specified in the body of the `application/json` payload. ### Example Request URL ```plaintext PUT https://dspapi.admanagerplus.yahoo.com/traffic/packages/6776 ``` ### Example: Activate Paused Package The following payload shows how to change the package status from PAUSED to ACTIVE. #### Example Request Body ```plaintext {  "status": "ACTIVE" } ``` ### Example: Update Package Budget & Start/End Dates The following payload shows how to update the total budget and start/end dates of a package. #### Example Response Body ```plaintext {  "budgetSchedules": [    {      "id": 10966,      "name": "S1",      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "impBudget": 10000    }  ] } ``` ## Remove Future Schedules for Multi-Schedule Packages Schedules set in the future for multi-schedule packages can be removed. ```plaintext PUT /traffic/packages/{id} ``` To delete a schedule, set `isScheduleDeleted` to `true` in the specific budget schedule object. ### Parameters Specify the Package `id` in the url path and all other fields in the request body. ### Sample Request URL ```plaintext PUT https://dspapi.admanagerplus.yahoo.com/traffic/packages/15886 ``` ### Sample Request Body ```plaintext {    "budgetSchedules": [        {            "id": 17202,            "budget": 10.0,            "name": "sc3",            "dailyBudgetType": "AUTO_ALLOCATED",            "startDate": "2026-03-05T19:10:10Z",            "endDate": "2026-03-31T05:00:00Z",            "isScheduleDeleted": true        },        {            "id": 16193,            "budget": 10.0,            "name": "sc2",            "dailyBudgetType": "AUTO_ALLOCATED",            "startDate": "2026-03-05T19:10:10Z",            "endDate": "2026-03-31T05:00:00Z"        },        {            "id": 16192,            "budget": 10.0,            "name": "sc1",            "dailyBudgetType": "AUTO_ALLOCATED",            "startDate": "2026-03-05T19:10:10Z",            "endDate": "2026-03-31T05:00:00Z"        }    ] } ``` ### Sample Response ```plaintext {    "response": {        "id": 15886,        "orderId": 1667745,        "name": "Package-test",        "bidPrice": 1.0,        "goalAmount": 1.0,        "billingPrice": 0.0,        "flightingEnabled": true,        "budgetType": "CURRENCY",        "channelType": "DEFAULT",        "supplyType": "UNKNOWN",        "status": "INACTIVE",        "budgetSchedules": [            {                "id": 16193,                "budget": 10.0,                "name": "sc2",                "dailyBudgetType": "AUTO_ALLOCATED",                "startDate": "2026-03-05T19:10:10Z",                "endDate": "2026-03-31T05:00:00Z"            },            {                "id": 16192,                "budget": 10.0,                "name": "sc1",                "dailyBudgetType": "AUTO_ALLOCATED",                "startDate": "2026-03-05T19:10:10Z",                "endDate": "2026-03-31T05:00:00Z"            }        ],        "mediaType": "DISPLAY",        "goalType": "CPA",        "billingMethodType": "MARGIN",        "goalModeType": "HARD",        "marginType": "TOTAL_BUDGET",        "pacingModeType": "EVEN",        "userFrequencyCap": {            "frequencyCapValueMinute": 0,            "frequencyCapValueHour": 0,            "frequencyCapValueDay": 0,            "frequencyCapValueWeek": 0,            "frequencyCapValueMonth": 0,            "frequencyCapPeriodMultiHour": 0,            "frequencyCapValueMultiHour": 0        },        "language": "ENGLISH"    },    "errors": null,    "timeStamp": "2026-03-06T05:22:42Z" } ``` ## Delete Packages The Yahoo DSP Traffic API does not support deletion of packages. ## Create a Line under a Package ```plaintext POST /traffic/lines ``` ### Parameters All fields are specified in the body of the `application/json` payload. ### Example Request URL ```plaintext POST https://dspapi.admanagerplus.yahoo.com/traffic/lines ``` ### Example: Create a line under a package To create a line under a PACKAGE, refer to the table and payload below. | Field | Value | Type | | --- | --- | --- | | packageId | Package Id | integer | #### Example Request Body ```plaintext {  "name": "display-line-under-package-1",  "orderId": 1405783,  "packageId": 9103,  "bidPrice": 1,  "goalAmount": 1,  "maxGoal": 1,  "billingPrice": 22,  "isNativeEnabled": true,  "objective": "MAIL_SPONSORED",  "status": "ACTIVE",  "pacingModeType": "EVEN",  "mediaType": "DISPLAY",  "goalModeType": "HARD",  "goalType": "ENHANCED_CPC",  "billingMethodType": "CPC_WITH_MARGIN",  "marginType": "TOTAL_BUDGET",  "budgetType": "CURRENCY",  "budgetSchedules": [    {      "budget": 100,      "startDateStr": "2026-03-05T19:10:10Z",      "endDateStr": "2026-03-31T05:00:00Z",      "dailyBudgetType": "AUTO_ALLOCATED"    }  ],  "supplyType": "YAHOO",  "language": "ENGLISH" } ``` ## Read Lines under a package To get a filtered list of lines under a package, make a GET request: ```plaintext GET /traffic/lines?packageId={packageId}&query={query}&page={page}&limit={limit}&sort={sort}&dir={dir}&startTime={starTime}&endTime={endTime} ``` All of the accepted parameters are query parameters. ### Parameters | Parameter | Description | Data Type | Required | | --- | --- | --- | --- | | packageId | Specifies the package ID. | integer | Yes | | query | Specifies the search term. Use URL encoding conventions (i.e., a space should be replaced with a + or %20). | string | No | | page | Specifies the page number. | integer | No | | limit | Specifies the total number of items to return. Maximum allowed value is 100. | integer | No | | sort | Specifies the column to sort by. | string | No | | dir | Specifies the sort direction. Allowed values: - ASC: data is sorted in ascending order. - DESC: data is sorted in descending order | string | No | | startTime | Defines the start of the time window. Used with `endTime` to return Packages created or updated within a timeframe. | string | No | | endTime | Defines the end of the time window. Used with `startTime` to return Packages created or updated within a timeframe. | string | No | ### Example Request URL ```plaintext GET https://dspapi.admanagerplus.yahoo.com/traffic/lines?packageId=15311&limit=1&startTime=2026-03-01T00:00:00Z&endTime=2026-03-31T00:00:00Z ``` ### Example Response ```plaintext { "response": [    {        "id": 1887077,        "name": "line 1",        "orderId": 1176518,        "bidPrice": 1.0,        "goalAmount": 1.0,        "billingPrice": 0.0,        "isNativeEnabled": true,        "packageId": 15311,        "objective": "PROMOTE_BRAND",        "status": "ACTIVE",        "updatedAt": "2026-03-05T19:10:10Z",        "createdAt": "2026-03-05T19:10:10Z",        "pacingModeType": "EVEN",        "mediaType": "DISPLAY",        "goalModeType": "HARD",        "goalType": "VCPM",        "billingMethodType": "MARGIN",        "marginType": "TOTAL_BUDGET",        "budgetType": "CURRENCY",        "budgetSchedules": [            {                "id": 2324122,                "budget": 100.0,                "startDateStr": "2026-03-05T19:10:10Z",                "endDateStr": "2026-03-31T05:00:00Z",                "dailyBudgetType": "AUTO_ALLOCATED"            }        ],        "feeList": [],        "conversionList": [],        "supplyType": "YAHOO",        "language": "ENGLISH"    } ], "errors": null, "timeStamp": "2026-03-06T05:22:42Z" } ```