Advertiser analytics
The Advertiser Analytics report can be used to view performance, revenue, and profit data across a specific advertiser's creatives and campaigns. This report is available to network and advertiser users.
For instructions on retrieving a report, see Report Service or the example below. This report requires specifying the advertiser ID as part of the URL, for example:
https://api.appnexus.com/report?advertiser_id=ADVERTISER_ID
Time frame
The report_interval
field in the JSON request can be set to one of the following:
- current_hour
- last_hour
- today
- yesterday
- last_48_hours
- last_2_days
- last_7_days
- last_30_days
- month_to_date
- month_to_yesterday
- quarter_to_date
- last_month
- lifetime
Data retention period
Most data in this report is maintained permanently (exceptions noted below). After:
- 100 days, you are no longer able to report on hourly data. However, daily, monthly and cumulative intervals are still available.
- 14 months, you are no longer able to report on individual:
- Creatives
- Placements
- Brands
In some cases Analytics reports can show delivery that does not match statistics shown elsewhere in Microsoft Invest or Microsoft Monetize for a given advertiser or publisher. This is due to the way that Analytics reporting data older than 100 days and 14 months are aggregated. The data from Billing reports are kept in non-aggregated form indefinitely. For more information, see Dates and Times in Reporting in the UI documentation.
Note
To run a report for a custom time frame, set the start_date
and end_date
fields in your report request. For more details about these fields, see Report Service.
Dimensions
Column | Type | Filter? | Example | Description |
---|---|---|---|---|
hour |
time | No | "2010-02-01 06:00" |
The hour of the auction. Note: For impressions older than 100 days, the day will be returned rather than the hour. |
day |
time | No | "2010-02-01" |
The day of the auction. |
month |
time | No | "2010-02" |
The month of the auction. |
adjustment_id |
int | Yes | 890 |
The unique identification number of the adjustment used to make changes to the media cost and/or impressions, clicks, and conversions you see in reporting for a publisher. |
advertiser_code |
string | No | "Advertiser Code" |
The custom code for the advertiser. |
advertiser_currency |
string | Yes | "USD" |
The type of money used by the advertiser. |
advertiser_id |
int | Yes | 3 |
The unique identification number for each advertiser. |
buyer_member_id |
int | Yes | 210 |
The unique identification number for the buyer member. |
seller_member_id |
int | Yes | 765 |
The unique identification number of the selling member. |
seller_member_name |
string | No | "AdMeld" |
The name of the selling member. |
seller_member |
string | No | "AdMeld (765)" |
Deprecated (as of October 17, 2016). |
campaign_id |
int | Yes | 728 |
The unique identification number of the campaign. |
campaign_name |
string | No | "Test" |
The name of the campaign. |
campaign |
string | No | "Test (123)" |
Deprecated (as of October 17, 2016). |
campaign_code |
string | No | "Campaign Code" |
The custom code for the campaign. |
campaign_priority |
int | No | 4 |
The bid priority of a campaign that is targeting direct inventory. The scale is from 1-10, with 1 being lowest and 10 being highest. |
split_id |
int | Yes | 342 |
The ID of the split that purchased the impressions in this data set. Splits are only applicable to augmented line items. For any reports that contain campaigns, the split_id (if included) will be null. |
split_name |
string | Yes | "Mobile Split A" |
The name of the split that purchased the impressions in this data set. Splits are only applicable to augmented line items. For any reports that contain campaigns, the split_name (if included) will be null . |
creative_id |
int | Yes | 554 |
The unique identification number of the creative. Note: - For impressions older than 14 months, creatives will be aggregated into one row with 0 as the creative_id .- For external click or impression trackers, creative_id will be "External Clicks" or "External Imps" . |
creative_name |
string | No | "Q1 2010 728x90" |
The display name of the creative. Note: - For impressions older than 14 months, creatives will be aggregated into one row with "All creative data older than 14 months" as the creative_name .- For external click or impression trackers, creative_name will be "External Clicks" or "External Imps" . |
creative |
string | No | "Q1 2010 - 728x90 (554)" |
Deprecated (as of October 17, 2016). |
placement_id |
int | Yes | 546 |
The unique identification number of the placement. Note: - For impressions older than 14 months, placements will be aggregated into one row with -1 as the placement_id . |
placement_name |
string | No | "300x250 Business" |
The name of the placement. Note: For impressions older than 14 months, placements will be aggregated into one row with "All placement data older than 100 days" as the placement_name . |
placement |
string | No | "FP 728x90 (567)" |
Deprecated (as of October 17, 2016). |
deal_id |
int | Yes | 2345 |
The ID of the deal. For more information about deals you have negotiated with sellers, see Deal Buyer Access Service. |
deal_name |
string | No | "Private deal for buyer 1085 with floor of $2.50" |
The name of the deal. |
deal |
string | No | "Private deal for buyer 1085 with floor of $2.50 (45)" |
Deprecated (as of October 17, 2016). |
deal_code |
string | No | "External seller deal code" |
The custom code for the deal. For deals with external supply partners, this is generally the string that you use to identify the deal. |
placement_code |
string | No | "FP 728x90" |
The custom code for the placement. |
size |
string | Yes | "728x90" |
The size of the placement/creative served. |
geo_country |
string | Yes | "US" |
The code for the geographic country. |
geo_country_name |
string | No | "United States" |
The name of the geographic country. |
creative_recency_bucket |
string | Yes | "15-30 minutes" |
Deprecated. If you request this dimension, only a default value will be returned. Use the Advertiser Creative Frequency & Recency report to view creative recency data. |
creative_recency_bucket_id |
string | No | 3 |
Deprecated. If you request this dimension, only a default value will be returned. Use the Advertiser Creative Frequency & Recency report to view creative recency data. |
creative_frequency_bucket |
string | Yes | "11-20" |
Deprecated. If you request this dimension, only a default value will be returned. Use the Advertiser Creative Frequency & Recency report to view creative frequency data. |
creative_frequency_bucket_id |
string | No | 4 |
Deprecated. If you request this dimension, only a default value will be returned. Use the Advertiser Creative Frequency & Recency report to view creative frequency data. |
gender |
string | Yes | "m" , "f" , "u" |
The gender of the user. Note: For impressions older than 100 days, the gender will be "u" .The value of the gender is defined by the publisher in the bid request. Xandr does not have control over it apart from processing the value. |
imp_type_id |
int | Yes | 1 |
The ID for the type of impression. Possible values (associated types in parentheses): - 1 ("Blank") : No creative served.- 2 ("PSA") : A public service announcement served because there were no valid bids and no default creative was available.- 3 ("Default Error") : A default creative served due to a timeout issue.- 4 ("Default") : A default creative served because there were no valid bids.- 5 ("Kept") : Your advertiser's creative served on your publisher's site.- 6 ("Resold") : Your publisher's impression was sold to a third-party buyer.- 7 ("RTB") : Your advertiser's creative served on third-party inventory.- 8 ("PSA Error") : A public service announcement served due to a timeout issue or lack of a default creative.- 9 ("External Impression") : An impression from an impression tracker.- 10 ("External Click") : A click from a click tracker. |
imp_type |
string | Yes | "Kept" |
The type of impression. For possible values, see imp_type_id . |
bid_type |
string | Yes | "Manual" |
The optimization phase the node was in when it bid for this impression. Note: The term "give up" is appended to the bid types below if the valuation for that impression falls below the venue's "give up price". Allowed values: - "Manual" : Applies when you are bidding with a CPM goal, whether it's Base, EAP, or ECP.- "Learn" : Applies when you are bidding with optimization (CPA, CPC, or margin) and we do not yet have enough data to bid optimized.- "Optimized" : Applies when you are bidding with optimization (CPA, CPC, or margin) and we have enough data to bid optimized.- "Unknown" : The node was in an unknown optimization phase.- "Optimized give up" - "Learn give up" - "Manual give up" |
insertion_order_id |
int | Yes | 648359 |
The unique identification number of the insertion order. |
insertion_order_name |
string | No | "InsertionOrderABC" |
The name of the insertion order. |
insertion_order |
string | No | "InsertionOrderABC648359" |
Deprecated (as of October 17, 2016). |
insertion_order_code |
string | No | "Insertion Order Code" |
The custom code for the insertion order. |
line_item_id |
int | Yes | 947764 |
The unique identification number of the line item. |
line_item_nam e |
string | No | "LineItemDEF" |
The name of the line item. |
line_item |
string | No | "LineItemDEF947764" |
Deprecated (as of October 17, 2016). |
line_item_code |
string | No | "Line Item Code" |
The custom code for the line item. |
supply_type |
string | No | "web" |
The type of inventory. Possible values: - "web" - "mobile_web" - "mobile_app" . |
pixel_id |
int | Yes | 1942 |
The unique identification number of the conversion pixel. Note: This dimension will return a maximum of 10 conversion pixels. Also, you can filter by no more than 10 conversion pixels. |
publisher_id |
int | Yes | 374967 |
The unique identification number of the publisher. |
publisher_name |
string | No | "Publisher XYZ" |
The name of the publisher. |
publisher |
string | No | "Publisher XYZ 347967" |
Deprecated (as of October 17, 2016). |
publisher_code |
string | No | "Publisher Code" |
The custom code for the publisher. |
seller_type |
string | Yes | "Real Time" , "Direct" |
The seller type. |
supply_type |
string | Yes | "web" |
The type of inventory. Possible values: - "web" - "mobile_web" - "mobile_app" . |
media_type |
string | No | "Banner" , "Pop" , "Interstitial" , "Video" , "Text" , "Expandable" , "Skin" |
The general display style of the creative. You can use the Media Type Service to view the complete list of media types. |
mediatype_id |
int | Yes | 2 |
The unique identification number of the media type to which the subtype belongs. |
user_group_for_campaign |
string | Yes | "Test" |
The test/control user group for the campaign. See the "labels" field in the Campaign Service for more details. |
venue |
int | Yes | 321512 |
The name of the cluster of domain, site, tag, and user country that Xandr' optimization system uses to determine bid valuations. A campaign cannot target a venue explicitly. |
billing_period_start_date |
datetime | No | "2015-05-25 19:19:53" |
The earliest date of the insertion order's billing period. Note: Alpha-Beta Notice This field or feature is part of functionality currently in either Alpha or Beta phase. It is therefore subject to change. |
billing_period_end_date |
datetime | No | "2015-05-30 19:19:53" |
The last date of the insertion order's billing period. Note: Alpha-Beta Notice This field or feature is part of functionality currently in either Alpha or Beta phase. It is therefore subject to change. |
billing_period_external_code |
string | No | "houseware245" |
The custom code for the billing period (budget_interval ). |
Metrics
Column | Type | Example | Formula | Description |
---|---|---|---|---|
imps |
int | 234123 |
imps | The total number of impressions served. |
attributed_revenue |
money | 10.45 |
post_view_revenue + post_click_revenue | The amount of revenue from all recorded post views and post clicks. |
attributed_pc_revenue |
money | 121.68 |
post_click_revenue | The amount of revenue from all recorded post views. |
attributed_pv_revenue |
money | 14 |
post_view_revenue | The amount of revenue from all recorded post clicks. |
clicks |
int | 545 |
clicks | The total number of clicks across all impressions. |
click_convs_rate |
double | 0.057 |
total_convs / clicks | The rate of conversions to clicks. |
click_conv_rate |
double | 0.000064 |
total_convs / clicks | The rate of conversions to clicks. Note: This field is identical to click_convs_rate . |
click_thru_pct |
double | 0.000% |
clicks / imps | The percentage of users viewing a creative that clicked on it. |
cpa |
money | 1.25 |
booked_revenue_dollars / (post_view_convs + post_click_convs) | The cost per acquisition. |
cpc |
money | 0.45 |
booked_revenue_dollars / clicks | The cost per click. |
cpm |
money | 0.18 |
(booked_revenue_dollars / imps) * 1000 | The cost per 1,000 impressions. |
post_view_convs |
int | 75 |
post_view_convs | The total number of recorded post view conversions. |
post_view_revenue |
money | 150.00 |
post_view_revenue | The total amount of recorded post view revenue. |
post_click_convs |
int | 15 |
post_click_convs | The total number of recorded post click conversions. |
post_click_revenue |
money | 300.00 |
post_click_revenue | The total amount of recorded post click revenue. |
total_revenue |
money | 450.00 |
post_view_revenue + post_click_revenue | The total amount of post view and post click revenue. |
total_convs |
int | 90 |
post_view_convs + post_click_convs | The total number of post view and post click conversions. |
conv_rate |
double | 0.018654 |
(post_click_convs + post_view_convs) / imps | The rate of post click and post view conversions to impressions. |
convs_rate |
double | 0.0003844 |
total_convs / imps | The rate of conversions to impressions. |
convs_per_mm |
double | 221.877080097625 |
(total_convs / imps) x 1,000,000 | The number of conversions per million impressions. |
ecpa_adv_curr |
money | 1.13 |
booked_revenue_adv_curr / (post_view_convs + post_click_convs) | The cost per acquisition in the advertiser currency type. |
ecpc_adv_curr |
money | 0.16 |
booked_revenue_adv_curr / clicks | The cost per click in the advertiser currency type. |
ecpm_adv_curr |
money | 0.014 |
booked_revenue_adv_curr / imps * 1000 | The cost per 1,000 impressions in the advertiser currency type. |
post_view_convs_rate |
double | 0.000320 |
post_view_convs / imps | The rate of post view conversions to impressions. |
post_click_convs_rate |
double | 0.000064 |
post_click_convs / imps | The rate of post click conversions to impressions. |
post_click_conversion_pixel |
int | 52 |
post_click_convs for that pixel_id | The number of post click conversions for a specific pixel. For more information on how we attribute post-view (and other) conversions, Conversion Attribution (Monetize) or Conversion Attribution (Invest). |
post_click_revenue_pixel |
money | 184.25 |
post_click_revenue for that pixel_id | The amount of revenue earned for a specific pixel. |
post_view_conversion_pixel |
int | 174 |
post_view_convs for that pixel_id | The number of post view conversions for a specific pixel. For more information on how we attribute post-view (and other) conversions, see Conversion Attribution (Monetize) or Conversion Attribution (Invest). |
post_view_revenue_pixel |
money | 303.54 |
post_view_revenue for that pixel_id | The amount of revenue earned for a specific pixel. |
ppm |
money | 0.944966292134831 |
(profit / imps) x 1000 | The profit per 1000 impressions. |
rpm |
money | 2.60548314606741 |
(revenue / imps) x 1000 | The revenue per 1000 impressions. |
spend_adv_curr |
money | 357.18 |
booked_revenue_adv_curr | The total amount spent by the advertiser in the advertiser's preferred currency. |
total_revenue_pixel |
money | 41.253 |
post_click_revenue + post_view_revenue for that pixel_id | The total revenue earned for a specific pixel. |
ctr |
double | 0.002327 |
clicks / imps | The rate of clicks to impressions. |
spend |
money | 304.36 |
spend | The total marketer spend across both direct and real time media buys. |
media_cost |
money | 2.15 |
media cost | The total amount spent to purchase all impressions. |
ecpm |
money | 1.30 |
(spend / imps) x 1000 | The effective advertiser spend per 1000 impressions. |
ecpc |
money | 1.25 |
spend / clicks | The effective advertiser spend per click. |
ecpa |
money | 1.20 |
spend / total_convs | The effective advertiser spend per conversion/acquisition. |
imps_viewed |
int | 30,450 |
imps_viewed | The number of measured impressions that were viewable, per the IAB Viewability definition, which states that an impression is viewable if 50% of the pixels are in-view during 1 consecutive second. |
view_measured_imps |
int | 10,120 |
view_measured_imps | The total number of impressions that were measured for viewability. |
view_rate |
double | 58% |
view_rate | The percentage of impressions that were viewable out of the total number of impressions measured for viewability. (Viewed Imps / View Measured Imps) |
view_measurement_rate |
double | 45% |
view_measurement_rate | The percentage of impressions measured for viewability out of the total number of impressions. (View Measured Imps / Imps) |
avg_bid_reduction |
double | 18% |
avg_bid_reduction | The average bid reduction you gained on the line item or campaign. This value represents the difference (as a percentage) between your bid and the actual media cost you paid for the impression you won (e.g., due to bid reduction). This value is only valid for RTB bidding (i.e., not Managed). Currently, this value is not accurately calculated for line items for which the payment_auction_event_type field has been set to 2 . |
video_skips |
int | 10 |
video_skips | The total number of times a user skipped the video. Use this metric for reporting when buying skippable inventory. |
video_starts |
int | 11 |
video_starts | The total number of times the first segment of the video creative was downloaded and started. |
video_25_pcts |
int | 10 |
video_25_pcts | The total number of times the video creatives completed 25% of the entire duration. |
video_50_pcts |
int | 10 |
video_50_pcts | The total number of times the video creatives completed 50% of the entire duration. |
video_75_pcts |
int | 10 |
video_75_pcts | The total number of times the video creatives completed 75% of the entire duration. |
video_completions |
int | 12 |
video_completions | The total number of times the video creatives played for the entire duration. |
video_served |
int | 10 |
video_served | The total number of video responses served to the player. An ad response occurs when the VAST document (XML) is served in response to a request. An ad response doesn't necessarily indicate a successful impression. For an impression, the first frame of the video must be served. |
video_errors |
int | 2 |
video_errors | The total number of times a video error occurred. |
revenue_per_video_complete |
money | 25.76 |
revenue_per_video_complete | The revenue per video completion. |
cost_per_video_complete |
money | 22.76 |
cost_per_video_complete | The cost per video completion. |
video_completion_rate |
double | 1.12359550561797% |
(video completions/total impressions) x 100 | The ratio of video completions to impressions, expressed as a percentage. |
video_start_rate |
double | 1.12359550561797% |
video_start_rate | The percentage of times the first segment of the video creative was downloaded and started. |
video_skip_rate |
double | 1.12359550561797% |
video_skip_rate | The percentage of times the user opted to skip the video. |
Examples
Create a JSON-formatted report request
$ cat advertiser_analytics
{
"report": {
"report_type":"advertiser_analytics",
"columns": [
"hour",
"seller_member_id",
"campaign_id",
"gender",
"imps",
"clicks",
"total_convs",
"ctr",
"convs_rate"
],
"report_interval": "last_48_hours",
"format":"csv"
}
}
POST
the request to the reporting service
You POST
the JSON request and get back a report ID.
$ curl -b cookies -c cookies -X post -d @advertiser_analytics "https://api.appnexus.com/report?advertiser_id=690"
{
"response": {
"status": "OK",
"report_id": "2790c6627d058cd467f4267add49bedc",
"existing": true,
"dbg_info": {
...
}
}
}
GET
the report status from the report service
Make a GET
call with the report ID to retrieve the status of the report. Continue making this call until the execution_status
is "ready"
. Then use the report-download
service to save the reporting data to a file (described in the next step).
$ curl -b cookies -c cookies "https://api.appnexus.com/report?id=dc0314bda06597582518c5fc3e1c47ef"
{
"response": {
"status": "OK",
"report": {
"name": null,
"created_on": "2014-04-17 01:26:00",
"cache_hit": false,
"fact_cache_hit": false,
"fact_cache_error": "did not find any cache table for 1,3,6,44,30,31,32,34,15",
"json_request": "{\"report\":{\"report_type\":\"advertiser_analytics\",\"columns\":[\"hour\",\"seller_member_id\",\"campaign_id\",\"gender\",\"imps\",\"clicks\",\"total_convs\",\"ctr\",\"convs_rate\"],\"report_interval\":\"last_48_hours\",\"format\":\"csv\",\"filters\":[{\"buyer_member_id\":\"948\"},{\"advertiser_id\":\"78216\"},{\"imp_type_id\":{\"operator\":\"!=\",\"value\":6}}]}}",
"header_info": "Report ID:,2790c6627d058be467f4267add49bedc\r\nRun at:,2014-04-17 01:26:00\r\nStart date:,2014-04-15 01:00:00\r\nEnd date:,\r\nTimezone:,\r\nUser:,Jesse Seldess (9685)\r\n",
"row_count": "0",
"report_size": "75",
"user_id": "9685",
"entity_id": "0",
"started_on": "2014-04-17 01:26:03",
"finished_on": "2014-04-17 01:28:02",
"query_time": "118",
"url": "report-download?id=2790c6627d058be467f4267add49bedc"
},
"execution_status": "ready",
"dbg_info": {
...
}
}
}
GET
the report data from the report download service
To download the report data to a file, make another GET
call with the report ID, but this time to the report-download service. You can find the service and report ID in the url field of the previous GET
response. When identifying the file that you want to save to, be sure to use the file extension of the "format"
that you specified in your initial POST
.
$ curl -b cookies -c cookies 'https://api.appnexus.com/report-download?id=b97897a7864dd8f34e7457226c7af592' > /tmp/advertiser_analytics.csv
Note
There is a limit of 100,000 rows per report when you download them as XLSX and Excel file.