Publisher service
The Publisher Service is used to create and update your managed publishers.
REST API
HTTP Method | Endpoint | Description |
---|---|---|
POST |
https://api.appnexus.com/publisher (publisher JSON) |
Add a new publisher (with a default site and placement). |
POST |
https://api.appnexus.com/publisher?create_default_placement=false (publisher JSON) |
Add a new publisher (without a default site and placement). |
PUT |
https://api.appnexus.com/publisher?id=PUBLISHER_ID (publisher JSON) |
Update an existing publisher. |
GET |
https://api.appnexus.com/publisher | View all publishers. |
GET |
https://api.appnexus.com/publisher?id=PUBLISHER_ID | View a specific publisher. |
GET |
https://api.appnexus.com/publisher?id=1,2,3 | View multiple publishers by ID using a comma-separated list. |
DELETE |
https://api.appnexus.com/publisher?id=PUBLISHER_ID | Delete a publisher. Caution: Deleting a publisher deletes all of its child objects as well, including sites, placements, payment rules, and publisher-level ad quality profiles. The deletions are permanent and cannot be reverted. Although deleted objects continue to be available in reporting, you will no longer have visibility into their specific settings. |
GET |
https://api.appnexus.com/publisher/meta | Find out which fields you can filter and sort by. |
If your API call returns an error with "Request failed due to timeout or memory issue", you can append add_mappings=false
to your query parameters. Adding this parameter will only return the top-level API objects, but not their nested children.
For example:
curl -b cookies -c cookies "https://api.appnexus.com/publisher?id=2,3,5,8,13,21&add_mappings=false"
JSON fields
Field | Type | Description |
---|---|---|
id |
int | The ID of the publisher. Default: Auto-incremented number (i.e. 123) |
code |
string (100) | The custom code for the publisher. |
name |
string (255) | The name of the publisher. Required On: POST /PUT |
state |
enum | The state of the publisher. Possible values: "active" or "inactive" .Default: "inactive" |
expose_domains |
boolean | If true , domains associated with the publisher are exposed to other members of the platform.Default: true |
enable_cookie_tracking_default |
boolean | If true , users visiting this publisher's inventory will be tracked via our cookies.Default: true |
reselling_exposure |
enum | The publisher's exposure for reselling to other members of the platform. Possible values: "public" or "private" .Default: "private" |
reselling_exposed_on |
timestamp | The date and time when the publisher was exposed for reselling. Default: "0000-00-00 00:00:00" |
reselling_name |
string (255) | The name that appears in the inventory manager to other members of the platform, if reselling_exposure is true . If this field is empty, the value in the name field is used. |
description |
string (255) | The description that appears in the inventory manager to other members of the platform, if reselling_exposure is true . If this field is empty, no description is shown. |
is_rtb |
boolean | All networks have one publisher object that serves as a so-called "plumbing link" to real-time inventory. This mock publisher has no ad profile, no ad quality rules, no visibility profiles, or any of the other trappings of an actual publisher. All other publishers have is_rtb set to false by default.Default: false |
timezone |
enum | The timezone for this publisher. For details and accepted values, see API Timezones. Default: "EST5EDT" or the member's timezone. |
last_modified |
timestamp | Read-only. The date and time when the publisher was last updated in the our system. |
stats |
array | The stats object has been deprecated (as of October 17, 2016). Use the Report Service to obtain statistical information instead. |
max_learn_pct |
int | The maximum % of the publisher's daily volume that can be used for learn. Tip: If you want us to automatically allocate an optimal percent of impressions to learn to keep introducing new offers as older offers become less profitable, set this field to null .Default: 0 |
learn_bypass_cpm |
int | If an impression selected for learn receives a bid higher than this value from an external buyer, the bid will be accepted and the impression will not be used for learn. Default: 5 |
ad_quality_advanced_mode_enabled |
boolean | If true , multiple ad quality rules can be created for the publisher in the UI.Default: true |
allow_report_on_default_imps |
boolean | If true , publisher users can report on detailed impression and revenue metrics in the UI, such as imps filled, imps defaulted, total revenue, total revenue eCPM, filled revenue, filled revenue eCPM, defaulted revenue, and defaulted revenue eCPM.Default: false |
default_site_id |
int | The ID of the publisher's default site. The site is created automatically when the publisher is added. Caution: When adding a publisher, you can prevent a default site from being created by passing "create_default_placement=false" in the query string of the POST request.Default: Auto-incremented number (i.e. 123). |
default_ad_profile_id |
int | Most publishers should use the base ad quality rule associated with the base_ad_quality_rule_id . Ad quality rules provide more control over what is allowed to serve on a publisher's inventory. If there is no base ad quality rule, the system will use the ad profile associated with the default_ad_profile_id . For more information, see the Ad Profile Service.Default: The member's default ad profile ID. |
billing_dba |
string (100) | The "Doing Business As" name to use for billing purposes. Required On: POST /PUT |
billing_address1 |
string (100) | The street information of the billing address. Required On: POST /PUT , if inventory_relationship is set to direct . |
billing_address2 |
string (100) | The street information of the billing address (cont.). |
billing_city |
string (100) | The city of the billing address. Required On: POST /PUT , if inventory_relationship is set to direct . |
billing_state |
string (100) | The state of the billing address. Required On: POST /PUT , if inventory_relationship is set to direct . |
billing_zip |
string (100) | The zip code of the billing address. Required On: POST /PUT , if inventory_relationship is set to direct . |
billing_country |
string (100) | The country of the billing address. Required On: POST /PUT , if inventory_relationship is set to direct . |
accept_supply_partner_usersync |
boolean | If true , the publisher accepts usersync pixels from platform supply partners. (Recommended) |
accept_demand_partner_usersync |
boolean | If true , the publisher accepts usersync pixels from platform demand partners. (Recommended) |
accept_data_provider_usersync |
boolean | If true , the publisher accepts usersync pixels from platform data providers. (Recommended) |
ym_profile_id |
int | The unique identifier for the yield management profile applied to the publisher. |
allow_cpm_managed |
boolean | If you allow your managed advertisers' campaigns with a CPM bidding strategy to serve on this publisher. Default: true |
allow_cpm_external |
boolean | If you allow demand partners to purchase inventory on a CPM basis on this publisher. Default: true |
allow_cpa_managed |
boolean | If you allow your managed advertisers' campaigns with a cpa bidding strategy to buy inventory from this publisher. Default: true |
allow_cpa_external |
boolean | If you allow your demand partners to purchase inventory on a CPA basis. Default: false |
allow_cpc_managed |
boolean | If you allow your managed advertisers' campaigns with a cpc bidding strategy. Default: true |
allow_cpc_external |
boolean | If you allow your demand partners to purchase inventory on a CPC basis. Default: false |
managed_cpc_bias_pct |
int | Risk Premium: What percent you will bias a CPC bid by when comparing it to a CPM bid from managed advertisers. This field is the inverse of the value displayed in the UI, e.g., 20 in the UI is represented as 100 - 20 = 80 in the API. Default: 100 |
managed_cpa_bias_pct |
int | Risk Premium: What percent you will bias a CPA bid by when comparing it to a CPM bid from managed advertisers. This field is the inverse of the value displayed in the UI, e.g., 20 in the UI is represented as 100 - 20 = 80 in the API. Default: 100 |
external_cpc_bias_pct |
int | Risk Premium: What percent you will bias a CPC bid by when comparing it to a CPM bid from a buyer. This field is the inverse of the value displayed in the UI, e.g., 20 in the UI is represented as 100 - 20 = 80 in the API. Default: 100 |
external_cpa_bias_pct |
int | Risk Premium: What percent you will bias a CPA bid by when comparing it to a CPM bid from a buyer. This field is the inverse of the value displayed in the UI, e.g., 20 in the UI is represented as 100 - 20 = 80 in the API. Default: 100 |
is_oo |
boolean | If true , the publisher is owned and operated by the network, meaning the network gets 100% of the revenue.Default: false |
base_payment_rule_id |
int | The unique identifier for the publisher's catch-all payment rule. Use the Payment Rule Service to find the ID for the publisher's payment rule you desire. Default: Auto-incremented number (i.e. 123). |
base_ad_quality_rule_id |
int | The unique identifier for the publisher's base ad quality rule. This acts as a "catch-all" ad quality rule in two cases: - There are no conditional ad quality rules that match the current impression. There are no conditional ad quality rules defined. - If the base_ad_quality_rule_id is not defined, the system will use the ad profile associated with the default_ad_profile_id (defined above). For more information, see the Ad Quality Rule Service. |
currency |
enum | The publisher's currency. Warning: This field can be set on POST , but it cannot be updated on PUT .Tip: As a best practice, align currency to the billing currency in order to achieve the best possible local currency experience. Default: Member's default currency or USD. |
visibility_profile_id |
int | The ID of the visibility profile assigned directly to the publisher. For more details about visibility profiles, see the Visibility Profile Service. |
billing_internal_user |
int | |
labels |
array of objects | The optional labels assigned to the publisher. Currently, two labels are available: "Salesperson" and "Account Manager" . For more details, see Labels below.Note: You can report on publisher labels with the Network Analytics report. For example, if you use the "Salesperson" label to specify the name of the salesperson responsible for each publisher, you could run the Network Analytics report filtered by "salesperson_for_publisher" to focus on the publishers that a particular salesperson is responsible for, or grouped by "salesperson_for_publisher" to rank the performance of your salespeople. |
placements |
array of objects | The placements associated with the publisher, including the default placement that is created with the publisher. When you create additional placements, or publisher tags, with the Placement Service, you associate them with a publisher. For more details, see Placements below. |
external_inv_codes |
array of objects | Some sellers use their own codes to break out their inventory more granularly than by Publisher > Site > Placement. This is done via the External Inventory Code Service. This field shows the external inventory codes associated with the publisher. |
cpm_reselling_disabled |
boolean | Read-only. If true , we have detected impression issues on this publisher's inventory and has therefore set "allow_cpm_external" to false , preventing the reselling of the publisher's inventory on a CPM basis.Default: false |
cpc_reselling_disabled |
boolean | Read-only. If true , we have detected click issues on this publisher's inventory and has therefore set "allow_cpc_external" to false , preventing the reselling of the publisher's inventory on a CPC basis.Default: false |
platform_ops_notes |
string | Read-only. Notes about the disabling of CPM/CPC reselling. |
pitbull_segment_id |
int | Warning: This field has been deprecated. |
pitbull_segment_value |
int | Warning: This field has been deprecated. |
publisher_brand_exceptions |
array of objects | An array of brand IDs. Creatives associated with these brand IDs will be allowed to serve on this publisher's page more than once per /mtj call. The brands that you add to this array will be appended to the array of brands in the member_brand_exceptions field of the Member Service. For internal field definitions, see Publisher Brand Exceptions below.Required On: n/a |
seller_page_cap_enabled |
boolean | This field must be set in order to be able to enable page caps for this publisher. Page caps keep creatives associated with a given brand from serving more than once per page load, except for those brand IDs added to the publisher_brand_exceptions array on this service or the member_brand_exceptions array on the Member Service.Note: This setting activates the function but does not make the setting on the UI visible. To see this setting in the UI, contact your representative. Required On: n/a |
inventory_relationship |
enum | The relationship of the inventory to the publisher. Possible values: - unknown - owned_operated - direct - indirect_single_publisher - indirect_multiple_publishers Note: If both is_oo and inventory_relationship are specified, inventory_relationship will overwrite is_oo with the appropriate value based on the relationship.Required On: POST /PUT |
inventory_source |
enum | The source of the inventory. Possible values: - other - rubicon - openx - pubmatic - aol If inventory_source is set to other , then inventory_source_name must be completed. |
inventory_source_name |
string | Publisher (source) name for indirect_single_publisher .Required On: POST /PUT for publishers whose inventory_relationship is set to indirect_single_publisher . |
contact |
object | An array of objects containing contact information for this publisher. Required On: POST /PUT |
use_anx_auction_logic |
boolean | Determines whether ANX Auction Logic will be enabled for the publisher. When set to True , we will automatically handle all floors and price reductions.Default: False |
Contact
Field | Type | Description |
---|---|---|
name |
string | The name of the point of contact for this publisher. |
phone |
string | The phone number for the above point of contact. |
email |
string | The email of the publisher. |
Labels
Field | Type (Length) | Description |
---|---|---|
id |
int | The ID of the label. Possible values: 2 (Salesperson) or 4 (Account Manager). |
name |
enum | Read-only. The name of the label. Possible values: "Salesperson" or "Account Manager" . |
value |
string (100) | The value assigned to the label. For example, for the "Salesperson" label, this could be a name such as "Michael Sellers" . |
Placements
Note
When you add a publisher, a default placement is created automatically and included in this array. You can prevent a default placement from being created automatically by passing "create_default_placement=false"
in the query string of the POST
request.
Field | Type | Description |
---|---|---|
id |
int | The ID of the placement. |
code |
string (100) | The custom code for the placement. |
Publisher brand exceptions
Field | Type | Description |
---|---|---|
brand_id |
int | The ID of the brand whose associated creatives you would like to allow to serve more than once per page load on this publisher's inventory. This setting will only take effect if you toggle the seller_page_cap_enabled field on this service. For more information about brands, see the Brand Service. |
Stats
The stats
object has been deprecated (as of October 17, 2016). Use the Report Service to obtain statistical information instead.
Examples
Add a new publisher
Create a JSON file with the required fields for a publisher.
Note
- Replace the placeholders (e.g., "PUBLISHER_NAME") in the below JSON example with your own values.
- When you create a new publisher, a publisher id (
"id"
in the"publisher"
object),"default_site_id"
, default placement id ("id"
in the"placements"
array), and"base_payment_rule_id"
are automatically generated.
Since the inventory_relationship
field is required, we’ve set it to “direct”
, (but it can be set to other values). We’ve also set state
to “inactive”
for now. Since we don’t provide the other publisher fields in our request, they will be set to their default values and display in the response body. For more information, see Sell-Side Setup.
$ cat publisher
{
"publisher": {
"name": "PUBLISHER_NAME",
"inventory_relationship": "direct",
"billing_dba": "PUBLISHER_DBA",
"billing_address1": "PUBLISHER_ADDRESS",
"billing_city": "PUBLISHER_CITY",
"billing_state": "PUBLISHER_STATE",
"billing_zip": "PUBLISHER_ZIP",
"billing_country": "PUBLISHER_COUNTRY",
"contact": {
"phone": "CONTACT_PHONE",
"email": "CONTACT_EMAIL",
"name": "CONTACT_NAME"
}
}
}
$ curl -b cookies -c cookies -X POST -d @publisher 'https://api.appnexus.com/publisher'
{
"response": {
"status": "OK",
"count": 1,
"id": 233,
"start_element": 0,
"num_elements": 100,
"publisher": {
"id": 233,
"code": null,
"reselling_name": null,
"expose_domains": true,
"is_rtb": false,
"reselling_exposure": "private",
"reselling_exposed_on": "1970-01-01 00:00:01",
"timezone": "EST5EDT",
"last_modified": "2015-05-12 23:58:20",
"max_learn_pct": 0,
"accept_demand_partner_usersync": null,
"learn_bypass_cpm": 5,
"ad_quality_advanced_mode_enabled": true,
"allow_report_on_default_imps": false,
"name": "New Publisher",
"description": "",
"state": "active",
"default_site_id": 229,
"default_ad_profile_id": null,
"billing_dba": null,
"billing_address1": null,
"billing_address2": null,
"billing_city": null,
"billing_state": null,
"billing_zip": null,
"billing_country": null,
"accept_supply_partner_usersync": null,
"accept_data_provider_usersync": null,
"ym_profile_id": null,
"allow_cpm_managed": true,
"allow_cpm_external": true,
"allow_cpa_managed": true,
"allow_cpa_external": false,
"allow_cpc_managed": true,
"allow_cpc_external": false,
"managed_cpc_bias_pct": 100,
"managed_cpa_bias_pct": 100,
"external_cpc_bias_pct": 100,
"external_cpa_bias_pct": 100,
"is_oo": false,
"base_payment_rule_id": 161,
"base_ad_quality_rule_id": null,
"currency": "USD",
"visibility_profile_id": null,
"cpm_reselling_disabled": false,
"cpc_reselling_disabled": false,
"platform_ops_notes": null,
"enable_cookie_tracking_default": true,
"seller_page_cap_enabled": false,
"billing_internal_user": null,
"labels": null,
"placements": [
{
"id": 232,
"code": null
}
],
"external_inv_codes": null,
"contact_info": null,
"publisher_brand_exceptions": null
}
}
}
View information about publisher 10
$ curl -b cookies -c cookies 'https://api.appnexus.com/publisher?id=10'
{
"response": {
"status": "OK",
"count": 1,
"start_element": null,
"num_elements": null,
"publisher": {
"id": 10,
"code": null,
"reselling_name": null,
"expose_domains": false,
"state": "inactive",
"is_rtb": false,
"reselling_exposure": "private",
"reselling_exposed_on": "2011-05-04 21:37:52",
"timezone": "EST5EDT",
"last_modified": "2011-08-31 15:11:08",
"max_learn_pct": 5,
"accept_demand_partner_usersync": null,
"learn_bypass_cpm": 5,
"ad_quality_advanced_mode_enabled": true,
"member_id": 95,
"name": "test",
"description": "test",
"default_site_id": 137,
"default_ad_profile_id": 256,
"billing_dba": null,
"billing_address1": null,
"billing_address2": null,
"billing_city": null,
"billing_state": null,
"billing_zip": null,
"billing_country": null,
"accept_supply_partner_usersync": null,
"accept_data_provider_usersync": null,
"ym_profile_id": null,
"allow_cpm_managed": true,
"allow_cpm_external": true,
"allow_cpa_managed": true,
"allow_cpa_external": false,
"allow_cpc_managed": true,
"allow_cpc_external": false,
"managed_cpc_bias_pct": 100,
"managed_cpa_bias_pct": 100,
"external_cpc_bias_pct": 100,
"external_cpa_bias_pct": 100,
"is_oo": false,
"base_payment_rule_id": null,
"base_ad_quality_rule_id": 1,
"currency": "USD",
"redirect_to_rm": true,
"billing_internal_user": null,
"labels" [
{
"value: "First Contact",
"id": 2,
"name": "Salesperson"
},
{
"value: "Second Contact",
"id": 4,
"name": "Account Manager"
},
"placements": [
{
"id": 1234,
"code": null
},
{
"id": 5678,
"code": null
}
]
}
}
Update a publisher
Update the base_ad_quality_rule_id
field of a publisher:
$ cat PublisherBaseAdQualityRuleUpdate.json
{
"publisher" : {
"base_ad_quality_rule_id" : 632112
}
}
$ curl -b cookies -X PUT -d @PublisherBaseAdQualityRuleUpdate.json 'https://api.appnexus.com/publisher?id=100'
{
"response" : {
"count" : 1,
"status" : "OK",
"start_element" : 0,
"id" : "100",
"publisher" : {
"billing_address1" : "BILLING_ADDRESS",
"managed_cpa_bias_pct" : 100,
"inventory_source" : null,
"external_cpc_bias_pct" : 100,
"ym_profile_id" : null,
"currency" : "USD",
"allow_cpa_managed" : true,
"inventory_source_name" : null,
"use_anx_auction_logic" : false,
"learn_bypass_cpm" : 5,
"platform_ops_notes" : null,
"contact" : {
"phone" : "555-555-1212",
"email" : "CONTACT_EMAIL@EMAIL.COM",
"id" : CONTACT_ID,
"name" : "CONTACT_NAME"
},
"allow_cpc_managed" : true,
"is_rtb" : false,
"disclosure_status" : "disclosed_pending",
"visibility_profile_id" : null,
"billing_dba" : "BILLING_DBA",
"reselling_exposure" : "private",
"managed_cpc_bias_pct" : 100,
"default_placement_id" : 13741957,
"labels" : null,
"accept_supply_partner_usersync" : null,
"expose_domains" : true,
"reselling_name" : null,
"billing_internal_user" : null,
"placements" : [
{
"id" : 13741957,
"code" : null
},
{
"id" : 13847262,
"code" : null
}
],
"enable_cookie_tracking_default" : true,
"external_inv_codes" : null,
"inventory_relationship" : "direct",
"pitbull_segment_value" : 0,
"default_site_id" : 3731466,
"publisher_brand_exceptions" : null,
"billing_address2" : null,
"timezone" : "CET",
"contact_info" : null,
"last_modified" : "2018-08-26 22:33:13",
"code" : null,
"billing_zip" : "BILLING_ZIP",
"billing_country" : "US",
"reselling_exposed_on" : "1970-01-01 00:00:01",
"is_oo" : false,
"billing_state" : "BILLING_STATE",
"ad_quality_advanced_mode_enabled" : true,
"allow_cpm_external" : true,
"pitbull_segment_id" : 0,
"base_ad_quality_rule_id" : 632112,
"default_ad_profile_id" : null,
"seller_page_cap_enabled" : false,
"description" : "",
"allow_cpa_external" : false,
"id" : 100,
"state" : "inactive",
"billing_city" : "Portland",
"max_learn_pct" : 0,
"cpc_reselling_disabled" : false,
"allow_report_on_default_imps" : false,
"cpm_reselling_disabled" : false,
"base_payment_rule_id" : 1570229,
"name" : "PUBLISHER_NAME",
"allow_cpm_managed" : true,
"accept_demand_partner_usersync" : null,
"accept_data_provider_usersync" : null,
"external_cpa_bias_pct" : 100,
"allow_cpc_external" : false
},
"num_elements" : 100
}
}