Seller Deal Metrics report
The Seller Deal Metrics report provides key information about deal metrics, performance, and rejection reasons that is relevant to seller.
For instructions on retrieving a report, see Report Service or the example below.
Time frame
The report_interval
field in the JSON request can be set to one of the following:
- custom
- today
- yesterday
- last_2_days
- last_7_days (not including today)
- last_14_days
- last_30_days
Tip
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 30 days.
Dimensions
Column | Filter? | Description |
---|---|---|
hour |
Yes | The hour of the auction. Note: For impressions older than 100 days, the day will be returned rather than the hour. |
day |
Yes | The day of the auction. |
month |
Yes | The month of the auction. |
buyer_member |
Yes | The ID and name of the member whose advertiser purchased the impression. |
buyer_member_id |
Yes | The ID of the buyer that purchased the impression. |
buyer_member_name |
Yes | The specific buyer that purchased the impression. |
buyer_seat_id |
Yes | The ID of the buyer seat. |
buyer_seat_name |
No | The display name for the buyer seat code. |
buyer_seat_code |
No | The Custom Buyer Seat ID (submitted by DSP) that was used to bid on the impression. |
seller_member_id |
Yes | The member ID of the seller whose inventory you're interested in. |
deal |
Yes | The deal associated with the impression. |
deal_id |
Yes | The ID of the deal to which the settings apply. |
deal_name |
Yes | The deal associated with the transaction for the impression. |
ask_price |
Yes | The ask price for the deal. |
start_date |
Yes | The day and time when the deal starts being available to the buyer. |
end_date |
Yes | The day and time when the deal stops being available to the buyer. |
metric_type |
Yes | The type of the metric used to measure the performance of campaigns. |
deal_auction_type_name |
Yes | The auction type for the deal. A deal can have the following auction types: first price, second price, and fixed price. |
deal_type_name |
Yes | Whether the deal is a public deal, private deal, or programmatic guaranteed deal. |
deal_alias |
No | The alias of the deal. |
package_id |
Yes | The ID of the Package that the deal was created from. This value will be 0 if the deal was not created from a package. |
priority |
Yes | For a private auction only, the priority the seller assigned to the deal. |
Metrics
Column | Type | Filter | Description |
---|---|---|---|
imps_matched |
int | Yes | The total number of impressions that match the seller's settings (not the buyer's) on the deal. |
bid_requests |
int | Yes | The number of bid requests. |
bids |
int | Yes | The number of times a buyer bid. |
final_bids |
int | Yes | The number of auctions in which a buyer bid. |
imps_won |
int | Yes | The total number of impressions won. |
seller_revenue |
currency | Yes | The seller revenue on the deal. |
seller_revenue_ecpm |
currency | Yes | The seller revenue on the deal, represented in eCPM. |
average_net_bid |
currency | Yes | The average net bid on the deal. This is the bid price that is net of all fees and used in determining seller revenue (prior to any bid price reduction that may take place). |
average_floor_price |
currency | Yes | The average floor price for the deal. |
bid_rate |
int | Yes | The percentage of auctions in which the buyer bid. |
ineligible_bid_rate |
int | Yes | The rate of ineligible bids on the deal. |
gross_win_rate |
int | Yes | The gross win rate for the deal. |
net_win_rate |
int | Yes | The net win rate for the deal. |
reject_count |
int | Yes | The total number of rejected bids. |
reject_bidder_error_count |
int | Yes | The number of bids rejected due to bidder errors. |
reject_blocked_by_ad_profile_count |
int | Yes | The sum of all bids rejected by the Ad Profile. |
reject_below_floor_count |
int | Yes | The number of bids rejected because they are below the reserve price set on the auction. |
reject_blocked_by_deal_count |
int | Yes | The sum of all bids rejected due to constraints of the deal. |
reject_invalid_creative_count |
int | Yes | The number of bids rejected due to invalid creatives that the buyer bid with. |
reject_blocked_by_dynamic_adserver_count |
int | Yes | The number of bids rejected due to adserver constraints dynamically passed in by the seller at the time of the impression request. |
reject_other_count |
int | Yes | The number of bids rejected for reasons not listed here. |
reject_bidder_error_deal_not_available_count |
int | Yes | The number of bids rejected because the deal was no longer available. |
reject_blocked_by_ad_profile_creative_count |
int | Yes | The number of bids rejected because the creative ad server was blocked by the ad profile. |
reject_blocked_by_ad_profile_language_count |
int | Yes | The number of bids rejected because the language of the ad was blocked by the ad profile. |
reject_blocked_by_ad_profile_tech_attribute_count |
int | Yes | The number of bids rejected because a technical attribute of the ad was blocked by the ad profile. |
reject_blocked_by_ad_profile_category_count |
int | Yes | The number of bids rejected because the ad profile does not allow the category of the creative. |
reject_blocked_by_ad_profile_brand_count |
int | Yes | The number of bids blocked by the ad profile due to brand exclusions. |
reject_blocked_by_ad_profile_adserver_count |
int | Yes | The number of bids rejected because an ad server associated to the creative that the buyer bid with is blocked. |
reject_blocked_by_ad_profile_member_count |
int | Yes | The number of bids rejected because the member was blocked by the ad profile. |
reject_blocked_by_ad_profile_audit_status_count |
int | Yes | The number of bids blocked by the Ad Profile due to their audit status. This typically happens when the buyer is bidding with an unaudited creative and the seller has blocked unaudited creatives in ad quality. |
reject_below_floor_ym_count |
int | Yes | The number of bids rejected because they are below the yield management floor applicable for the auction. |
reject_invalid_creative_not_ssl_count |
int | Yes | The number of bids rejected due to the creative not being SSL approved for a secure auction. |
reject_blocked_by_deal_creative_count |
int | Yes | The number of bids blocked by the deal due to their creative count. |
reject_blocked_by_deal_language_count |
int | Yes | The number of bids blocked by the deal due to their language settings. |
reject_blocked_by_deal_tech_attribute_count |
int | Yes | The number of bids rejected because a technical attribute was blocked by the deal. |
reject_blocked_by_deal_category_count |
int | Yes | The number of bids rejected because the deal does not allow the category of the creative. |
reject_blocked_by_deal_brand_count |
int | Yes | The number of bids rejected because their brand was blocked by the deal. |
reject_blocked_by_deal_below_floor_count |
int | Yes | The number of bids rejected because they were below the floor applicable for the auction. |
reject_blocked_by_deal_media_subtype_count |
int | Yes | The number of bids rejected due to their media subtypes. |
reject_blocked_by_deal_size_count |
int | Yes | The number of bids rejected because they did not match the size requirements for the deal. |
reject_blocked_by_deal_payment_type_count |
int | Yes | The number of bids rejected because their payment type was not allowed by the deal. |
reject_blocked_by_deal_adserver_count |
int | Yes | The number of bids blocked by due to adserver constraints on the Deal. |
reject_blocked_by_dynamic_brand_count |
int | Yes | The number of bids rejected because the brand is blocked dynamically by the bid request passed in by the seller. |
reject_blocked_by_dynamic_language_count |
int | Yes | The number of bids rejected because the language is blocked dynamically by the bid request passed in by the seller. |
reject_blocked_by_dynamic_tech_attribute_count |
int | Yes | The number of bids rejected because their techincal attributes are blocked dynamically by the bid request passed in by the seller. |
reject_blocked_by_dynamic_category_count |
int | Yes | The number of bids rejected because the creative category is blocked dynamically by the bid request passed in by the seller. |
reject_other_data_protection_count |
int | Yes | The total number of bids rejected for data security reasons not listed here. |
reject_other_advertiser_exclusion_count |
int | Yes | The total number of bids rejected due to advertiser exclusions not listed above. |
reject_blocked_by_deal_advertiser_exclusion_count |
int | Yes | The number of deals rejected due to advertiser exclusions not listed here. |
Example
Create a JSON-formatted report request
The JSON file should include the report_type
of "seller_deal_metrics_report"
, 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 (year
, month
, day
), 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 seller_deal_metrics_report
{
"report": {
"report_type": "seller_deal_metrics_report",
"columns": [
"hour",
"buyer_member_name",
"deal_name",
"start_date",
"end_date",
"bids",
"average_net_bid",
"imps_won",
"seller_revenue",
"reject_count"
],
"report_interval": "last_7_days",
"format": "csv"
}
}
POST
the request to the reporting service
$ curl -b cookies -X POST -d @seller_deal_metrics_report 'https://api.appnexus.com/report'
{
"response": {
"report_id": "2630ab93193a0b14257f154b7912ac5f",
"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.249",
"time": 280.62701225281,
"start_microtime": 1694609672,
"warnings": [],
"api_cache_hit": "0",
"output_term": "report_id"
}
}
}
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=2630ab93193a0b14257f154b7912ac5f'
{
"response": {
"status": "OK",
"report": {
"id": "2630ab93193a0b14257f154b7912ac5f",
"name": "",
"created_on": "2023-09-13 12:54:32",
"cache_hit": true,
"fact_cache_hit": false,
"fact_cache_error": "",
"json_request": "{\"report\":{\"report_type\":\"seller_deal_metrics_report\",\"columns\":[\"hour\",\"buyer_member_name\",\"deal_name\",\"start_date\",\"end_date\",\"bids\",\"average_net_bid\",\"imps_won\",\"seller_revenue\",\"reject_count\"],\"report_interval\":\"last_7_days\",\"format\":\"csv\",\"grouping\":{\"additional_grouping_sets\":[],\"unselected_implicit_groupings\":[],\"additional_groups_on_bottom\":true},\"timezone\":\"UTC\",\"filters\":[{\"seller_member_id\":\"958\"},{\"metric_type\":{\"value\":[\"0\"],\"operator\":\"=\"}}],\"reporting_decimal_type\":\"decimal\",\"use_cache\":true},\"extraction_version\":\"refactored\",\"end_date\":1694563200,\"start_date\":1693958400,\"user_id\":\"4814\"}",
"header_info": "Report type: seller_deal_metrics_reports\nReport ID: 2630ab93193a0b14257f154b7912ac5f\nRun at: 2023-09-13 12:55:17 UTC\nRequested Start date: 2023-09-06 00:00:00 UTC\nRequested End date: 2023-09-13 00:00:00 UTC\nTimezone: UTC\n",
"user_id": "4814",
"member_id": "958",
"bidder_id": "2",
"entity_id": "958",
"row_count": 29112,
"report_size": 3271276,
"url": "report-download?id=2630ab93193a0b14257f154b7912ac5f"
},
"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": "47.bm-report-processor.prod.nym2",
"version": "1.73.249",
"time": 550.46796798706,
"start_microtime": 1694609717,
"warnings": [],
"api_cache_hit": "0",
"output_term": "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 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
.
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.
$ curl -b cookies 'https://api.appnexus.com/report-download?id=2630ab93193a0b14257f154b7912ac5f' > /tmp/seller_deal_metrics_report.csv