--- title: "Supply Path Optimization Targeting" slug: "supply-path-optimization-targeting" updated: 2025-11-19T15:20:50Z published: 2025-11-19T15:20:50Z canonical: "help.yahooinc.com/supply-path-optimization-targeting" --- > ## 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. # Supply Path Optimization Targeting Supply path optimization (SPO) ensures that advertisers buy the right inventory, at the right price, from the right sources — leading to better outcomes across the board through the process of identifying and grouping specific inventory based on various factors like audience segments, publisher quality and ad formats. Target SPO data in the DSP API from top trusted leaders in supply curation, such as **Jounce**, by using the `CURATION` targeting type in order to curate across scaled inventory and optimize supply objectives. ## Endpoint ```plaintext traffic/lines/{lineId}/targeting ``` Use the following HTTP methods: - Use the `GET` method to view line targeting. - Use the `POST` method to update line targeting. ## Required and Supported Parameters ### Jounce Contextual Object The Jounce contextual object contains the following fields. | Field | Description | Data Type | Create | Update | | --- | --- | --- | --- | --- | | `id` | The ID of the Jounce SPO contextual. | `Integer` | N/A Read Only | N/A Read Only | | `name` | The name of the Jounce SPO contextual. - **Premium Publisher-Controlled** - Direct premium supply controlled by publishers. - **Premium Intermediary-Controlled** - Direct premium supply controlled by intermediaries that may have exclusive rights for premium ad placements. - **Multi-Hop Reselling** - Supply chains that do not provide direct supply access. - **Cheap Reach** - Partial or out of visibility placements in the supply chain that drive lower cost reach. - **Made For Advertising** - Publishers whose business model is ad arbitrage, pairing high volumes of paid traffic with high ad loads. | `String` | N/A Read Only | N/A Read Only | | `level` | Taxonomy level ID. | `Integer` | N/A Read Only | N/A Read Only | ## Read Jounce SPO Targeting Taxonomy Use this endpoint to retrieve the Jounce contextual Id to target on a line. ### Sample Request URL ```plaintext GET /traffic/contextuals/jounce ``` ### Sample Response ```json {   "response": [       {           "id": "60368",           "name": "Premium Publisher-Controlled",           "level": "69"       },       {           "id": "60369",           "name": "Premium Intermediary-Controlled",           "level": "69"       },       {           "id": "60371",           "name": "Multi-Hop Reselling",           "level": "69"       },       {           "id": "60372",           "name": "Cheap Reach",           "level": "69"       },       {           "id": "60885",           "name": "Made for Advertising",           "level": "69"       }   ],   "errors": null,   "timeStamp": "2025-11-10T21:43:40.010Z" } ``` ## Add/Update Jounce Supply Path Optimization Targeting After retrieving a Jounce contextual Id using the [GET endpoint](/dsp-api/docs/supply-path-optimization-targeting#read-jounce-spo-targeting-taxonomy), add it to the line to target it by using the following POST endpoint. ```plaintext POST /traffic/lines/{lineId}/targeting ``` ### Parameters The line ID is specified in the path of the URL. All other parameters are specified in the body of the `application/json` payload. | Parameters | Description | Data Type | Required/Optional | | --- | --- | --- | --- | | `curationContextuals` | Object that contains SPO targeting. | `object` | Required | | `addedJounceContextual` | Array of Jounce contextual ids to be added. | `array` | Optional | | `removed` | Array of Jounce contextual Ids to be removed. | `array` | Optional | | `clearAll` | Indicates if all existing targeted Jounce contextuals should be removed. By default, the value is `false`. - If `true`, remove all targeted Jounce Contextuals. This will disable `CURATION` targeting. - If `false`, do not remove any targeted curationContextuals. | `boolean` | Optional | | `types` | Specifies an array of targeting types. `CURATION` must be included to apply changes. | `string` | Required | ### Sample Request URL ```plaintext POST traffic/lines/{lineId}/targeting ``` ### Sample Request (Line-Level) ```json {   "curationContextuals": {       "addedJounceContextual": [           60368,           60369       ],       "removed": [],       "clearAll": false   },   "types": [       {           "isTargeted": true,           "name": "CURATION"       }   ] } ``` ### Sample Response (Line-Level) ```json "response": {     …       "curationContextuals": [           {               "id": 60368,               "accountId": 123,               "name": "Premium Publisher-Controlled",               "updatedAt": "2025-06-18T08:11:56Z",               "categories": [                   {                       "id": 458493,                       "categoryId": 55006767                   }               ],               "taxonomyType": "JOUNCE_SPO_CURATION"           },           {               "id": 60369,               "accountId": 123,               "name": "Premium Intermediary-Controlled",               "updatedAt": "2025-06-18T08:11:56Z",               "categories": [                   {                       "id": 458494,                       "categoryId": 55006768                   }               ],               "taxonomyType": "JOUNCE_SPO_CURATION"           }       ]   },   "errors": null,   "timeStamp": "2025-11-06T21:43:12.934Z" } ``` ## Read Jounce Supply Path Optimization Targeting Retrieve the current Jounce targeting for a specified line. ```plaintext GET /traffic/lines/{lineId}/targeting ``` ### Parameters The line ID is specified in the path of the URL. All other parameters are specified in the body of the `application/json` payload. ### Sample Request URL ```plaintext GET traffic/lines/{lineIid}/targeting ``` ### Sample Response ```json {   "response": {     …       "curationContextuals": [           {               "id": 60368,               "accountId": 123,               "name": "Premium Publisher-Controlled",               "updatedAt": "2025-06-18T08:11:56Z",               "categories": [                   {                       "id": 458493,                       "categoryId": 55006767                   }               ],               "taxonomyType": "JOUNCE_SPO_CURATION"           },           {               "id": 60369,               "accountId": 123,               "name": "Premium Intermediary-Controlled",               "updatedAt": "2025-06-18T08:11:56Z",               "categories": [                   {                       "id": 458494,                       "categoryId": 55006768                   }               ],               "taxonomyType": "JOUNCE_SPO_CURATION"           }       ]   },   "errors": null,   "timeStamp": "2025-11-06T21:43:12.934Z" } ```