Placement service
The Placement Service enables you to create placement ad tags as well as modify and view them. You will use placements for managed publishers or for direct media buys.
- Placement IDs and their associated information are stored server-side with Xandr and are easy to modify.
- When you create a placement, you specify the types of creatives that are allowed to serve on it (see
supported_media_types
andsupported_media_subtypes
below).
Note
Targeting of advertisers, line items, or campaigns via this service will override any targeting defined by the Payment Rule Service.
Tag format
Once you have the placement ID, you format the placement tag as follows and hand it to the publisher you represent or with whom you have a guaranteed buy.
Note
"id"
is the placement ID.
Tip
You can include placeholders to pass in additional query string parameters to our platform during the ad call.
Important
When serving your placement tags on secure inventory (SSL), you should alter the below tags to use the host: "https://secure.adnxs.com/..."
IFRAME
<!-- BEGIN IFRAME TAG < - DO NOT MODIFY -->
<IFRAME SRC="https://ib.adnxs.com/tt?id=2704"
FRAMEBORDER="0"
SCROLLING="no"
MARGINHEIGHT="0"
MARGINWIDTH="0"
TOPMARGIN="0"
LEFTMARGIN="0"
ALLOWTRANSPARENCY="true"
WIDTH="120"
HEIGHT="600"></IFRAME>
<!-- END TAG -->
JavaScript
<!-- BEGIN JS TAG < - DO NOT MODIFY -->
<SCRIPT SRC="https://ib.adnxs.com/ttj?id=2704" TYPE="text/javascript"></SCRIPT>
<!-- END TAG -->
REST API
Note
The code
, placement_code
, site_code
, and publisher_code
can be used in place of the corresponding IDs in the calls below.
HTTP Method | Endpoint | Description |
---|---|---|
POST |
https://api.appnexus.com/placement?publisher_id=PUBLISHER_ID https://api.appnexus.com/placement?site_id=SITE_ID (placement JSON) |
Add a placement (NETWORK). |
PUT |
https://api.appnexus.com/placement?id=PLACEMENT_ID&publisher_id=PUBLISHER_ID https://api.appnexus.com/placement?code=PLACEMENT_ID&site_id=SITE_ID (placement JSON) |
Modify an existing placement (NETWORK). |
DELETE |
https://api.appnexus.com/placement?id=PLACEMENT_ID&publisher_id=PUBLISHER_ID https://api.appnexus.com/placement?code=PLACEMENT_CODE&publisher_code=PUBLISHER_CODE |
Delete an existing placement. |
GET |
https://api.appnexus.com/placement?publisher_id=PUBLISHER_ID |
View all of the placements for one of your publishers. |
GET |
https://api.appnexus.com/placement?id=PLACEMENT_ID |
View a specific placement for one of your publishers. |
GET |
https://api.appnexus.com/placement?id=1,2,3 |
View all placements for a site. |
JSON fields
Field | Type | Description |
---|---|---|
id |
int | The ID of the placement. Default: Auto-incremented number (i.e. 123) Required On: PUT , in query string |
name |
string (100) | The name of the placement. Required On: POST |
code |
string (100) | The custom code for the placement. Note: Codes must be alphanumeric and cannot contain spaces. The following characters are also permitted: - period (".") - underscore ("_") - hyphen ("-") - percent ("%") |
code2 |
string (100) | The second custom code for the placement. Note: Codes must be alphanumeric and cannot contain spaces. The following characters are also permitted: - period (".") - underscore ("_") - hyphen ("-") - percent ("%") |
code3 |
string (100) | The third custom code for the placement. Note: Codes must be alphanumeric and cannot contain spaces. The following characters are also permitted: - period (".") - underscore ("_") - hyphen ("-") - percent ("%") |
state |
enum | The state of the placement. Possible values: "active" or "inactive" .Default: "active" |
width |
int | The width of the placement. |
height |
int | The height of the placement. |
is_resizable |
Boolean | If the placement uses a friendly iFrame and you want the placement to resize to fit smaller or larger creatives, set this field to true .Default: false |
default_position |
enum | The default position of the placement on the page. Possible values: - "above" (above the fold) "below" (below the fold) "unknown" Default: "unknown" |
publisher_id |
int | The ID of the publisher associated with the placement. Required On: POST |
publisher_name |
string (100) | The name of the publisher associated with the placement. |
site_id |
int | The ID of this placement's parent site. Each placement must belong to a site. Default: Site of publisher |
site_name |
string (100) | The name of the site on which the placement is used. |
inventory_source_id |
int | Deprecated. |
ad_profile_id |
int | The ID of the ad profile associated with the placement. Note: The preferred way to "assign" an ad profile to a placement is as follows: Create an Ad Quality Rule with a targeting profile (the profile "targets" the placement). Link the Ad Profile to the Ad Quality Rule. Assign the Ad Quality Rule to the publisher. That way you can enjoy a greater flexibility using the targeting profile. |
supported_media_types |
array of objects | The media types that are allowed to serve on the placement. See Supported Media Types below for more details. Attention: If you do not specify either supported_media_types or supported_media_subtypes , the "Banner" media type and all of its subtypes will be allowed by default. |
supported_media_subtypes |
array of objects | The media subtypes that are allowed to serve on the placement. See Supported Media Subtypes below for more details. |
pop_values |
array | Deprecated. |
default_creative_id |
int | Deprecated. Please use default_creatives instead. |
default_creatives |
array | The default creatives that will be displayed instead of a PSA when there is no auction winner. For each default creative, the reserve price is set with the "price" field in the array. See Default Creatives below for more details.Note: The placement will not pop if the reserve price is not met, except in the case of a prepop. |
reserve_price |
double | The reserve price for each of the placement's default creatives is set in the default_creatives array (see Default Creatives below). If the placement does not have default creatives, a reserve price can be set here for the placement; this is not best practice, however, as the reserve price may cause the display of a PSA. Important: A Yield Management Profile will supersede any reserve price settings at the Placement level. If you have such a profile, you must set your desired reserve price via a hard floor. |
hide_referer |
Boolean | If true , the referrer will not be reported. |
default_referrer_url |
string | If a Visibility Profile is set to hide inventory URLs in your bid requests, you can set this field to pass a vanity URL instead. This is particularly useful in cases where publishers do not want to share actual domains but nonetheless want buyers to be able to identify them by domain. |
visibility_profile_id |
int | The ID of the visibility profile assigned directly to the placement. For more details about visibility profiles, see the Visibility Profile. |
exclusive |
Boolean | Read-only. To designate whether a placement's inventory is to be made available for resale, use the rtb field in the marketplace_map object of the placement's site. See Site Service for a description of this field. All inventory made available for resale is part of the RTB Marketplace.Default: False |
pixel_url |
string | Piggyback call upon user loading placement. Default: null |
pixel_type |
enum | Identifies the type of pixel. Possible values are "javascript" or "image" .Default: image |
content_categories |
array | A list of Content Categories associated with this placement. At most 20 categories can be specified for a placement. |
filtered_advertisers |
array | A list of advertisers that are allowed to target the placement. |
filtered_line_items |
array | A list of line items that are allowed to target the placement. |
filtered_campaigns |
array | A list of campaigns that are allowed to target the placement. |
segments |
array | A list of segments that users will be added to upon viewing this placement. |
estimated_clear_prices |
array of objects | The bid amount that has historically won the majority (95%) of the 3rd party auctions in which it participates. See Estimated Clear Prices below for more details. |
media_subtypes |
array | Deprecated. Please use supported_media_types and supported_media_subtypes instead. |
intended_audience |
enum | Values for self-auditing only. Possible values: - "general" - "children" - "young_adult" - "mature" |
inventory_attributes |
array | The sensitive attributes contained by the placement. Tip: The inventory_attributes can also be applied at the site level, and in this case will influence objects at the placement level, as well. This is an array of objects with IDs. Please see the Inventory Attribute Service for a list of IDs. |
audited |
Boolean | If true , the placement has been self-audited by the owner.Default: false |
audit_level |
enum | Values for self-auditing only. Note: The self-audits at the site level can be overridden at the placement level. Possible values: - "site" - Use this value if the audited field is set to false in the placement but true in the site.- "placement" - Use this value if the audited field is set to true in the placement.Default: "site" |
default_calculation_type |
enum | This determines the bid price threshold below which a default creative will be served. You can choose whether this threshold is the network's gross revenue or the publisher's net revenue. If there are no additional eligible campaigns, nor any default creatives available, a PSA is served. Possible values: "gross" or "net" .Default: "gross" |
apply_floor_to_direct |
Boolean | Removed. Please use floor_application_target instead. |
demand_filter_action |
string | Indicates demand sources which can be included or excluded. Default: default |
floor_application_target |
enum | The type of bids to which the reserve price is applied. Possible values: - "external_only" - The reserve price is applied only to external bids (buying member and selling member are different). Use this option if you would rather serve an available managed learn impression than serve a default, even if this means exceeding the maximum % of daily volume for learn (max_learn_pct field in Publisher Service).- "external_non_preferred" - The reserve price is applied to external bids (buying member and selling member are different) or when the impression is an available managed learn impression that exceeds the maximum % of daily volume for learn. Use this option if you would rather serve a default than serve an available managed learn impression that would exceed the maximum % of daily volume for learn.- "all" - The reserve price is applied to all bids except managed learn impressions within the maximum % of daily volume for learn.Default: "all" |
pixel_url_secure |
string | Secure piggyback call upon user loading placement. Default: null |
site_audit_status |
enum | Indicates how the site has decided to perform creative audits. Possible values are "self" or "unaudited" .Default: unaudited |
toolbar |
object | Sellers must declare all toolbar and browser-plugin inventory. If a seller assigns the "toolbar" inventory attribute, this additional meta data must also be included. |
acb_code |
string (32) | Deprecated. |
tag_data |
string | Deprecated. |
cost_cpm |
double | If a value exists, it will be used as the payment information for the placement. This will override any payment rules associated with the publisher. Default: null |
is_prohibited |
Boolean | Read-only. If true , the placement has been prohibited due to violation of Xandr content policies. Direct and third-party auctions will not be run for a prohibited placement.Default: false |
last_modified |
timestamp | Read-only. The date and time when the placement was last modified. |
stats |
object | The stats object has been deprecated (as of October 17, 2016). Use the Report Service to obtain statistical information instead. |
content_retrieval_timeout_ms |
int | The timeout this placement will set on content retrieved from "mediated" creatives, i.e., creatives whose content_source is set to "mediation" . For more information, see the Creative Service. - If set to 0 , the ad server will use the value from the Member Service- Defaults to 0 if not provided to the API on PUT or POST calls.- If ad server reads a 0 in this field, it will perform a member lookup and use the default timeout defined by the Member Service (assuming it's also non-zero).- When creating a placement, no values will be copied into this field from the member's default settings. You must explicitly specify them in your calls to POST . For more information, see the default_content_retrieval_timeout_ms field of the Member Service.Default: 0 |
enable_for_mediation |
Boolean | This will be the source of truth for whether a placement should accept mediated content. Unless set on PUT or POST , this field will inherit its default value from the member. If the default value is changed on the Member Service, that action will not retroactively impact placements created previously; they will continue to be set to the old default value. In other words, the value of this field cannot be updated retroactively by setting the member default. For more information, see the default_enable_for_mediation field of the Member Service.Default: Inherited from default_enable_for_mediation field of the Member Service. |
private_sizes |
array of objects | The list of placement sizes that may be allowed to serve in deals and packages. See Private Sizes below for more details. |
video |
object | The media subtype allowed to serve on the placement. See Video Settings below for more details. Default: null |
ad_types |
array of objects | Contains information relating to placement types, including the ad type ID and information about the renderer. For more information, see Ad Types below. Default: null Required On: PUT |
use_detected_domain |
boolean | Read-only. Whether to use the detected domain versus the reported domain. Defaults to true for all clients.Default: true |
mime_types |
array of strings | The list of mime types to include or exclude on the placement. supported_mime_types_action_include below is used to specify whether to include or exclude those mime types. For a list of the strings used to identify each mime types, see Supported Mime Types.Default: empty |
supported_mime_types_action_include |
boolean | If true , the mime types listed in the mime_types array will be included.Default: false |
handles_mixed_media |
boolean | This tells our platform whether the video player can support a VAST file with different mime types. Default: true |
tinytag_renderer_asset_floor_prices |
array of objects | Associates floor prices to native creatives that have been assigned to the placement. For additional information, see Tinytag Renderer Asset Floor Prices. Required On: PUT |
is_ss_native_assembly_enabled |
boolean | When enabled, although the original request will be a banner request, the requests that are sent to bidders will have native info set in order to receive native assets back in the responses. The final response will be set back to a banner ad type with a native assembled ad markup attached. If true then yes. |
Supported media types
Creatives are categorized by media type and media subtype. Media type defines the general display style of the creative, for example,
"Banner"
, and media subtype defines the specific display style of creatives, for example, "Standard Banner"
or "In-Banner Video"
. You can use this array to limit the media type, the general display style of creatives, that can serve on a placement. To limit the media subtype, the specific display style of creatives, use the supported_media_subtypes
array (see Supported Media Subtypes below).
Field | Type | Description |
---|---|---|
id |
int | The ID of the allowed media type. You can use the Media Type Service to view all media types. Default: 1 |
name |
string | The name of the allowed media type. Default: "Banner" |
media_type_group_id |
int | The group ID for the media type. |
uses_sizes |
enum | Whether the media type has size specifications. Possible values: - "always" - "sometimes" - "never" |
last_modified |
date | When the allowed_media_type object was last updated. |
Supported media subtypes
Creatives are categorized by media type and media subtype. Media type defines the general display style of the creative, for example, "Banner"
, and media subtype defines the specific display style of creatives, for example, "Standard Banner"
or "In-Banner Video"
. You can use this array to limit the media subtype, the specific display style of creatives, that can serve on a placement. To limit the media type, the general display style of creatives, use the supported_media_types
array (see Supported Media Types above).
Field | Type | Description |
---|---|---|
id |
int | The ID of the allowed media subtype. You can use the Media Subtype Service to view all media subtypes. Default: null |
name |
string | The name of the allowed media subtype. |
is_private |
boolean | Whether the media subtype is set to private. If true then yes. |
media_type_group_id |
int | The group ID for the media type. |
Note
Supported Media Types and Media Subtypes
- If you do not specify either supported media types or supported media subtypes, the
"Banner"
media type and all of its subtypes will be allowed by default. - You can combine the
"Banner"
and"Text"
media types, and any combination of their media subtypes, on a single placement, but you cannot combine any of the other media types and media subtypes. This limitation ensures that only appropriate creatives are served on a placement. For example, a placement that allows creatives of the media type"Video"
is intended to be fed to a video player; it would not make sense to allow creatives of any other media type, such as"Interstitial"
, to serve on the placement. - You can set a placement to allow the
"Expandable"
media type or any of its subtypes for direct inventory. If you want to support expandable creatives for placements that are available for reselling to other platform members, please provide the placement's ID to support for verification.
Supported mime types
The mime_types
array of objects supports the mime types shown in the following table. If no mime types are specified, all mime types will be accepted. The Placement API uses the string in the Name column. If you need to pass this information in a tag, use the ID.
Name | Id |
---|---|
application/x-shockwave-flash |
1 |
video/x-flv |
2 |
video/mp4 |
3 |
video/webm |
4 |
application/javascript |
5 |
application/octet-stream |
6 |
image/jpeg |
7 |
image/gif |
8 |
image/png |
9 |
application/zip |
10 |
application/vnd.ms-asf |
11 |
video/x-ms-wmv |
12 |
video/ogg |
13 |
video/x-msvideo |
14 |
video/mpeg |
15 |
video/quicktime |
16 |
video/3gpp |
17 |
video/3gpp2 |
18 |
video/x-m4v |
19 |
audio/ogg |
20 |
audio/x-pn-realaudio |
21 |
audio/mpeg |
22 |
text/css |
23 |
text/html |
24 |
text/plain |
25 |
audio/mp4 |
26 |
Video settings
If the supported_media_type
is "video"
or the supported_media_subtypes
is "Standard VAST"
, these fields should be included in the video
object. Please see Examples below.
Note
The following settings affect auction outcomes: for Outstream player settings, which determine the ultimate behavior of the Outstream video player, see "Outstream Video Player Settings" in our UI documentation.
Field | Type | Description |
---|---|---|
id |
int | A unique ID for the video settings object. |
width |
int | The width of the video creative. |
max_duration_secs |
int | The maximum duration of a video ad that is allowed to be played on the placement. - If maximum_number_ads is > 1 , then the max duration applies to the entire length of an ad pod (a linear grouping of more than one ad designed to fill a single placement).Note: This field must be set in order to enable ad pods. |
maximum_ad_duration_secs |
int | The maximum video ad duration in seconds of any single ad that can be played on the placement. This only applies to ad pods. |
maximum_number_ads |
int | The maximum number of ads that are allowed to be played on the placement. If maximum_number_ads is > 1 , then the placement can be an ad pod (a linear grouping of more than one ad designed to fill a single placement). |
start_delay_secs |
int | The start delay in seconds for the placement. If the start delay value is > 0 , then the position of the placement is "mid-roll" .Note: This field must be set if the context is "mid-roll" . |
skipoffset_seconds |
int | The number of seconds that is allowed for the video to play, before it can be skipped. The default value is null . CAUTION: If you set this value to anything but null , the supports_skippable field must be set to true . (See below). |
supports_skippable |
boolean | The ad slot is skippable. Possible values: "true" or "false" |
context |
string | Roll position of the video creative. Possible Values: "pre-roll" , "mid-roll" , "post-roll" .Important: This field must be set in order to enable ad pods. |
layback_method |
string | The different playback methods are: - Auto-play, sound-on - Auto-play, sound-off - Click-to-play - Mouse-over - Auto-play, sound unknown Possible values: - "auto_play_sound_on" - "auto_play_sound_off" - "click_to_play" - "mouse_over" - "auto_play_sound_unknown" - null |
frameworks |
array of strings | The framework of the placement. Options include: - VPAID 1.0 - VPAID 2.0 - MRAID-1 - ORMMA - MRAID-2 Possible values: - "vpaid_1_0" - "vpaid_2_0" - "mraid_1" - "ormma" - "mraid_2" |
video_bumpers |
array of objects | The bumpers that can be associated with the ad pod. Bumper duration is not included in the overall duration of the ad pod. See video bumpers object. |
player_vast_version |
string | This field specifies the highest vast version the placement supports, and should be set to highest value that your player supports. Creatives that require a vast version higher than your player version will not be eligible to serve in your placement. Possible values: - 2.0 - 3.0 - 4.0 CAUTION: Specifying a value higher than your player supports may cause errors when unsupported creatives are rendered. |
vmin_ad_duration |
int | The minimum creative duration allowed, in seconds. |
minbitrate |
int | The minimum bitrate in kbps. |
mf_min_width |
int | The minimum width of the video creative. |
mf_min_height |
int | The minimum height of the video creative. |
aspect_ratios |
array of objects | The creative aspect ratio that can serve for a video placement. The array contains ratio_width and ratio_height . |
Video bumpers
This array of objects contains information relating to the bumpers on an ad pod.
Field | Type | Description |
---|---|---|
video_bumper_type |
string | The type of bumper. Options include: - intro - outro Default: null |
max_duration_secs |
int | The max duration of the bumper. Default: null |
Aspect ratios
This array of objects contains information about creative aspect ratio that can serve for a video placement.
Field | Type | Description |
---|---|---|
ratio_width |
int | The width of the aspect ratio |
ratio_height |
int | The height of the aspect ratio |
Ad types
This array of objects contains information relating to placement types, including the ad type ID and information about the renderer.
Field | Type | Description |
---|---|---|
id |
int | The ID of the ad_type .Possible values: 1 = Banner2 = Video3 = NativeDefault: null Required On: POST /PUT |
renderer_id |
int | The ID of the renderer. Possible values: 1 = outstream banner2 = outstream videoDefault: null Required On: POST /PUT |
name |
string | The name of the ad_type in all lowercase letters for example video or banner . |
display_name |
string | The display name of the ad_type , shown as the ad type with initial caps, for example Video or Banner . |
renderer |
multi object | An object consisting of the id and display_name of the renderer.Default: null Required On: POST /PUT |
Tinytag renderer asset floor prices
This array of objects is used to associate floor prices to native creatives that have been assigned to the placement.
Field | Type (Length) | Description |
---|---|---|
renderer_id |
int | The ID of the renderer. Required On: POST /PUT |
ad_type_id |
int | The ID of the ad_type . This will always be 3 since you can only associate floor prices with native creatives.Default: 3 Required On: POST /PUT |
asset_type |
string | The asset type. Possible values include: - main_image - video Required On: POST /PUT |
floor_price |
double | The preferred bid amount in exchange for the native asset's impressions. Required On: POST /PUT |
Default creatives
You use this array to assign default creatives to the placement. Please note the following requirements:
A default creative must not be expired. See the
is_expired
field in the Creative Service for more information.A default creative must be assigned to a creative template that matches the
supported_media_types
andsupported_media_subtypes
of the placement. For example, if the placement allows creatives of the"Banner"
media type, you would not be able to associate default creatives that use a creative template for the"Interstitial"
media type. See thetemplate
field in the Creative Service for more information.If the placement is sized (the
"width"
and"height"
fields are defined for the placement), this array should contain only one creative with the matching dimensions.
Field | Type | Description |
---|---|---|
id |
int | The ID of the default creative. |
width |
int | The width of the default creative. |
height |
int | The height of the default creative. |
price |
double | The reserve price for the default creative. A winning bid must be above this price. |
name |
string | Read-only. The name of the default creative. |
Pop values
If the supported_media_type
is "Pop"
, or the supported_media_subtypes
is "Popup"
or "Popunder"
, these fields should be included in the pop_values
array. See below for an example.
Field | Type | Description |
---|---|---|
pop_freq_times |
int | Number of times that the tag can be popped to a unique user ID in pop_frequency_duration seconds. Has no effect when pop_is_prepop is set to true .Default: No frequency cap |
pop_freq_duration |
int | See pop_freq_times .Default: No frequency cap |
pop_is_prepop |
Boolean | If true , the tag is a prepop tag and will serve into a window that the publisher page has already popped.Default: false |
pop_max_width |
int | If pop_max_width is specified, any creative shown by the tag must have a width equal to or smaller than pop_max_width Default: no max width . |
pop_max_height |
int | The max height of the creative. If pop_max_height is specified, any creative shown by the tag must have a height equal to or smaller than pop_max_height .Default: no max height |
Estimated clear prices
Field | Type | Description |
---|---|---|
clear_price |
int | The bid amount that has historically won the majority (95%) of the 3rd party auctions in which it participates for this placement. |
average_price |
double | This is the average of all bids submitted for this placement. |
width |
int | When exporting sizeless placement tags to be served, this determines the width of the placement. |
height |
int | When exporting sizeless placement tags to be served, this determines the height of the placement. |
verified |
Boolean | Indicates whether the creative has been verified. |
geo_country |
string | The country code for the geographical location associated with the impression. |
Private sizes
This array determines the specific placement sizes that are allowed to serve for a custom deal or in a package. The override_size_preference
in the Deal Service or Package Service must be set to append
for these private sizes to serve along with the standard placement sizes.
Field | Type | Description |
---|---|---|
width |
int | The width of the placement. |
height |
int | The height of the placement. |
Stats
The stats
object has been deprecated (as of October 17, 2016). Use the Report Service to obtain statistical information instead.
Toolbar & browser plug-in declaration
According to platform policy, sellers must identify all toolbar/browser plug-in inventory and segregate it from other inventory on its own placements. To identify toolbar inventory, sellers must:
- Set the
inventory_attribute
appropriately. - Send the required information in the toolbar array, described here:
Parameter | Type | Description |
---|---|---|
name |
string | The common trade name of the toolbar. |
company |
string | The developer of the toolbar. Please identify the legal business entity, not a trade name. |
tos_url |
string | A link to a web page where our auditors can find complete terms of service. |
install_url |
string | A link to a web page where our auditors can install the toolbar. |
Examples
Viewing all placements for one of your publishers
$ curl -b cookies -c cookies 'https://api.appnexus.com/placement?publisher_id=88888'
{
"response": {
"status": "OK",
"count": 4,
"start_element": 0,
"num_elements": 100,
"placements": [
{
"id": 594595,
"name": "Test Placement 1",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": 300,
"height": 250,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": "",
"pixel_type": "image",
"last_modified": "2011-10-24 19:45:31",
"media_subtypes": [
"banner"
],
"intended_audience": "general",
"audited": true,
"audit_level": "placement",
"default_calculation_type": "gross",
"publisher_name": "National Public Radio",
"site_name": "[Test Publisher 1] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "include",
"is_resizable": true,
"pixel_url_secure": "",
"floor_application_target": "all",
"pop_values": null,
"inventory_attributes": [
{
"id": 2,
"name": "Political opinion"
},
{
"id": 16,
"name": "Blogs"
}
],
"supported_media_types": [
{
"name": "Banner",
"id": 1
}
],
"supported_media_subtypes": null,
"content_categories": [
{
"id": 7,
"name": "Arts & Entertainment",
"is_system": true
},
{
"id": 17,
"name": "News",
"is_system": true
},
{
"id": 25,
"name": "Society",
"is_system": true
},
{
"id": 11445,
"name": "Books & Literature",
"is_system": true
}
],
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": [
{
"id": 35081,
"name": "Test Advertiser 1"
}
],
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
},
{
"id": 605055,
"name": "Test Placement 2",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": null,
"height": null,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2012-03-08 00:49:50",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "Test Publisher 1",
"site_name": "[Test Publisher 1] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "default",
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"pop_values": null,
"inventory_attributes": null,
"supported_media_types": [
{
"id": 1,
"name": "Banner"
},
{
"id": 5,
"name": "Text"
}
],
"supported_media_subtypes": null,
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
},
{
"id": 605056,
"name": "Test Placement 3",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": null,
"height": null,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2012-03-08 00:54:37",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "Test Publisher 1",
"site_name": "[Test Publisher 1] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "default",
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"pop_values": null,
"inventory_attributes": null,
"supported_media_types": null,
"supported_media_subtypes": [
{
"id": 3,
"name": "In-Banner Video",
"media_type": {
"id": 1
}
}
],
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
},
{
"id": 605057,
"name": "Test Placement 4",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": 1,
"height": 1,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2012-03-08 01:07:47",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "Test Publisher 1",
"site_name": "[Test Publisher 1] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "default",
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"pop_values": null,
"inventory_attributes": null,
"supported_media_types": [
{
"id": 3,
"name": "Interstitial"
}
],
"supported_media_subtypes": null,
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
}
]
}
}
Viewing a specific placement
$ curl -b cookies -c cookies 'https://api.appnexus.com/placement?id=605057'
{
"response": {
"status": "OK",
"count": 1,
"start_element": 0,
"num_elements": 100,
"placement": {
"id": 605057,
"name": "Test Placement 4",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": 1,
"height": 1,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2012-03-08 01:07:47",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "Test Publisher 1",
"site_name": "[Test Publisher 1] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "default",
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"pop_values": null,
"inventory_attributes": null,
"supported_media_types": [
{
"id": 3,
"name": "Interstitial"
}
],
"supported_media_subtypes": null,
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
}
}
}
Adding a placement that allows only creatives with the "Interstitial"
media type
$ cat placement
{
"placement": {
"name": "Placement for Interstitials",
"publisher_id": 88888,
"supported_media_types": [
{
"id": 3
}
],
"video": 10,
"supports_skippable": true,
"player_vast_version" "3.0"
}
}
}
$ curl -b cookies -c cookies -X POST -d @placement 'https://api.appnexus.com/placement'
{
"response": {
"status": "OK",
"count": 1,
"id": 605058,
"start_element": 0,
"num_elements": 100,
"placement": {
"id": 605058,
"name": "Placement for Interstitials",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": 1,
"height": 1,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2012-03-08 01:41:52",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "Test Publisher 1",
"site_name": "[Test Publisher 1] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "default",
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"pop_values": null,
"inventory_attributes": null,
"supported_media_types": [
{
"id": 3,
"name": "Interstitial"
}
],
"supported_media_subtypes": null,
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
}
}
}
Adding a placement that allows only creatives with the "In-Banner Video"
media subtype
$ cat placement
{
"placement": {
"name": "Placement for In-Banner Video",
"publisher_id": 88888,
"supported_media_subtypes": [
{
"id": 3
}
],
"video": 10,
"supports_skippable": true,
"player_vast_version" "3.0"
}
}
}
$ curl -b cookies -c cookies -X POST -d @placement 'https://api.appnexus.com/placement'
{
"response": {
"status": "OK",
"count": 1,
"id": 605059,
"start_element": 0,
"num_elements": 100,
"placement": {
"id": 605059,
"name": "Placement for In-Banner Video",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": null,
"height": null,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2012-03-08 01:46:43",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "Test Publisher 1",
"site_name": "[Test Publisher 1] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "default",
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"pop_values": null,
"inventory_attributes": null,
"supported_media_types": null,
"supported_media_subtypes": [
{
"id": 3,
"name": "In-Banner Video",
"media_type": {
"id": 1
}
}
],
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
}
}
}
Adding a placement that allows only creatives with the "Popup"
media subtype
$ cat placement
{
"placement": {
"name": "Placement for Popups",
"publisher_id": 88888,
"supported_media_subtypes": [
{
"id": 2
}
],
"pop_values":{
"pop_is_prepop":false,
"pop_freq_times":4,
"pop_freq_duration":1440,
"pop_max_width":500,
"pop_max_height":100
}
}
}
$ curl -b cookies -c cookies -X POST -d @placement 'https://api.appnexus.com/placement?publisher_id=88888'
{
"response": {
"status": "OK",
"count": 1,
"id": 605076,
"start_element": 0,
"num_elements": 100,
"placement": {
"id": 605076,
"name": "Placement for Popups",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 88888,
"site_id": 188040,
"reserve_price": null,
"width": null,
"height": null,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2012-03-08 15:56:05",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "National Public Radio",
"site_name": "[National Public Radio] - ROS",
"site_audit_status": "unaudited",
"demand_filter_action": "default",
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"pop_values": {
"pop_freq_times": 4,
"pop_freq_duration": 1440,
"pop_is_prepop": false,
"pop_max_width": 500,
"pop_max_height": 100
},
"inventory_attributes": null,
"supported_media_types": null,
"supported_media_subtypes": [
{
"id": 2,
"name": "Popup",
"media_type": {
"id": 2
}
}
],
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null
}
}
}
Adding a placement that allows only creatives with the "Video Standard VAST"
media subtype
$ cat placement
{
"placement": {
"name": "Placement for Standard VAST Video",
"publisher_id": 585173,
"supported_media_subtypes": [
{
"id": 64
}
],
"video": {
"id": 5,
"width": 750,
"max_duration_secs": 30,
"supports_skippable": true,
"player_vast_version": "3.0",
"context": "pre-roll",
"playback_method": null,
"frameworks": [
"vpaid_1_0",
"vpaid_2_0",
"mraid_1",
"ormma",
"mraid_2"
]
}
}
}
$ curl -b cookies -c cookies -X POST -d @placement 'https://api.appnexus.com/placement?publisher_id=585173'
{
"response": {
"status": "OK",
"count": 1,
"id": 5078562,
"start_element": 0,
"num_elements": 100,
"placement": {
"id": 5078562,
"name": "Placement for Standard VAST Video",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 585173,
"content_retrieval_timeout_ms": 0,
"enable_for_mediation": true,
"is_prohibited": false,
"site_id": 1275896,
"default_referrer_url": null,
"reserve_price": null,
"width": 1,
"height": 1,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"inventory_source_id": null,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2015-07-07 20:44:42",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "National Public Radio",
"site_name": "[National Public Radio] - ROS",
"site_audit_status": "unaudited",
"member_id": 958,
"demand_filter_action": "default",
"visibility_profile_id": null,
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"client_js_tracking_pct": 0,
"use_detected_domain": true,
"pop_values": null,
"toolbar": null,
"inventory_attributes": null,
"supported_media_types": null,
"supported_media_subtypes": [
{
"id": 64,
"name": "Standard VAST",
"media_type": {
"id": 4
}
}
],
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null,
"private_sizes": null,
"video": {
"id": 9,
"width": 750,
"max_duration_secs": 30,
"supports_skippable": true,
"context": "pre-roll",
"playback_method": null,
"frameworks": [
"vpaid_1_0",
"vpaid_2_0",
"mraid_1",
"ormma",
"mraid_2"
]
}
}
}
}
Adding an ad pod placement that allows an intro bumper
$ cat placement
{
"placement": {
"video": {
"supports_skippable": false,
"player_vast_version": "3.0",
"playback_method": null,
"max_duration_sec": 200,
"maximum_number_ads": 20,
"context": "mid-roll",
"start_delay_secs": 30,
"frameworks": [
"vpaid_2_0"
],
"video_bumpers": [
{
"video_bumper_type": "outro",
"max_duration_secs": 30
}
]
}
}
}
$ curl -b cookies -c cookies -X POST -d @placement 'https://api.appnexus.com/placement?publisher_id=626425'
{
"response": {
"status": "OK",
"count": 1,
"id": "11323022",
"start_element": 0,
"num_elements": 100,
"placement": {
"id": 11323022,
"name": "Ad Pod Placement",
"code": null,
"code2": null,
"code3": null,
"state": "active",
"cost_cpm": null,
"publisher_id": 626425,
"content_retrieval_timeout_ms": 0,
"enable_for_mediation": true,
"is_prohibited": false,
"site_id": 1433875,
"default_referrer_url": null,
"reserve_price": null,
"width": 1,
"height": 1,
"default_position": "unknown",
"default_creative_id": null,
"ad_profile_id": null,
"acb_code": null,
"tag_data": null,
"hide_referer": false,
"exclusive": false,
"pixel_url": null,
"pixel_type": "image",
"last_modified": "2017-05-23 15:27:18",
"media_subtypes": null,
"intended_audience": null,
"audited": false,
"audit_level": "site",
"default_calculation_type": "gross",
"publisher_name": "New_Publisher",
"site_name": "[New_Publisher] - ROS",
"site_audit_status": "unaudited",
"member_id": 958,
"demand_filter_action": "default",
"visibility_profile_id": null,
"is_resizable": false,
"pixel_url_secure": null,
"floor_application_target": "all",
"client_js_tracking_pct": 0,
"use_detected_domain": true,
"auction_timeout_ms": null,
"pop_values": null,
"toolbar": null,
"inventory_attributes": null,
"supported_media_types": null,
"supported_media_subtypes": [
{
"id": 64,
"is_private": false,
"name": "Standard VAST",
"media_type": {
"id": 4
}
}
],
"content_categories": null,
"segments": null,
"estimated_clear_prices": [
{
"clear_price": 1,
"average_price": 0.5,
"width": 0,
"height": 0,
"verified": true,
"geo_country": ""
}
],
"filtered_advertisers": null,
"filtered_line_items": null,
"filtered_campaigns": null,
"default_creatives": null,
"private_sizes": null,
"video": {
"id": 282568,
"width": null,
"max_duration_secs": null,
"supports_skippable": false,
"context": "mid-roll",
"playback_method": null,
"maximum_number_ads": 20,
"maximum_ad_duration_secs": null,
"start_delay_secs": 30,
"frameworks": [
"vpaid_2_0"
],
"video_bumpers": [
{
"video_bumper_type": "outro",
"max_duration_secs": 30
}
]
},
"ad_types": null
}
}
}
Adding a placement with the skipoffset feature enabled
{
"placement": {
"id": 11633087,
...
"video": {
"id": 336328,
"width": null,
"max_duration_secs": 60,
"supports_skippable": true,
"player_vast_version": "3.0",
"context": "pre-roll",
"playback_method": null,
"maximum_number_ads": 3,
"maximum_ad_duration_secs": null,
"start_delay_secs": null,
"use_server_side_trackers": false,
"frameworks": null,
"video_bumpers": [
{
"video_bumper_type": "outro",
"max_duration_secs": 15
}
],
"skipoffset_seconds": 10
}
}
}