Digital Platform API - Vendor Usage report
This network report provides the details on your usage of data or platform powered by third-party vendors (e.g., user segment providers), the costs of that data or feature usage, and the line items/campaigns where vendor costs were applicable.
Time frame
The report_interval
field in the JSON request must be set to one of the following:
- today
- yesterday
- last_7_days
- last_30_days
- month_to_date
- quarter_to_date
- last_month
- lifetime
The time_granularity
of the data is hourly
. For instructions on retrieving a report, see the Report Service or the Examples below.
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.
Data retention period
Data retention period for this report is 60 days.
Dimensions
Column | Type | Filter? | Example | Description |
---|---|---|---|---|
month |
date | yes | "2010-02" |
The month at which the auction associated with the impression occurred. |
day |
date | yes | "2010-02-01" |
The day at which the auction associated with the impression occurred. |
hour |
date | yes | "2010-02-01 05:00:00" |
The hour at which the auction associated with the impression occurred. |
buyer_member_id |
int | yes | 643 |
The ID of the member that used the data provided by the third-party vendor (e.g., user segment providers). |
geo_country |
string | yes | "US" |
The code of the geographical country associated with the impression. |
geo_country_name |
string | no | "United States" |
The name of the geographical country associated with the impression. |
geo_country_code |
string | yes | "CA" |
A two-character string denoting the country associated with the impression. |
campaign_id |
int | yes | 31 |
The ID of the campaign associated with the impression that used third-party data targeting. |
campaign_name |
string | no | "Prospect Campaign" |
The name of the campaign associated with the impression that used third-party data targeting. |
campaign |
string | no | "Prospect Campaign (31)" |
The name and ID of the campaign associated with the impression. |
campaign_group_type_id |
int | yes | 154 |
The ID of the campaign group type which purchased this impression. Used in split reporting. |
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 | no | "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 . |
split |
string | no | "Mobile Split A (342)" |
The name and ID of the split. |
line_item_name |
string | no | "Fall Apparel" |
The name of the line item associated with the impression that used third-party data targeting. |
targeted_segment_ids |
string | no | "935035, 935146" |
The comma-separated list of IDs for each of the segments used when targeting. |
advertiser_currency |
string | yes | "USD" |
The advertiser's preferred currency. This preference can be set using the Advertiser Service. |
insertion_order_id |
int | yes | 1243 |
The ID of the insertion order associated with the impression that used third-party data targeting. |
insertion_order_name |
string | no | "IO001" |
The name of the insertion order associated with the impression that used third-party data targeting. |
insertion_order_code |
string | no | "IOABC-1243" |
The user-defined code associated with the insertion-order. |
insertion_order |
string | no | "IO001 (1243)" |
The name and ID of the insertion order associated with the impression that used third-party data targeting. |
advertiser_id |
int | yes | 9843 |
The advertiser ID associated with the impression. If the value is 0 , either the impression was purchased by an external buyer, or a default or PSA was shown. |
advertiser_name |
string | no | "ADVUS" |
The name of the advertiser associated with the impression. |
advertiser |
string | no | "ADVUS (9843)" |
The name and ID of the advertiser associated with the impression. |
line_item_id |
int | yes | 9865 |
The ID of the line item associated with the impression that used third-party data targeting. |
line_item_code |
string | no | "LI001" |
The user-defined code associated with the line item. |
line_item |
string | no | "Fall Apparel (9865)" |
The name and ID of the line item associated with the impression that used third-party data targeting. |
vendor_id |
int | yes | 76 |
The ID of the third party vendor (e.g., user segment providers) whose data usage and cost comes in this report. |
vendor_name |
string | no | "AXM" |
The name of the third party vendor. |
vendor |
string | no | "AXM (76)" |
The name and ID of the third party vendor. |
vendor_type |
string | no | "Segment Marketplace" |
The type of the vendor depending on the third party data it provides. Allowed values are: - Segment Marketplace - Cross Device Graph - Measurement - Offline Attribution - Unknown Vendor Type |
cost_type |
string | no | "Segment Data Costs" |
The type of cost incurred towards the data usage provided by the third party vendors. Allowed values are: - Segment Data Costs - Feature Costs - Unknown Vendor Type |
buying_currency |
string | yes | "USD" |
The transaction currency that the buyer used to purchase this impression. |
cpm_usd |
money | yes | 7.8 |
Cost per mille, or thousand (mille = thousand in Latin) expressed in USD. A pricing model in which advertisers pay for every 1000 impressions of their advertisement served. |
Metrics
Column | Type | Filter | Example | Formula | Description |
---|---|---|---|---|---|
imps |
int | yes | 34534 |
imps | The total number of impressions that used third-party data to serve the ad. |
third_party_costs |
money | yes | 5.20 |
third_party_costs | Total monetary value of data segment costs, feature costs or others. |
sales_tax |
money | no | .43 |
sales_tax | The amount of sales tax collected in USD. This field is only populated when the Buyer's billing address is located in one of the following U.S. states: NY, TX or NJ. Xandr is required (by the relevant local state regulator) to collect this tax. |
vendor_costs |
money | no | 5.00 |
vendor_costs | The total costs, including but not limited to segment data costs, and feature costs. Feature Costs: Costs incurred when using a platform feature such as Nielsen Digital Ad Ratings (DAR), Nielsen Catalina Solutions (NCS) and Cross Device. Segment Data Costs: All costs related to using segments in the data marketplace. Applicable when specific segments are applied in line items and associated pricing is displayed in the platform. |
vendor_costs_buying_currency |
money | no | 1.50 |
vendor_costs_buying_currency | The vendor costs expressed in the transaction currency used by the buyer. |
Examples
Create JSON formatted report request
The JSON file should include the report_type
of "buyer_vendor_usage_analytics"
, as well as the columns (dimensions and metrics) and report_interval
that you want to retrieve. You can also filter for specific dimensions, define granularity (month
, day
, hour
), and specify the format in which the data should be returned (csv
, excel
, or html
). For a full explanation of fields that can be included in the JSON file, see the Report Service.
$ cat buyer_vendor_usage_analytics
{
"report": {
"report_type": "buyer_vendor_usage_analytics",
"format": "csv",
"report_interval": "last_7_days",
"columns": [
"imps",
"line_item_id",
"vendor_costs",
"sales_tax",
"vendor_type",
"vendor"
],
"orders": [
"line_item_id",
"vendor_costs",
"vendor_type"
]
}
}
POST
the request to the Report service
POST
the JSON request to get back a report ID.
$ curl -b cookies -c cookies -X post -d @buyer_vendor_usage_analytics "https://api.appnexus.com/report"
{
"response": {
"report_id": "d89151942729f768dcac4586288ff7eb",
"status": "OK",
"dbg_info": {
"user::read_limit": 100,
"user::write_limit": 60,
"read_limit": 100,
"write_limit": 60,
"user::read_limit_seconds": 60,
"user::write_limit_seconds": 60,
"read_limit_seconds": 60,
"write_limit_seconds": 60,
"instance": "50.bm-report-processor.prod.nym2",
"version": "1.73.238",
"time": 712.83793449402,
"start_microtime": 1686106227,
"warnings": [],
"api_cache_hit": "0",
"output_term": null,
"edge_forwarded_dbg_info": {
"user::read_limit": 100,
"user::write_limit": 60,
"read_limit": 100,
"write_limit": 60,
"user::read_limit_seconds": 60,
"user::write_limit_seconds": 60,
"read_limit_seconds": 60,
"write_limit_seconds": 60,
"instance": "37.report-processor.prod.nym2",
"version": "1.73.238",
"time": 708.98699760437,
"start_microtime": 1686106227,
"warnings": [],
"api_cache_hit": "0",
"output_term": "report_id"
},
"edge_forwarded": true,
"edge_forwarded_by": "50.bm-report-processor.prod.nym2",
"edge_forwarded_to": "http://report-processor-edge.adnxs.net/report"
}
}
}
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=d89151942729f768dcac4586288ff7eb'
{
"response": {
"status": "OK",
"report": {
"id": "d89151942729f768dcac4586288ff7eb",
"name": "",
"created_on": "2023-06-07 02:50:27",
"cache_hit": false,
"fact_cache_hit": false,
"fact_cache_error": "",
"json_request": "{\"report\":{\"report_type\":\"buyer_vendor_usage_analytics\",\"format\":\"csv\",\"report_interval\":\"last_7_days\",\"columns\":[\"imps\",\"line_item_id\",\"vendor_costs\",\"sales_tax\",\"vendor_type\",\"vendor\"],\"orders\":[{\"order_by\":\"line_item_id\",\"direction\":\"ASC\"},{\"order_by\":\"vendor_costs\",\"direction\":\"ASC\"},{\"order_by\":\"vendor_type\",\"direction\":\"ASC\"}],\"grouping\":{\"additional_grouping_sets\":[],\"unselected_implicit_groupings\":[],\"additional_groups_on_bottom\":true},\"timezone\":\"UTC\",\"filters\":[{\"buyer_member_id\":\"958\"}],\"reporting_decimal_type\":\"decimal\",\"use_cache\":true},\"extraction_version\":\"refactored\",\"end_date\":1686096000,\"start_date\":1685491200,\"user_id\":\"4814\"}",
"header_info": "Report type: buyer_vendor_usage_analyticss\nReport ID: d89151942729f768dcac4586288ff7eb\nRun at: 2023-06-07 04:08:58 UTC\nRequested Start date: 2023-05-31 00:00:00 UTC\nRequested End date: 2023-06-07 00:00:00 UTC\nTimezone: UTC\n",
"user_id": "4814",
"member_id": "958",
"bidder_id": "2",
"entity_id": "958",
"row_count": 0,
"report_size": 61,
"url": "report-download?id=d89151942729f768dcac4586288ff7eb"
},
"execution_status": "ready",
"_was_this_status_cached_": 0,
"dbg_info": {
"user::read_limit": 100,
"user::write_limit": 60,
"read_limit": 100,
"write_limit": 60,
"user::read_limit_seconds": 60,
"user::write_limit_seconds": 60,
"read_limit_seconds": 60,
"write_limit_seconds": 60,
"instance": "50.bm-report-processor.prod.nym2",
"version": "1.73.238",
"time": 454.48088645935,
"start_microtime": 1686110938,
"warnings": [],
"api_cache_hit": "0",
"output_term": null,
"edge_forwarded_dbg_info": {
"user::read_limit": 100,
"user::write_limit": 60,
"read_limit": 100,
"write_limit": 60,
"user::read_limit_seconds": 60,
"user::write_limit_seconds": 60,
"read_limit_seconds": 60,
"write_limit_seconds": 60,
"instance": "37.report-processor.prod.nym2",
"version": "1.73.238",
"time": 448.82392883301,
"start_microtime": 1686110938,
"warnings": [],
"api_cache_hit": "0",
"output_term": "report"
},
"edge_forwarded": true,
"edge_forwarded_by": "50.bm-report-processor.prod.nym2",
"edge_forwarded_to": "http://report-processor-edge.adnxs.net/report"
}
}
}
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 identifying the file that you want to save, be sure to use the file extension of the file "format"
that you specified in your initial POST
call, for example, CSV.
curl -b cookies -c cookies 'https://api.appnexus.com/report-download?id=d89151942729f768dcac4586288ff7eb' > /tmp/buyer_vendor_usage_analytics.csv
Tip
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.
Note
There is a limit of 100,000 rows per report when you download them as XLSX and Excel file.