Network publisher video analytics
The Network Publisher Video Analytics report can be used to view video event metrics for specific publisher within your network that is more granular than the data provided in the Network Video Analytics report. This report is available to network users only.
Note
video_content_genre
video metrics are recorded for VAST creatives only.
For usage instructions, see the Example below. Note that this report requires that a publisher ID be specified as part of the URL, for example:
https://api.appnexus.com/report?publisher_id=PUBLISHER_ID
Time frame
The report_interval
field can be set to one of the following:
- today
- yesterday
- last_24_hours
- last_48_hours
- last_2_days
- last_7_days
- last_14_days
- last_30_days
- month_to_date
- month_to_yesterday
- last_available_day
- last_7_available_days
- last_14_available_days
- last_30_available_days
- last_month
Data retention period
Data in this report is retained for 420 days.
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 |
date | no | "2010-02-01 06:00:00" |
The hour of the auction Note: For impressions older than 100 days, the day will be returned rather than the hour. |
day |
date | no | "2010-02-01" |
The day of the auction. |
month |
date | no | "2010-02" |
The month of the auction. |
member_id |
int | Yes | 767 |
The ID of the member. |
buyer_member_id |
int | yes | 567 |
The ID of the buying member. |
buyer_member_name |
string | no | "Network" |
The name of the buying member. |
advertiser_id |
int | yes | 728 |
The ID of the advertiser. |
advertiser_name |
string | no | "Test" |
The name of the advertiser. |
brand_id |
int | yes | 3 |
The ID of the brand associated with a creative. For imp_type_id = 6 , no information is available in the brand_id field for this report. See the Seller Brand Review Report instead. |
brand_name |
string | no | "Ace Hardware" |
The name of the brand associated with a creative. For imp_type_id = 6 , no information is available in the brand_name field for this report. See the Seller Brand Review Report instead. |
publisher_id |
int | yes | 6787 |
The number to identify the publisher. |
publisher_currency |
string | yes | "USD" |
The currency of the publisher. |
site_id |
int | yes | 194 |
The ID of the site. Note: For impressions older than 100 days, the site_id will be 0 . |
site_name |
string | no | "Site Name" |
The name of the site. |
deal_code |
string | No | External seller deal code |
The custom code for the deal. For deals with external supply partners, this string typically identifies the deal. |
deal_id |
int | Yes | 2345 |
The ID of the deal. For more information about negotiated deals between buyers and sellers, see Deal Service and Deal Buyer Access Service. |
deal_name |
string | No | "Private deal for buyer 1085 with floor of $2.50" |
The name of the deal. |
geo_country |
string | yes | "US" |
The geographic country code. |
geo_country_name |
string | no | "United States" |
The name of the country. |
placement_id |
int | yes | 546 |
The ID of the placement. Note: For impressions older than 100 days, 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 100 days, placements will be aggregated into one row with "All placement data older than 100 days" as the placement_name . |
placement_code |
string | no | "300x250 Business Code" |
The custom code for the placement. |
site_domain |
string | no | bestsiteever.com |
The site domain of an impression. |
application_id |
string | Yes | '343200656' (iOS) or 'com.rovio.angrybirds'(Android) |
A targetable Apple App Store ID, Google Play package name, or Windows application ID. |
supply_type |
string | Yes | mobile_web |
The seller-classified channel to denominate supply in terms of web, mobile-optimized web, and mobile app impressions. Possible values are - "web" - "mobile_app" - "mobile_web" |
video_playback_method |
string | Yes | "1" |
The playback method for the creative. See Video Playback Method below for possible values. |
video_context |
string | Yes | "3" |
When and where the video creative plays. See Video Context below for possible values. |
video_player_size_id |
string | Yes | "2" |
The ID of the video player width. See Player Size below for possible values. |
video_delivery_type1 |
string | No | "vod" |
The type of streaming content delivery. For example, Video On Demand (VOD) and Live . |
video_content_genre1 |
string | No | "action" |
The main genre of the program in which the ad will be played. For example, Action , Adventure , Biography , Business , Comedy , etc. |
video_program_type1 |
string | No | "series" |
The higher level categorization of the video program's format on which the ad will be played. For example, Movie , Series , Special , Show , Event , Clip , etc. |
video_content_rating1 |
string | No | "teens" |
The publisher-identified audience group for which the content is rated. For example, All , Children (7+) , Teens (13+) , Young Adults (14+) , or Adults (18+) . |
content_duration_secs |
int | Yes | 480 |
The length of the video content in seconds. |
device_type |
string | Yes | Desktops & Laptops, Mobile Phones, Tablets, TV, Game Consoles, Media Players, Set Top Box, and Other Devices . |
The type of device where the creative was set to play. |
video_content_duration1 |
int | Yes | 100 |
The length of the video content in seconds. |
video_content_language1 |
string | No | "Spanish" |
The language of the video program in which ad will be played. For example, Spanish . |
video_content_network1 |
string | No | "AMC" |
The network delivering the video content. For example, 9 Story , CBC , Disney , AMC , Fox , etc. |
Note
The data for the following dimensions is only available if the publisher has implemented video taxonomy.
video_delivery_type
video_content_genre
video_program_type
video_content_rating
video_content_duration
video_content_language
video_content_network
Metrics
Column | Type | Example | Formula | Description |
---|---|---|---|---|
imps |
int | 2340 |
imps | The total number of impressions. |
clicks |
int | 545 |
clicks | The total number of clicks across all impressions. |
total_convs |
int | 90 |
post_click_convs + post_view_convs | The total number of post-view and post-click conversions. |
ctr |
double | 0.2327836 |
clicks / imps * 100 | The rate of clicks to impressions. |
convs_rate |
double | 0.0384413 |
total_convs / imps * 100 | The rate of conversions to impressions. |
network_revenue |
money | 1201.13 |
network_revenue | Network revenue booked through direct advertisers and resold to real time buyers |
total_network_rpm |
money | 2.60548314606741 |
(network_revenue / imps) x 1000 | The network revenue per 1000 impressions. |
publisher_revenue |
money | 400.05 |
publisher_revenue | The revenue paid out to the publisher (based on revshare or cpm). |
network_profit |
money | 801.08 |
(booked_revenue + reseller_revenue) - total_cost | Network profit minus total cost. |
network_roi |
double | 2.94 |
(network_revenue / media_cost) - 1 | To be deprecated. Network return on investment. Returned as a percentage, e.g., 0.94 = 94% |
sold_network_rpm |
double | 231.888 |
(revenue / imps) x 1000 ----- no errors | The revenue per 1000 impressions that were not errors. |
total_publisher_rpm |
money | 1.6605168 5393258 |
(cost / imps) x 1000 | The cost per 1000 impressions paid to direct and third-party publishers, including errors. |
sold_publisher_rpm |
double | 147.786 |
(cost / imps) x 1000 ----- no errors | The cost per 1000 impressions paid to direct and third-party publishers, not including errors. |
network_ppm |
money | 9.23 |
(profit / imps) x 1000 | To be deprecated. The profit per 1000 impressions. |
imps_sold |
int | 42500 |
imps_sold | The number of impressions you sold to other members. |
video_errors |
int | 23 |
errors | The total number of errors serving video impressions |
ad_responses |
int | 2340 |
served | The number of responses delivered to the user's browser (or mediating server). A response can result in an impression, an error in player, or an auction with no impression event. Note: An imp refers to when the video player loads the video and starts the first frame. Videos Served refers to the VAST document being served in response to a request from the video player. |
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) |
total_cost |
money | 123.45 |
total_cost = media_cost + data_costs + partner_fees + commissions + serving_fees + publisher_revenue | The total amount of costs accrued over the reported period of time. This generally includes two types of costs, budgeted costs (media cost, data cost, partner fees, serving fees, commissions) and publisher revenue if you track publisher payouts on the platform. Note: We have added logic to prevent double counting third-party fees during the breaking change period. |
total_cost_ecpm |
money | 123.45 |
(total_cost/imps) * 1,000 | The total cost per 1,000 imps. |
total_cost_ecpc |
money | 123.45 |
total_cost/clicks | The total cost per click. |
total_cost_ecpa |
money | 123.45 |
total_cost/conversions | The total cost per conversion. |
network_profit_ecpm |
money | 123.45 |
((booked_revenue + reseller_revenue - total_cost)/imps) * 1,000 | Network profit per 1,000 imps. |
network_profit_ecpc |
money | 123.45 |
(booked_revenue + reseller_revenue - total_cost)/clicks | Network profit per click. |
network_profit_ecpa |
money | 123.45 |
(booked_revenue + reseller_revenue - total_cost)/conversions | Network profit per conversion. |
network_profit_margin |
money | 123.45 |
(booked_revenue + reseller_revenue - total_cost)/(booked_revenue + reseller_revenue) | Network profit margin. |
Average View Time |
int | 28 |
sum (creative_duration * ((0.125 × starts) + (0.25 × first_quartiles) + (0.25 × second_quartiles) + (0.25 × third_quartiles) + (0.125 × completions)) / sum (starts)) | An estimate for the average duration in seconds (rounded to 0 decimal places) of the creative that was viewed. This is calculated by approximating the duration watched as the mid-point between the video events (for example, a start event would estimate that 12.5% of the creative is viewed). |
Average View Time Percent |
percentage | 89% |
sum (((0.125 × starts) + (0.25 × first_quartiles) + (0.25 × second_quartiles) + (0.25 × third_quartiles) + (0.125 × completions))∕starts) | The average view time expressed as a percentage of the total possible view time. |
Video playback method
Method ID | Method |
---|---|
0 |
Unknown |
1 |
Auto-play, sound on |
2 |
Auto-play, sound off |
3 |
Click-to-play |
4 |
Mouse-over |
5 |
Auto-play, sound unknown |
Video context
Method ID | Method |
---|---|
0 |
Unknown |
1 |
Pre-roll |
2 |
Mid-roll |
3 |
Post-roll |
4 |
Outstream |
Player size
ID | Name |
---|---|
0 |
small |
1 |
medium |
2 |
large |
Example
Create a JSON formatted report request
$ cat video_analytics_network_publisher
{
"report":
{
"report_type":"video_analytics_network_publisher",
"columns":[
"hour",
"buyer_member",
"brand_name",
"deal_name",
"deal_id",
"imps_sold",
"video_errors",
"total_convs",
"served"
],
"row_per":[
"hour",
"buyer_member",
"sold_network_rpm"
],
"report_interval":"last_48_hours",
"format":"csv"
}
}
POST
the request to the reporting service
$ curl -b cookies -c cookies -X post -d @video_analytics_network_publisher "https://api.appnexus.com/report?publisher_id=4642"
{
"response":{
"status":"OK",
"report_id":"f4ebb93755dd01dde4fc157f86198ea9"
}
}
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 -c cookies "https://api.appnexus.com/report?id=f4ebb93755dd01dde4fc157f86198ea9"
{
"response":{
"status":"OK",
"report":{
"name":null,
"created_on":"2010-05-25 19:37:31",
"json_request":"{\"report\":{\"report_type\":\"video_analytics_network_publisher\",\"columns\":[\"hour\",\"buyer_member\",\"brand_name\",
\"deal_name\",\"deal_id\",\"imps_sold\",\"video_errors\",\"total_convs\",\"served\"],
\"row_per\":[\"hour\",\"buyer_member\",\"sold_network_rpm\"],\"report_interval\":\"last_48_hours\",
\"filters\":[{\"publisher_id\":\"4642\"}]}}",
"url":"report-download?id=b97897a7864dd8f34e7457226c7af592"
},
"execution_status":"ready"
}
}
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
.
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 -c cookies 'https://api.appnexus.com/report-download?id=b97897a7864dd8f34e7457226c7af592' > /tmp/video_analytics_network_publisher.csv
Note
There is a limit of 100,000 rows per report when you download them as XLSX and Excel file.