Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Note
This service is currently available to a limited set of clients and Microsoft employees only.
In addition, due to the cost of running this report, it is limited to strategic/large clients only. Contact Steve Truxal to request access for your client and provide details on the revenue opportunity, expected hourly biddable impressions for 1 day, and how you expect the member's seat to scale over the next 6-12 months.
The Buyer Untargeted Segment report can be used for discovery: to identify segments you have access to but may not be targeting. This report is available to members.
For instructions on retrieving a report, see the examples below.
Time frame
The report_interval field in the JSON request can be set to one of the following:
todayyesterdaylast_7_dayslast_30_dayslast_14_days
Dimensions
| Column | Type | Description |
|---|---|---|
hour |
time | The hour of the auction. Example: "2010-02-01 06:00:00"Group: Yes Filter: Yes |
day |
time | The day of the auction. Example: "2010-02-01"Group: Yes Filter: Yes |
month |
time | The month of the auction. Example: "2010-02"Group: Yes Filter: Yes |
buyer_member_id |
int | The ID of the buying member. If the impression was not purchased, this field shows one of the following values: 229 = PSA, 0 = Blank, or 319 = Default.Example: 123Group: Yes Filter: Yes |
insertion_order_id |
int | The ID of the insertion order. Group: Yes Filter: Yes |
campaign_id |
int | The ID of the campaign. Example: 123Group: Yes Filter: Yes |
advertiser_id |
int | The ID of the advertiser. If the value is 0, either the impression was purchased by an external buyer, or a default or PSA was shown. Example: 789Group: Yes Filter: Yes |
line_item_id |
int | The ID of the line item. Example: 111Group: Yes Filter: Yes |
pixel_id |
int | The ID of the pixel. Example: 123Group: Yes Filter: Yes |
advertiser_name |
string | The name of the advertiser. Example: "Verizon Wireless"Group: No Filter: No |
advertiser |
string | Deprecated (as of October 17, 2016). |
line_item_name |
string | The name of the line item. Example: "Default Line Item"Group: No Filter: No |
line_item |
string | Deprecated (as of October 17, 2016). |
segment_id |
int | The ID of the segment pixel. Example: 220Group: Yes Filter: Yes |
segment_name |
string | The name of the segment. Example: "Submitted application"Group: No Filter: No |
segment |
string | Deprecated (as of October 17, 2016). |
insertion_order_name |
string | The name of the insertion order. Example: "Mobile Insertion Order"Group: No Filter: No |
insertion_order |
string | Deprecated (as of October 17, 2016). |
segment_code |
int | The (optional) custom code associated with the user segment present for this impression. Example: 12456Group: No Filter: No |
age_bucket |
string | The age bucket in which the user is contained. For more information, see Age Bucket below. Group: Yes Filter: Yes |
age_bucket_id |
int | The ID of the age bucket. Group: Yes Filter: Yes |
gender |
string | The gender segment. Group: Yes Filter: Yes |
is_targeted |
int | Whether or not the line item targeted the segment. Group: Yes Filter: Yes |
segment_owner_member_id |
int | The ID of the segment owner. Group: Yes Filter: Yes |
segment_owner_member_name |
string | The name of the segment owner. Group: No Filter: Yes |
is_advertiser_segment |
int | Whether or not the segment is an advertiser segment for the buyer running the report. Group: Yes Filter: Yes |
Age Bucket
| Bucket ID | Bucket Name |
|---|---|
0 |
"unknown" |
1 |
"13-17" |
2 |
"18-24" |
3 |
"25-34" |
4 |
"35-44" |
5 |
"45-54" |
6 |
"55-64" |
7 |
"65+" |
Metrics
| Column | Type | Description | Example | Formula |
|---|---|---|---|---|
imps |
int | The total number of impressions (served and resold). | 2437 |
imps |
clicks |
int | The total number of clicks across all impressions. | 1 |
clicks |
booked_revenue |
money | The total revenue booked through direct advertisers (line item). | 25.6788 |
booked_revenue |
cpm |
money | The cost per 1000 impressions. | 1.6605 |
(cost / imps) x 1000 |
total_convs |
int | The total number of post-view and post-click conversions. | 9 |
post_click_convs + post_view_convs |
convs_rate |
double | The rate of conversions to impressions. | 0.0002218770 |
total_convs / imps |
ctr |
double | The rate of clicks to impressions. | 0.0002218777 |
clicks / imps |
post_view_convs |
int | The total number of recorded post-view converstions. | 5 |
post_view_convs |
post_view_revenue |
money | Advertiser revenue from post-view conversions. | 150.00 |
post_view_revenue |
post_click_convs |
int | The total number of recorded post-click conversions. | 4 |
post_click_convs |
post_click_revenue |
money | Advertiser revenue from post-click conversions. | 300.00 |
post_click_revenue |
post_view_convs_rate |
double | The rate of post-view conversions to impressions. | 0.0002 |
post_view_convs / imps |
post_click_convs_rate |
double | The rate of post-click conversion to impressions. | 0.0002 |
post_click_convs / imps |
media_cost |
money | The total amount spent. | 100.00 |
media_cost |
profit |
money | The profit per thousand impressions. | 4.14 |
profit |
profit_ecpm |
money | The profit as a percentage of the revenue. | 0.778 |
((booked_revenue - media_cost) / imps)* 100 |
revenue_ecpc |
money | The total revenue per click. | 0.8256 |
booked_revenue / clicks |
revenue_ecpa |
money | The total revenue per conversion. | 5.00 |
booked_revenue / total_convs |
cost_ecpc |
money | The cost per click. | 0.1834 |
media_cost / clicks |
cost_ecpa |
money | The cost per attribution/conversion. | 0.1834 |
media_cost / total_convs |
commissions |
money | The fees that come out of the booked revenue. | 0 |
commissions |
serving_fees |
money | The fees that are added to the media cost. | 0/025143 |
serving_fees |
convs_per_mm |
double | The number of conversions per million impressions. | 221.87708 |
(total_convs / imps) x 1,000,000 |
rpm |
money | The revenue per thousand impressions. | 100.00 |
(booked_revenue / imps) / 1000 |
Examples
Step 1: Create the JSON report request
The JSON file should include the following:
"report_type"you want to run."columns"(dimensions and metrics) you want to retrieve."report_interval"you want to retrieve.
You can also include filters for dimensions, define granularity (year, month, day), and specify the format in which the data should be returned ("csv", "excel", or "html").
Note
To filter a dimension by more than one value, use an array. For example:
Correct:
"filters": [{"bid_type": ["learn","optimized"]}, {"geo_country":"US"}]
Incorrect:
"filters": [{"bid_type":"learn"}, {"bid_type":"optimized"}, {"geo_country":"US"}]
For more details about the columns that can be included in the request, see Dimensions and Metrics above.
The example below demonstrates how to retrieve the Buyer Untargeted Segment Performance Report. In this example, the report will display data for the hour, campaign_id, imps, clicks, total_convs, ctr, and convs_rate columns. This report will pull data from the last 48 hours and will format it as a CSV file.
$ cat report_request
{
"report":{
"report_type":"buyer_untargeted_segment_performance",
"columns":[
"hour",
"campaign_id",
"imps",
"clicks",
"total_convs",
"ctr",
"convs_rate"
],
"report_interval":"last_48_hours",
"format":"csv"
}
}
Step 2: POST the request to the Report Service
POST the JSON request to get back a report_ID.
$ curl -b cookies -X post -d @report_request "https://api.appnexus.com/report"
{
"response":{
"status":"OK",
"report_id":"09b6979a6a4c3805bdac8921378d3622"
}
}
Alternatively, you can get a report_id via a POST request using a saved_report_id.
curl -b cookies -X POST 'https://api.appnexus.com/report?saved_report_id=30'
Step 3: 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 GET call until the execution_status is "ready". Then, use the report-download service to save the report data to a file, as described in the next step.
$ curl -b cookies 'https://api.appnexus.com/report?id=09b6979a6a4c3805bdac8921378d3622'
{
"response":{
"status":"OK",
"report":{
"name":null,
"created_on":"2010-05-25 19:15:48",
"json_request":"{\"report\":{\"report_type\":\"network_advertiser_frequency\",\"columns\":
[\"hour\",\"campaign\",\"imps\",\"clicks\",\"total_convs\",
\"ctr\",\"convs_rate\"],\"row_per\":[\"hour\",\"campaign_id\"],
\"report_interval\":\"last_48_hours\",\"filters\":[{\"advertiser_id\":\"690\"}]}}",
"url":"report-download?id=b97897a7864dd8f34e7457226c7af592"
},
"execution_status":"ready"
}
}
Step 4: 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 response to your previous GET call. When setting the file to which you want to save the report, use the file extension of the "format" (e.g., .csv) that you specified in your initial POST.
Note
If an error occurs during download, the response header will include an HTTP error code and message. Use \-i or \-v in your call to expose the response header.
curl -b cookies 'https://api.appnexus.com/report-download?id=b97897a7864dd8f34e7457226c7af592' -o /tmp/network_advertiser_frequency.csv