Campaign service
A campaign is a way to organize a set of targeting parameters within our platform in combination with the Profile Service. The campaign object includes parameters such as flight dates and associated creatives whereas profiles target user and inventory parameters such as geography, segment, frequency, domain, and category.
REST API
HTTP Method | Endpoint | Description |
---|---|---|
POST |
- https://api.appnexus.com/campaign?advertiser_id=ADVERTISER_ID - https://api.appnexus.com/campaign?advertiser_code=ADVERTISER_CODE (campaign JSON) |
Add a new campaign. |
PUT |
- https://api.appnexus.com/campaign?id=CAMPAIGN_ID&advertiser_id=ADVERTISER_ID - https://api.appnexus.com/campaign?code=CAMPAIGN_CODE&advertiser_code=ADVERTISER_CODE (campaign JSON) |
Modify an existing campaign. |
GET |
- https://api.appnexus.com/campaign?id=CAMPAIGN_ID&advertiser_id=ADVERTISER_ID - https://api.appnexus.com/campaign?code=CAMPAIGN_CODE&advertiser_code=ADVERTISER_CODE |
View a specific campaign for one of your advertisers. |
GET |
- https://api.appnexus.com/campaign?advertiser_id=ADVERTISER_ID - https://api.appnexus.com/campaign?advertiser_code=ADVERTISER_CODE |
View all of the campaigns for one of your advertisers. |
GET |
https://api.appnexus.com/campaign?id=1,2,3 | View multiple campaigns by ID using a comma-separated list. Note: Helpful Filters - You can filter for campaigns based on when they first and last served. This is particularly useful when you are approaching your object limit and need to identify campaigns that can be deleted from the system. For more details, see First Run/Last Run. - You can filter for campaigns that are not serving due to various conditions. For more details, see Alerts. |
GET |
https://api.appnexus.com/campaign?search=SEARCH_TERM | Search for campaigns with IDs or names containing certain characters. |
DELETE |
https://api.appnexus.com/campaign?id=CAMPAIGN_ID&advertiser_id=ADVERTISER_ID | Delete a campaign. Caution: Deletion is permanent and cannot be reverted. Although deleted campaigns continue to be available in reporting, you will no longer have visibility into their specific settings (e.g., cost budget and targeting). |
GET |
https://api.appnexus.com/campaign/meta | Find out which fields you can filter and sort by. |
JSON fields
General
Field | Type | Description |
---|---|---|
id |
int | The ID of the campaign. Required On: PUT , in query string. |
State |
enum | The state of the campaign. Possible values: "active" or "inactive" .Default: "active" |
parent_inactive |
boolean | If true , the campaign is inactive due to the parent line item being inactive, and the campaign's state is overridden (i.e., if "parent_inactive": "true" and "state": "active" , then the campaign is inactive).Note: To return this field, the advertiser_id must be included in the query string.Default: false Read Only. |
code |
string (100) | A custom code for the campaign. The code may only contain alphanumeric characters, periods, underscores or dashes. The code you enter is not case-sensitive (upper- and lower-case characters are treated the same). No 2 objects at the same level (e.g., line items or campaigns) can use the same code per advertiser. For example, 2 lines items cannot both use code "XYZ", but a single line item and its child campaign can. |
name |
string (255) | The name of the campaign. Required On: POST |
short_name |
string (50) | The name used by the Imp Bus. |
advertiser_id |
int | The ID of the advertiser to which the campaign belongs. Required On: POST /PUT , in query string. |
profile_id |
int | You may associate an optional profile_id with this campaign. A profile is a generic set of rules for targeting inventory. For details, see the Profile Service. |
line_item_id |
int | The ID of the line item to which the campaign is associated. Caution: No more than 500 campaigns can be associated to a single line item. Required On: POST |
start_date |
timestamp | The date and time when the campaign should start serving. Null corresponds to "immediately". This value reflects the Advertiser's time zone. Default: null |
end_date |
timestamp | The date and time when the campaign should stop serving. Null corresponds to "indefinitely". This value reflects the Advertiser's time zone. Default: null |
creatives |
array | The list of creative IDs or codes associated to the campaign. Update only requires id or code to be passed in but GET request will include more creative fields for convenience. For more information, see Creatives and the example below. |
creative_groups |
array of IDs | You may wish to bucket a group of creatives and then add them to a campaign all at once. Create groups through the Line Item Service. |
timezone |
enum | The timezone of the campaign. For details and accepted values, see API Timezones. If no timezone is set, this will default to the advertiser's timezone, which defaults to the member's timezone, which defaults to EST5EDT. Campaign daily budgets are reset at midnight in the timezone of the campaign, so this field determines that time. Note: Any PUT calls to the advertiser service which include set_child_timezone=true in the query string will cause any timezone settings on the lower level objects (e.g., insertion orders, line items, campaigns) to be overridden with the latest timezone value for that advertiser.Default: The advertiser's timezone. |
last_modified |
timestamp | The time of last modification to this campaign. |
supply_type |
string | The types of supply targeted by this campaign, as defined by the supply_type_targets field in the associated profile. This string can contain one or more of the following values, separated by commas: web, mobile_web, and mobile_app.Read Only. |
supply_type_action |
enum | Whether the types of supply are "included" or "excluded" from targeting, as defined by the supply_type_action field in the associated profile.Read Only. |
inventory_type |
enum | The type of inventory targeted by this campaign. Possible values: "real_time" , "direct" , or "both" . "Real-time" includes all third-party inventory not managed by your network that has been enabled for reselling including external supply partners such as Microsoft Advertising Exchange and Google Ad Manager. "Direct" includes only inventory managed by your network.Default: "real_time" |
roadblock_creatives |
boolean | Only serve this campaign if all creatives attached to it, are able to serve on one page load. Note: Roadblocking is only enabled for direct inventory. If you attempt to set roadblock_creatives to true for an inventory_type other than direct , the API will return an error. |
roadblock_type |
enum | There are several types of roadblocks available. Allowed values are "no_roadblock" , "normal_roadblock" (where the number of creatives is greater than or equal to the number of placements), "partial_roadblock" (where the number of creatives is less than or equal to the number of placements), and "exact_roadblock" (where the number of creatives is equal to the number of available placements).Default: "no_roadblock" |
stats |
object | The stats object has been deprecated (as of October 17, 2016). Use the Report Service to obtain statistical information instead. |
all_stats |
array | The stats object has been deprecated (as of October 17, 2016). Use the Report Service to obtain statistical information instead. |
comments |
string | Comments about the campaign. |
labels |
array of objects | The optional labels applied to the campaign. One label is currently available: "Test/Control". For more details, see Labels below. Tip: You can report on campaign labels with the Network Analytics, Network Advertiser Analytics, and Advertiser Analytics reports. For example, if you use the "Test/Control" label to specify the user group you are targeting (as defined by the user_group_targets field in the associated profile), you could run the Network Analytics report filtered by "user_group_for_campaign" to focus on the campaigns that target a particular user group, or grouped by "user_group_for_campaign" to rank the performance of your user groups. |
broker_fees |
array | The fees that the network must pay to brokers when serving an ad. These fees are in addition to the cost of the inventory and are typically for data, ad serving, or creative hosting. They can either be a percentage of the media cost or a flat CPM. For more details, see Broker Fees below. |
click_url |
string (1000) | The (optional) landing page URL for non-3rd party image and flash creatives. |
valuation |
object | An object containing several fields relating to performance goals and minimum margin. For more details, see Valuation below. |
remaining_days |
int | The number of days between today and the end_date for the campaign. Note: This will be null if the start_date is in the future or if either the start_date or end_date is not set.Read Only. |
total_days |
int | The number of days between the start_date and end_date for the campaign. Note: This will be null if either the start_date or end_date is not set.Read Only. |
first_run |
timestamp | The date and time when the campaign first served, refreshed on an hourly basis. This value reflects the UTC time zone. To include this information in a GET response, pass flight_info=true in the query string. For details about how to filter line items based on when they first served, see First Run/Last Run below.Read Only. |
last_run |
timestamp | The date and time when the campaign last served, refreshed on an hourly basis. This value reflects the UTC time zone. To include this information in a GET response, pass flight_info=true in the query string. For details about how to filter line items based on when they last served, see First Run/Last Run below.Read Only. |
alerts |
object | The conditions that are preventing the campaign from serving. There are two types of alerts: pauses and warnings. Pauses are considered intentional and user-driven, whereas warnings are considered unintentional. For example, "State is set to inactive" is considered a pause, whereas "No creatives are associated with this campaign" is considered a warning. To retrieve campaigns based on pauses and/or warnings, you must pass certain query string parameters in the GET request. For more details, including a complete list of possible pauses and warnings, see Alerts below. Read Only. |
creative_distribution_type |
enum | When multiple creatives of the same size are trafficked via a line item, this field's setting is used to determine the creative rotation strategy that will be used. Note that creatives must be managed on the campaign in order to use this field. Allowed values: - even: The default. Use our standard creative optimization algorithm, where each creative's valuation is computed independently, and the best-valued creative is chosen to serve. - weighted: Creative rotation is based on a user-supplied weight. - ctr-optimized: The creative with the highest CTR delivers the most. Default: "even" |
is_archived |
boolean | Read-only. Indicates whether the campaign has been automatically archived due to not being used. Once set to true , the value can't be changed and the only calls that can be made on the campaign object are GET and DELETE .Note: If a campaign is automatically archived, its profile will also be archived. If the campaign's parent line item is automatically archived, all campaigns (as well as their profiles) under that line item will also be archived. Once archived, the only calls that may be made on these objects are GET and DELETE . In addition, once archived, the campaign may not be associated with any line items.Default: false |
archived_on |
timestamp | Read-only. The date and time on which the campaign was archived (i.e., when the is_archived field was set to true ).Default: null |
creatives
example
[{"id": 233,"state":"active","code":"abc","name":"test","width":200,"height":200,
"audit_status":"pending","is_expired":true,
"is_prohibited":false,"is_self_audited:true,
"format":"image","pop_window_maximize":false}]
Pricing/budgeting
Field | Type | Description |
---|---|---|
lifetime_budget |
double | The lifetime budget in dollars (media cost). Null corresponds to "unlimited". Caution: If lifetime_budget is set to null (unlimited), and the line item and insertion order lifetime budgets are also set to null , severe overspend can occur.Default: null |
lifetime_budget_imps |
int | The lifetime budget in impressions. Null corresponds to "unlimited". Default: null |
daily_budget |
double | The daily budget in dollars (media cost). Null corresponds to "unlimited". Default: null |
daily_budget_imps |
int | The daily budget in impressions. Null corresponds to "unlimited". Default: null |
learn_budget |
double | The lifetime dollar (media cost) budget allocated to learning. Null corresponds to "unlimited". Default: null |
learn_budget_imps |
int | The lifetime impression budget allocated to learning. Null corresponds to "unlimited". Default: null |
learn_budget_daily_cap |
double | The maximum number of dollars (media cost) that can be allocated to learning per day. Null corresponds to "unlimited". Default: null |
learn_budget_daily_imps |
int | The maximum number of impressions that can be allocated to learning per day. Null corresponds to "unlimited". Default: null |
enable_pacing |
boolean | If true , the campaign's daily budgeted spend is spread out evenly throughout each day. This is only applicable if daily_budget is set. For more details about even daily pacing, see "Daily Pacing" in the UI documentation.Default: false |
lifetime_pacing |
boolean | If true , the campaign will attempt to spend its overall lifetime budget evenly over the campaign flight dates. If true, you cannot set a daily_budget , you cannot set enable_pacing to false, and you must first establish a lifetime_budget , a start_date , and an end_date for the campaign.Default: false |
lifetime_pacing_span |
int | In the event of an underspend event, this indicates the number of days across which the underspent amount will be distributed. The default value of null indicates a value of three (3) days.Default: null |
priority |
int | For a campaign targeting direct inventory (inventory_type is "direct" ), since you have already paid for inventory, there is no need to input a buying strategy. However, you can set the campaign's priority to weight the campaign against other direct campaigns within your account. The campaign with the highest priority will always win, even if a lower priority campaign bids more. For more information about managing priority, see "Bidding Priority" in the UI documentation.Default: 5 |
cadence_modifier_enabled |
boolean | If true , bids will be adjusted upward and downward based on the frequency and recency of the user. Typically, bids are increased for low frequency-recency impressions and decreased for high frequency-recency users. This feature is based on the idea that the effectiveness of an ad differs when a user hasn't seen the ad before, hasn't seen it many times, or hasn't seen it recently. For more details, see "Cadence Modifier and the Chaos Factor" in the UI documentation.Default: false |
expected_pacing |
double | Deprecated. Note: The stats object and Quickstats have been deprecated (as of October 17, 2016). |
total_pacing |
double | Deprecated. Note: The stats object and Quickstats have been deprecated (as of October 17, 2016). |
has_pacing_dollars |
enum | Deprecated. Note: The stats object and Quickstats have been deprecated (as of October 17, 2016). |
has_pacing_imps |
enum | Deprecated. Note: The stats object and Quickstats have been deprecated (as of October 17, 2016). |
imps_pacing_percent |
int | Deprecated. Note: The stats object and Quickstats have been deprecated (as of October 17, 2016). |
media_cost_pacing_percent |
int | Deprecated. Note: The stats object and Quickstats have been deprecated (as of October 17, 2016). |
Bidding strategies
Field | Type | Description |
---|---|---|
cpm_bid_type |
enum | Possible values: - "base" : Bid a fixed amount.- "average" : Bid Estimated Average Price (EAP), an estimate of the price that is likely to win about 50% of the impressions from our platform sellers based on historical bids and their success or failure. Since off-platform sellers (e.g., Google Ad Manager, Rubicon, etc.) conduct a secondary auction, bidding EAP does not necessarily ensure winning half of off-platform impressions.- "clearing" : Bid Estimated Clear Price (ECP), an estimate of the price that is likely to win most impressions from our platform sellers based on historical bids and their success or failure. Since off-platform sellers (e.g., Google Ad Manager, Rubicon, etc.) conduct a secondary auction, bidding ECP does not necessarily ensure winning off-platform impressions.- "predicted" : Vary bids based on the likelihood of a click or conversion for each piece of inventory. For predicting CPC, use cpc_goal . For predicting CPA, see Pixels below.- "margin" : Bid a % margin of the revenue that the advertiser pays you. See bid_margin .- "custom_model" : Calculate your bid price based on a custom predictive model. You set which model to use in the bid_model object. For more details, see Custom Models.Note: You can set cpm_bid_type to "custom_model" only when inventory_type is "rtb" .- "none" : None is available only if you pay on a per-click or per-conversion basis, and it will result in not being able to bid CPM.Required On: POST , unless inventory_type is set to "direct" . |
base_bid |
double | A CPM bid. May be modified by the cadence_modifer .Required On: POST , if cpm_bid_type is "base" . |
min_bid |
double | Set a minimum bid that will apply to variable pricing models (See cpm_bid_type ). |
max_bid |
double | Set a maximum bid that will apply to variable pricing models (See cpm_bid_type ). |
bid_margin |
double | The percent margin of the revenue that the advertiser pays you. For example, if your booked revenue is $1 CPM, and you set a bidding strategy margin of 25%, your campaign will bid $0.75. If your booked revenue type is a CPA or CPC goal, it will apply your desired margin and optimize to that predicted goal. Required On: POST , if cpm_bid_type is "margin" . |
cpc_goal |
double | You may wish to vary bids based on the likelihood of some conversion event, either a click or an acquisition, for that particular inventory, in order to attain a specific cost per click or cost per acquisition. In this case, our platform's algorithm determines a bid based on past conversion rates and based on how much you value a conversion, whether you define it as a click or an acquisition (registration, purchase, etc.). Required On: POST , if cpm_bid_type is "predicted" and the roi_click_goal and roi_view_goal are not set in the pixels array. |
max_learn_bid |
double | When using the cpm_bid_type "predicted" , the optimization engine submits "learn" bids to learn about new inventory. If necessary, enter the max CPM dollar amount for these bids.Note: When you set both max_learn_bid for learn bids and max_bid for non-learn bids, the lower of the two will be used for learn.Default: null |
pixels |
array | If using a CPA Bidding Strategy, the pixel array is used to associate conversion pixels with the campaign and set CPA goals and payout values for the pixels. For more details, see Pixels below. |
bid_model |
object | If using a custom predictive model to determine bid prices, this object is used to associate your custom model with the campaign. For more details, see Bid Model below. Default: null Required On: POST , if cpm_bid_type is "custom_model" . |
Optimization levers
These optional fields give advanced users extra control over optimizing their campaigns. For detailed information on these fields, see "Optimization Levers" in the UI documentation.
Tip
If you would like access to optimization levers, a Xandr admin must set the expose_optimization_levers
field to true
for your member. For more details, contact your account representative.
Field | Type | Description |
---|---|---|
ecp_learn_divisor |
string | Deprecated. This feature is not supported in version 7 of the Optimization engine. For newer ways to adjust learn bids, see learn_override_type .Default: null (3) |
projected_learn_events |
int | Deprecated. This feature has been incorporated into the learn algorithm for version 7 of the Optimization engine. Default: null (3) |
learn_threshold |
int | The number of successful events (clicks or conversions) required before moving from the learn stage to the optimized stage. Possible values: 1 - 100. Default: null (3) |
max_learn_bid |
double | When using the cpm_bid_type "predicted", the optimization engine submits "learn" bids to learn about new inventory. If necessary, enter the max CPM dollar amount for these bids. Note: When you set both max_learn_bid for learn bids and max_bid for non-learn bids, the lower of the two will be used for learn.Default: null |
cadence_type |
enum | The level at which the cadence modifier is applied. Possible values: "advertiser" or "creative" .Default: "advertiser" |
defer_to_li_prediction |
boolean | If true, this campaign will temporarily change the level at which it learns while maintaining a specified profit margin percentage. See "Optimization Levers" in the UI documentation for more details. Default: false |
optimization_lookback |
array of objects | Optimization is based on the last 30 days of data, evenly weighted. You can use this field to give more weight to certain days within that window. Possible values for "day" : 0 - 29. Possible values for "bias_percent" : 0 - 100. For more details, see example below. |
optimization_version |
string | Indicates the version of optimization currently in use. Default: v7 Read Only. |
learn_override_type |
enum | If you want to override our algorithm's learn bid, this is the type of bid to submit instead. Possible values: - "base_cpm_bid" : A flat CPM bid. You specify the CPM value in the base_cpm_bid_value field.- "venue_avg_cpm_bid" : The average bid for each venue.Default: null |
base_cpm_bid_value |
double | The CPM value to use for learn bids, when learn_override_type is "cpm_learn_bid" . This value cannot be greater than 10.0.Default: null Required On: POST /PUT , if learn_override_type is "base_cpm_bid" . |
bid_multiplier |
double | The value by which to multiply the learn bid. This can be used for our algorithm's default learn bid or an override learn bid when learn_override_type is "venue_average_cpm_bid" . This value cannot be greater than 10.0 .Default: 1.0 |
impression_limit |
int | For a specific venue, the number of impressions after which to stop overriding our algorithm's learn bid. This value must be greater than 0. Default: 40000 |
campaign_modifiers |
array of objects | An array of objects containing the segment modifier-related settings associated with this campaign (format shown below). For more information, see "Segment Modifier" in the UI documentation. Note: You cannot set both campaign_modifier and bid_modifier_model in a single campaign.For more details, see example below. |
bid_modifier_model |
object | The custom predictive model to apply multipliers to the campaign's optimization-derived CPM bid. This type of model is used in conjunction with our optimization-based buying strategy (when cpm_bid_type is "predicted" or "margin" ).For more details, see Bid Modifier Model below. Note: You can set bid_modifier_model only when inventory_type is "rtb" . Also, you cannot set both bid_modifier_model and campaign_modifier in a single campaign.Default: null |
optimization_lookback
example
"optimization_lookback":[
{
"day":8,
"bias_percent":10
},
{
"day":12,
"bias_percent":11
}
],
campaign_modifiers
example
{
"campaign":
{
"id":123,
"name":"ModifiedCampaign",
"campaign_modifiers":[
{
"type":"segment_modifier_id",
"value":456
},
{
"type":"segment_price_id",
"value":789
},
{
"type":"segment_modifier_weight",
"value":1200
}
]
}
}
Broker fees
When a network uses a broker to serve an impression, it pays a fee to the broker for that service. This value varies between different networks, different brokers, and different campaigns. Therefore, the network must specify how much it will pay each broker it uses. This can also be done at the Line Item level (Line Item Service) or at the Insertion Order level (Insertion Order Service).
To create or edit brokers, refer to the Broker Service.
Field | Type (Length) | Description |
---|---|---|
broker_id |
int | The ID of the broker. |
broker_name |
string | The name of the broker. Read Only. |
payment_type |
enum | Type of payment to the broker. Possible values: "cpm" or "revshare" . |
value |
double | The value of the payment, based on the payment type. |
description |
string (255) | The free-form description of the broker fee entry. |
Add a broker fee
$ cat add-broker-fees.json
{
"campaign":
{
"broker_fees":[
{
"broker_id": 145,
"broker_name": "Test 3",
"payment_type": "cpm",
"value": "1.00",
"description": "JMS fee"
}]
}
}
$ curl -b cookies -c cookies -X PUT -d @add-broker-fees.json 'https://api.appnexus.com/campaign?id=376737&advertiser_id=35081'
{
"response":{
"status":"OK",
"id":"376737",
"count":1,
"start_element":0,
"num_elements":100,
}
}
Modify a broker fee
$ cat modify-broker-fee.json
{
"campaign" :
{ "broker_fees": [
{
"broker_id": 145,
"payment_type": "cpm",
"value": "3.00",
"description": "New JMS fee"
}]
}
}
$ curl -b cookies -c cookies -X PUT -d @modify-broker-fee.json 'https://api.appnexus.com/campaign?id=376737&advertiser_id=35081'
{
"response":{
"status":"OK",
"id":"376737",
"count":1,
"start_element":0,
"num_elements":100,
Creatives
Each object in the creatives
array includes the following fields. To obtain information for "id"
or "code"
fields, you can use the Creative Service.
Field | Type (Length) | Description |
---|---|---|
id |
int | The ID of the creative. Either "id" or "code" is required when updating creative association.Required On: PUT |
code |
string | The custom code for the creative. Either "id" or "code" is required when updating creative association.Required On: PUT |
name |
string | The name of the creative. Read Only. |
width |
int | The width of the creative. Read Only. |
height |
int | The height of the creative. Read Only. |
state |
enum | The state of the creative. Possible values: "active" or "inactive" .Read Only. |
audit_status |
enum | The audit status of the creative. Possible values: "no_audit" , "pending" , "rejected" , "audited" , or "unauditable" .Read Only. |
is_expired |
boolean | Whether the creative is expired. If false , the creative is active.Read Only. |
is_prohibited |
boolean | Whether the creative falls into a prohibited category on our platform. |
is_self_audited |
boolean | Whether the creative is self-audited. If true , then yes. Read Only. |
format |
enum | The format of the creative file. Possible values: "url-html" , "url-js" , "flash" , "image" , "raw-js" , "raw-html" , "iframe-html" , or "text" .Read Only. |
weight |
int | A user-supplied weight that determines the creative rotation strategy for same-sized creatives managed at the campaign level. To use this field, the value of creative_distribution_type must be "weighted" . Allowed value: An integer greater than 0 and less than or equal to 1000 . |
pop_window_maximize |
boolean | If true , the publisher's tag will maximize the window. Only relevant for creatives with format "url-html" and "url-js" . If pop_window_maximize is set to true , then neither "height" nor "width" should be set on the creative.Read Only. |
Valuation
The valuation
object contains the following fields related to minimum margin. For more information on minimum margin, see "Using Minimum Margin to Balance Margin and Delivery" in the UI documentation.
Field | Type (Length) | Description |
---|---|---|
min_margin_rtb_pct |
decimal | The minimum margin PCT on RTB inventory. Overrides what is set in the line item. Default: null |
eap_multiplier |
decimal | The EAP multiplier value. Can only be used on inventory types "real_time" or "both". Default: 1.000000 |
Stats
Caution
The stats
object has been deprecated (as of October 17, 2016). Use the Report Service to obtain statistical information instead.
Labels
Each object in the labels
array includes the following fields.
Note
You can use the read-only Label Service to view all possible labels for campaigns, advertisers, insertion orders, line items, and publishers. This service also allows you to view the labels that have already been applied to your objects.
Field | Type (Length) | Description |
---|---|---|
id |
int | The ID of the label. Possible value: 9 (Test/Control). |
name |
enum | The name of the label. This field is read-only. Possible value: "Test/Control". |
value |
string (100) | The value assigned to the label. This could be the name of the user_group_target in the associated profile. |
Pixels
Note
Before you can associate a pixel to a campaign, the pixel must already be attached to the parent line item. Also, if cpc_bid_type
is "predicted"
and cpc_goal
is not set, you must provide a value for either roi_click_goal
or roi_view_goal
.
Field | Type | Description |
---|---|---|
id |
int | The ID of the conversion pixel. |
state |
enum | The state of the conversion pixel. Possible values: "active" or "inactive" . |
name |
string | Read-only. The name of the conversion pixel. |
roi_click_goal |
double | If paying on a per-impression (CPM) basis and optimizing to a predicted CPA goal, set this field to the click goal. |
roi_view_goal |
double | If paying on a per-impression (CPM) basis and optimizing to a predicted CPA goal, set this field to the view goal. |
click_payout |
double | If paying on per-conversion (CPA) basis, set this field to the amount to pay the publisher per click. |
view_payout |
double | If paying on a per-conversion (CPA) basis, set this field to the amount to pay the publisher per view. |
Bid model
The bid_model
object contains the following fields.
Field | Type | Description |
---|---|---|
id |
int | The ID of the custom model. Only custom models with model_output set to "Bid" are allowed. Use the Custom Model Service to retrieve these IDs. |
name |
string | The name of the custom model. Read Only. |
active |
Boolean | The status of the model. Possible values: 1 (true) or 0 (false).Read Only. |
Bid modifier model
The bid_modifier_model
object contains the following fields.
Field | Type | Description |
---|---|---|
id |
int | The ID of the custom model. Only customs models with model_output set to "bid_modifier" are allowed. Use the Custom Model Service to retrieve these IDs. |
name |
string | The name of the custom model. Read Only. |
active |
Boolean | The status of the model. Possible values: 1 (true) or 0 (false).Read Only. |
First run/last run
To include the first_run
and last_run
fields in a GET
response, pass flight_info=true
in the query string. You can also filter for campaigns based on when they first and last served, as follows:
Retrieve only campaigns that have never served
Pass never_run=true
in the query string.
curl -b cookies -c cookies 'https://api.appnexus.com/campaign?advertiser_id=100&flight_info=true&never_run=true'
Note
You can use never_run=true
in combination with other filters, but be aware that it will always be an OR relationship. For example, if you pass both never_run=true
and min_first_run=2012-01-01 00:00:00
in the query string, you will be looking for campaigns that have never served OR line items that first served on or after 2012-01-01.
Retrieve only campaigns that first served on or after a specific date
Pass min_first_run=YYYY-MM-DD HH:MM:SS
in the query string.
curl -b cookies -c cookies 'https://api.appnexus.com/campaign?advertiser_id=100&flight_info=true&min_first_run=2012-01-01+00:00:00'
Retrieve only campaigns that first served on or before a specific date
Pass max_first_run=YYYY-MM-DD HH:MM:SS
in the query string.
curl -b cookies -c cookies 'https://api.appnexus.com/campaign?advertiser_id=100&flight_info=true&max_first_run=2012-08-01+00:00:00'
Retrieve only campaigns that first served within a specific date range
Pass min_first_run=YYYY-MM-DD HH:MM:SS&max_first_run=YYYY-MM-DD HH:MM:SS
in the query string.
curl -b cookies -c cookies 'https://api.appnexus.com/campaign?advertiser_id=100&flight_info=true&min_first_run=2012-01-01+00:00:00&max_first_run=2012-08-01+00:00:00'
Retrieve only campaigns that last served on or after a specific date
Pass min_last_run=YYYY-MM-DD HH:MM:SS
in the query string.
curl -b cookies -c cookies 'https://api.appnexus.com/campaign?advertiser_id=100&flight_info=true&min_last_run=2012-01-01+00:00:00'
Retrieve only campaigns that last served on or before a specific date
Pass max_last_run=YYYY-MM-DD HH:MM:SS
in the query string.
curl -b cookies -c cookies 'https://api.appnexus.com/campaign?advertiser_id=100&flight_info=true&max_last_run=2012-08-01+00:00:00'
Retrieve only campaigns that last served within a specific date range
Pass min_last_run=YYYY-MM-DD HH:MM:SS&max_last_run=YYYY-MM-DD HH:MM:SS
in the query string.
curl -b cookies -c cookies 'https://api.appnexus.com/campaign?advertiser_id=100&flight_info=true&min_last_run=2012-01-01+00:00:00&max_last_run=2012-08-01+00:00:00'
Alerts
This field notifies you of conditions that are preventing the campaign from serving. There are two types of alerts: pauses and warnings. Pauses are considered intentional and user-driven, whereas warnings are considered unintentional. For example, "State is set to inactive" is considered a pause, whereas "No creatives are associated with this campaign" is considered a warning.
To retrieve campaigns based on pauses and/or warnings, you must pass certain query string parameters in the GET
request. See below for use cases with query string parameters and examples. Note that you can use these query string parameters both when retrieving all campaigns or specific campaigns, but the examples below only cover retrieving all campaigns, as that is where this feature offers the most value.
Retrieve all campaigns and show alerts
Pass show_alerts=true
in the query string. This parameter will add the alerts
object to every campaign in the response, whether or not the campaign has pauses or warnings.
Note
For each of the use cases below, you must pass show_alerts=true
if you want the alerts
object to show up in the response.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "inactive",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 2,
"message": "Parent line item is inactive."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 58991,
"state": "active",
...
"alerts": {
"warnings": [
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 58992,
"state": "inactive",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 2,
"message": "Parent line item is inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have at least one pause
Pass show_alerts=true&pauses=true
in the query string.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=true'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "active",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 8,
"message": "Flight end is in the past."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "inactive",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have no pauses
Pass show_alerts=true&pauses=false
in the query string.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=false'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 58991,
"state": "active",
...
"alerts": {
"warnings": [
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 58992,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 2,
"message": "All creatives associated to this campaign are either ineligible to serve (inactive, expired, prohibited) or can serve only on direct inventory and on supply partners who trust your network's self-classification (unaudited)."
}
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have a specific pause
Pass show_alerts=true&pauses=PAUSE_ID
in the query string. For pause IDs, see the Pauses table below.
In this example, we use pause ID 4 to retrieve all campaigns with flight start dates that are in the future.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=4'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 66493,
"state": "inactive",
"start_date": "2012-10-01 00:00:00",
"end_date": null,
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 15:01:02"
}
},
{
"id": 66510,
"state": "active",
"start_date": "2012-9-01 00:00:00",
"end_date": null,
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 2,
"message": "Parent line item is inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 15:01:02"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have two or more specific pauses
Pass show_alerts=true&pauses=SUM_OF_PAUSE_IDS
in the query string. For pause IDs, see the Pauses table below.
In this example, we add together pause ID 1 and pause ID 2 to retrieve all campaigns that are set to inactive and whose line items are also set to inactive.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=3'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 66493,
"state": "inactive",
"start_date": "2012-10-01 00:00:00",
"end_date": null,
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 2,
"message": "Parent line item is inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 15:01:02"
}
},
{
"id": 66510,
"state": "inactive",
"start_date": "2012-9-01 00:00:00",
"end_date": null,
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 2,
"message": "Parent line item is inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 15:01:02"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have at least one warning
Pass show_alerts=true&warnings=true
in the query string.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&warnings=true'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "inactive",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 2,
"message": "All creatives associated to this campaign are either ineligible to serve (inactive, expired, prohibited) or can serve only on direct inventory and on supply partners who trust your network's self-classification (unaudited)."
},
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have no warnings
Pass show_alerts=true&warnings=false
in the query string.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&warnings=false'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "inactive",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 58991,
"state": "active",
...
"alerts": {
"warnings": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 58992,
"state": "active",
...
"alerts": {
"warnings": [
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have a specific warning
Pass show_alerts=true&warnings=WARNING_ID
in the query string. For warning IDs, see the Warnings table below.
In this example, we use warning ID 1 to retrieve all campaigns that have no associated creatives.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&warnings=1'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "inactive",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have at least one pause AND at least one warning
Pass show_alerts=true&pauses=true&warnings=true
in the query string.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=true&warnings=true'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "inactive",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 2,
"message": "Parent line item is inactive."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 58993,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 2,
"message": "All creatives associated to this campaign are either ineligible to serve (inactive, expired, prohibited) or can serve only on direct inventory and on supply partners who trust your network's self-classification (unaudited)."
}
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have a specific pause AND a specific warning
Pass show_alerts=true&pauses=PAUSE_ID&warnings=WARNING_ID
in the query string. For pause and warning IDs, see the Pauses and Warnings tables below.
In this example, we retrieve all campaigns that have a flight start date in the future (pause ID 4) AND that do not have any associated creatives (warning ID 1).
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=4&warnings=1'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58990,
"state": "inactive",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Retrieve only campaigns that have pauses OR warnings
You can combine the parameters described above with alert_boolean_op=or
to retrieve campaigns that have certain pauses OR certain warnings. See the examples below. For pause and warning IDs, see Pauses and Warnings tables below.
Note
The alert_boolean_op=or
parameter can be used only to retrieve campaigns with pauses OR warnings. It cannot be used to look for OR relationships between pauses (i.e., pause 1 OR pause 2) or between warnings (i.e., warning 1 OR warning 2).
In this example, we retrieve all campaigns that are set to inactive (pause ID 1) OR that do not have any eligible creatives (warning ID 2).
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=1&warnings=2&alert_boolean_op=or'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58934,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 2,
"message": "All creatives associated to this campaign are either ineligible to serve (inactive, expired, prohibited) or can serve only on direct inventory and on supply partners who trust your network's self-classification (unaudited)."
}
],
"pauses": [
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "inactive",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
In this example, we retrieve all campaigns that are set to inactive (pause ID 1) OR that have no warnings.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=1&warnings=false&alert_boolean_op=or'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58934,
"state": "active",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "inactive",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
In this example, we retrieve all campaigns that have no pauses OR that have no warnings.
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=false&warnings=false&alert_boolean_op=or'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58934,
"state": "active",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
In this example, we retrieve all campaigns that are set to inactive (pause ID 1) AND whose parent line item is set to inactive (pause ID 4) OR that have no associated creatives (warning ID 1).
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?show_alerts=true&pauses=5&warnings=1&alert_boolean_op=or'
{
"response": {
"status": "OK",
"campaigns": [
{
"id": 58934,
"state": "inactive",
...
"alerts": {
"warnings": [
],
"pauses": [
{
"id": 1,
"message": "State is set to inactive."
},
{
"id": 4,
"message": "Flight start is in the future."
}
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
{
"id": 81287,
"state": "active",
...
"alerts": {
"warnings": [
{
"id": 1,
"message": "No creatives are associated with this campaign."
}
],
"pauses": [
],
"warnings_last_checked": "2012-07-27 14:40:36",
"pauses_last_checked": "2012-08-08 13:01:03"
}
},
...
],
...
}
}
}
Pauses
ID | Description |
---|---|
1 | State is set to inactive. |
2 | Parent line item is inactive. |
4 | Flight start is in the future. |
8 | Flight end is in the past. |
Warnings
ID | Description |
---|---|
1 | No creatives are associated with this campaign. |
2 | All creatives associated to this campaign are either ineligible to serve (inactive, expired, prohibited) or can serve only on direct inventory and on supply partners who trust your network's self-classification (unaudited). |
Examples
View campaign 17607 for advertiser 9
$ curl -b cookies -c cookies 'https://api.appnexus.com/campaign?id=17607&advertiser_id=11'
{
"response": {
"status": "OK",
"campaign": {
"id": 167051,
"state": "inactive",
"code": null,
"advertiser_id": 11,
"line_item_id": 69405,
"creative_id": 851325,
"pixel_id": 16688,
"short_name": null,
"name": "My example campaign",
"profile_id": 752909,
"start_date": "2011-10-31 00:00:00",
"end_date": null,
"timezone": "EST5EDT",
"priority": 5,
"cadence_modifier_enabled": true,
"cpc_goal": null,
"cpm_bid_type": "predicted",
"base_bid": null,
"min_bid": null,
"max_bid": null,
"bid_margin": 0,
"roadblock_creatives": false,
"roadblock_type": "no_roadblock",
"inventory_type": "real_time",
"last_modified": "2014-05-28 16:06:01",
"max_learn_bid": null,
"cadence_type": "creative",
"click_url": null,
"require_cookie_for_tracking": true,
"allow_unverified_ecp": false,
"defer_to_li_prediction": false,
"ecp_learn_divisor": "3.000000",
"projected_learn_events": "3",
"learn_threshold": 3,
"cpc_payout": null,
"comments": null,
"optimization_version": "v7",
"learn_override_type": null,
"base_cpm_bid_value": null,
"impression_limit": 40000,
"bid_multiplier": 1,
"remaining_days": null,
"total_days": null,
"supply_type_action": "include",
"supply_type": "mobile_web, web",
"creatives": [
{
"id": 445832,
"code": null,
"name": "Donate car.png",
"width": "300",
"height": "250",
"state": "inactive",
"audit_status": "no_audit",
"is_expired": true,
"is_prohibited": false,
"is_self_audited": true,
"format": "image",
"pop_window_maximize": null
}
],
"pixels": [
{
"id": 16688,
"roi_click_goal": 5,
"roi_view_goal": 5,
"click_payout": null,
"view_payout": null,
"code": null,
"name": "123",
"state": "active",
"trigger_type": "hybrid"
}
],
"optimization_lookback": [
{
"day": "0",
"bias_percent": "50.000000"
},
{
"day": "1",
"bias_percent": "50.000000"
},
{
"day": "2",
"bias_percent": "50.000000"
},
{
"day": "3",
"bias_percent": "50.000000"
},
{
"day": "4",
"bias_percent": "50.000000"
},
{
"day": "5",
"bias_percent": "50.000000"
},
{
"day": "6",
"bias_percent": "50.000000"
},
{
"day": "7",
"bias_percent": "50.000000"
},
{
"day": "8",
"bias_percent": "50.000000"
},
{
"day": "9",
"bias_percent": "50.000000"
},
{
"day": "10",
"bias_percent": "50.000000"
},
{
"day": "11",
"bias_percent": "50.000000"
},
{
"day": "12",
"bias_percent": "50.000000"
},
{
"day": "13",
"bias_percent": "50.000000"
},
{
"day": "14",
"bias_percent": "50.000000"
},
{
"day": "15",
"bias_percent": "50.000000"
},
{
"day": "16",
"bias_percent": "50.000000"
},
{
"day": "17",
"bias_percent": "50.000000"
},
{
"day": "18",
"bias_percent": "50.000000"
},
{
"day": "19",
"bias_percent": "50.000000"
},
{
"day": "20",
"bias_percent": "50.000000"
},
{
"day": "21",
"bias_percent": "50.000000"
},
{
"day": "22",
"bias_percent": "50.000000"
},
{
"day": "23",
"bias_percent": "50.000000"
},
{
"day": "24",
"bias_percent": "50.000000"
},
{
"day": "25",
"bias_percent": "50.000000"
},
{
"day": "26",
"bias_percent": "50.000000"
},
{
"day": "27",
"bias_percent": "50.000000"
},
{
"day": "28",
"bias_percent": "50.000000"
},
{
"day": "29",
"bias_percent": "50.000000"
}
],
"campaign_modifiers": null,
"labels": [
{
"id": "9",
"name": "Test/Control",
"value": "Test pattern - Group 1"
}
],
"broker_fees": null,
"valuation": null,
"lifetime_budget": 16000,
"lifetime_budget_imps": null,
"daily_budget": 500,
"daily_budget_imps": null,
"enable_pacing": true,
"allow_safety_pacing": true,
"lifetime_pacing": false,
"lifetime_pacing_span": null
},
"count": 1,
"start_element": 0,
"num_elements": 100
}
}
Create a direct campaign
This code represents the minimum information required to create an inactive campaign for direct inventory with no creatives and no targeting.
$ cat create-campaign.json
{
"campaign": {
"state": "inactive",
"name": "Rich's cool campaign",
"advertiser_id": 11,
"line_item_id": 47726,
"inventory_type": "direct"
}
}
$ curl -b cookies 'https://api.appnexus.com/campaign?advertiser_id=11'
{
"response": {
"status": "OK",
"id": 11,
"dbg_info": {
...
}
}
}