Yield Management Profile service

The Yield Management Profile Service is used to create and update yield management profiles which define dynamic price floors, bid biases, and auction tiers for a publisher.

More concretely, the Yield Management Profile is a set of rules with the following properties and behaviors:

  • The profile targets:

    • Some/all inventory
    • Some/all buyers
  • The profile specifies:

    • 0 or more floor rules
    • 0 or more bias rules
    • 0 or more modifiers that will apply to those floors and biases
    • 0 or more auction tiers

REST API

HTTP Method Endpoint Description
GET - https://api.appnexus.com/ym-profile?id=YMP_ID
- https://api.appnexus.com/ym-profile?id=YMP_CODE
View a specific profile.
GET - https://api.appnexus.com/ym-profile?publisher_id=PUBLISHER_ID
- https://api.appnexus.com/ym-profile?publisher_code=PUBLISHER_CODE
View all profiles associated with a particular publisher.
GET https://api.appnexus.com/ym-profile?id=1,2,3 View multiple profiles by ID using a comma-separated list.
POST https://api.appnexus.com/ym-profile
(ym-profile JSON)
Add a profile.

Note: After adding a profile, you can use the Publisher Service to assign the profile to a particular publisher.
PUT - https://api.appnexus.com/ym-profile?id=YMP_ID
- https://api.appnexus.com/ym-profile?id=YMP_CODE
(ym profile JSON)
Modify an existing profile.
DELETE https://api.appnexus.com/ym-profile?id=YMP_ID Delete an existing profile.

JSON fields

Field Type Description
id int The unique identifier for a yield management profile.
Default: Auto-incremented Number (i.e. 123).
Required On: PUT
code string An optional custom code used to reference a yield management profile.
Default: NULL
name string A name used to describe a yield management profile.
Default: None
Required On: POST
description string An optional description of the yield management profile.
Default: NULL
base_ym_bias_id int The ID of the YM bias that should be applied if no other YM biases should be used. Typically, this YM bias has a priority 1 (lowest priority) and no profile.
Default: NULL
base_ym_floor_id int The ID of the YM floor that should be applied if no other YM floors should be used. Typically, this YM floor has a priority 1 (lowest priority) and no profile.
Default: NULL
publisher_id int Read-only. The ID of the publisher to which the yield management profile is associated. You use the Publisher Service to make the association between the yield management profile and the publisher.
modifiers array The modifiers applied to the technical attribute of the creative. For more details, see Modifiers below.
Default: NULL
biases array The biases applied to demand side objects: Buyer Groups, Buyer Members. For more details, see Biases below.
Default: NULL
floors array The floor prices applied based on inventory and user targeting. For more details, see Floors below.
Default: NULL
last_modified timestamp Time of last modification to this yield management profile.
Default: N/A

Modifiers

Field Type Description
technical_attributes array This is an array specifying the technical attributes that the yield management modifier should be applied to.
Default: NULL
Required On: POST, PUT

Modifiers - Technical attributes

Field Type Description
id int This is the ID of the technical attribute (as found in the Technical Attribute Service) for which the modifier should be applied.
Default: None
Required On: POST, PUT
name name This is the name of the technical attribute.
Default: N/A
type enum
('bias-pct',
'bias-cpm',
'floor-pct',
'floor-cpm')
This determines which value to use for the modifier, represented as a percentage or a flat CPM, and what the modifier should be applied to -- the bid or the floor.
Default: NULL
Required On: POST, PUT
amount_pct double This is the % amount the bid or floor should be modified by. If bias_pct = 5, then the net bid will be increased 5%.
Default: 0.00
Required On: POST, PUT (if type is 'bias-pct' or 'floor-pct').
amount_cpm double This is the CPM increase/decrease that the bid or floor should be modified by.
Default: NULL
Required On: POST, PUT (if type is 'bias-cpm' or 'floor-cpm').

Biases

Field Type Description
id int The unique identifier for a yield management bias.
Default: Auto-incremented Number (i.e. 123).
Required On: PUT
code string A optional custom code used to reference a yield management bias.
Default: NULL
name string A name used to describe a yield management bias.
Default: None
Required On: POST
description string An optional description how the yield management bias is being used.
Default: NULL
profile_id int An optional profile_id is used to determine when to apply a bias. A profile is a generic set of rules for targeting inventory, and certain biases may only apply to certain slices of inventory. For details, see the Profile Service.
Default: NULL
priority int The priority field (optional) is used to create a hierarchy of how the bias should to be applied. Value may be between 1-10 where priority 10 is treated as the highest priority value.
Default: 5
members array This is an array specifying the member(s) the yield management bias should be applied to.
Default: NULL
buyer_groups array This is an array specifying the buyer group(s) the yield management bias should be applied to.
Default: NULL

Biases - Buyer members

Field Type Description
id int This is the ID of the buyer member (as found in the Platform Member Service) for which the bias should be applied.
Default: None
Required On: POST, PUT
name string This is the name of the buyer member.
Default: N/A
type enum
('percent','cpm')
This determines which value to use for the bias, represented as a percentage or a flat CPM.
Default: "percent"
Required On: POST, PUT
bias_pct double This is the % amount the buyer member should be adjusted by. If bias_pct = 5, then the net bid will be increased 5%.
Default: 0.00
Required On: POST, PUT (if type is 'percent').
bias_cpm double This is the CPM increase/decrease the buyer member should be adjusted by.
Default: NULL
Required On: POST, PUT (if type is 'cpm').

Biases - Buyer groups

Field Type Description
id int This is the ID of the buyer group for which the bias should be applied.
Default: None
Required On: POST, PUT
name string This is the name of the buyer group.
Default: N/A
type enum
('percent','cpm')
This determines which value to use for the bias, represented as a percentage or a flat CPM.
Default: "percent"
Required On: POST, PUT
bias_pct double This is the % amount the buyer member should be adjusted by. If bias_pct = 5, then the net bid will be increased 5%.
Default: 0.00
Required On: POST, PUT (if type is 'percent').
bias_cpm double This is the CPM increase/decrease the buyer member should be adjusted by.
Default: NULL
Required On: POST, PUT (if type is 'cpm').

Floors

Field Type Description
id int The unique identifier for a yield management floor.
Default: Auto-incremented Number (i.e. 123).
Required On: PUT
code string A optional custom code used to reference a yield management floor.
Default: NULL
name string A name used to describe a yield management floor.
Default: None
Required On: POST
description string An optional description how the yield management floor is being used.
Default: NULL
profile_id int An optional profile_id is used to determine when to apply a floor. A profile is a generic set of rules for targeting inventory, and certain floors may only apply to certain slices of inventory. For details, see the Profile Service.
Default: NULL
priority int The priority field (optional) is used to create a hierarchy of how the floor should to be applied. Value may be between 1-10 where priority 10 is treated as the highest priority value.
Default: 5
hard_floor double This cpm floor is used as the hard reserve price to be applied.
Default: None
Required On: POST
soft_floor double This cpm floor is used as the soft reserve, defined as the lowest price at which price reduction will occur - This must be >= the hard floor if set.
Default: NULL
members array This is an array specifying the member(s) the yield management floor should be applied to.
Default: NULL
brands array This is an array specifying the brand(s) the yield management floor should be applied to.
Default: NULL
categories array This is an array specifying the category(ies) the yield management floor should be applied to.
Default: NULL
default_calculation_type enum
('gross','net')
This is used to determine if the floor should be applied to the gross or net bid.
Default: gross
apply_floor_to_direct int This is used to determine if the floor should be applied only to specified members or in addition to managed demand.
Default: 1

Floors - Members

Field Type Description
id int This is the ID of the buyer member (as found in the Platform Member Service) for which the floor should be applied.
Required On: POST, PUT
name array This is the name of the buyer member.

Floors - Brands

Field Type Description
id int This is the ID of the brand of the creative (as found in the Brand Service) for which the floor should be applied.
Required On: POST, PUT
name array This is the name of the brand.

Floor - Categories

Field Type Description
id int This is the ID of the category of the creative of the creative (as found in the Category Service) for which the floor should be applied.
Required On: POST, PUT
name array This is the name of the category.

Example

View a specific yield management profile

$ curl -b cookies -c cookies  "https://api.appnexus.com/ym-profile?id=8"
{
    "ym-profile": {
        "id": 1234,
        "member_id": 3,
        "active": true,
        "name": "Publisher X YMP",
        "description": "This profile will be used for publisher X.",
        "base_ym_bias_id": 125,
        "base_ym_floor_id": 1574,
        "last_modified": "2010-10-02 12:00:00",
        "modifiers": {
            "technical_attributes": [
                {
                    "id": 2,
                    "type": "bias-cpm",
                    "amount_pct": 0,
                    "amount_cpm": -1,
                    "name": "Flash"
                },
                {
                    "id": 3,
                    "type": "bias-pct",
                    "amount_pct": 10,
                    "amount_cpm": null,
                    "name": "Text"
                }
            ]
        },
        "biases": [
            {
                "id": 124,
                "name": "YMP Canada Bias",
                "description": "This rule will used to set the bias for a set of demand attributes across Canadian inventory.",
                "profile_id": 1241,
                "priority": 10,
                "members": [
                    {
                        "id": 100,
                        "name": "eBay",
                        "type": "percent",
                        "bias_pct": "9"
                    },
                    {
                        "id": 256,
                        "name": "MiG",
                        "type": "cpm",
                        "bias_cpm": -0.25
                    }
                ],
                "buyer_groups": [
                    {
                        "id": 120,
                        "name": "Third Party Ad Networks",
                        "type": "percent",
                        "bias_pct": -5
                    },
                    {
                        "id": 153,
                        "name": "Value Ad Networks",
                        "type": "cpm",
                        "bias_cpm": 0.50
                    }
                ]
            },
            {
                "id": 125,
                "name": "Base YMP Bias",
                "description": "",
                "profile_id": null,
                "priority": 1,
                "members": null,
                "buyer_groups": null
            }
        ],
        "floors": [
            {
                "id": 1234,
                "name": "Germany Floor",
                "description": "This rule will used to set the floor for a set of demand attributes across Germany inventory.",
                "hard_floor": "1.20",
                "soft_floor": null,
                "default_calculation_type": "gross",
                "apply_floor_to_direct": true,
                "profile_id": 1542,
                "priority": 6,
                "members": [
                    {
                        "id": 100,
                        "name": "eBay"
                    },
                    {
                        "id": 256,
                        "name": "MiG"
                    }
                ],
                "brands": [
                    {
                        "id": 102,
                        "name": "Netflix"
                    },
                    {
                        "id": 256,
                        "name": "Blockbuster"
                    }
                ],
                "categories": [
                    {
                        "id": 2,
                        "name": "Apparel"
                    },
                    {
                        "id": 8,
                        "name": "Dating"
                    }
                ]
            },
            {
                "id": 1574,
                "name": "Base YM Floor",
                "description": "",
                "hard_floor": 1.00,
                "soft_floor": 1.50,
                "default_calculation_type": "gross",
                "apply_floor_to_direct": true,
                "profile_id": null,
                "priority": 1,
                "members": null,
                "brands": null,
                "categories": null
            }
        ]
    }
}