Digital Platform API - Multi-buyer seller deal metrics

The Multi-Buyer 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
  • yesterday
  • today
  • last_2 _days
  • last_7_days (not including today)
  • last_14_Days
  • last_30_days

Data retention period

Data retention period for this report is 30 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 Filter? Description
ask_price Yes The ask price for the deal.
bidder_id Yes ID of the bidder (DSP) for the impression.
bidder_name No Name of the bidder (DSP) for the impression.
buyer_member_name Yes The specific buyer that purchased the impression.
buyer_member_id Yes The ID of the buyer that purchased the impression.
deal_auction_type_name Yes The auction type for the deal. A deal can have the following auction types:
- first price
- second price
- fixed price
deal_buyer_type Yes Select to filter by the type of buyer the impression served through. Possible values:
- "Entire Deal"
- "Bidder"
- "Buyer Member"
- "Buyer Seat"

Note: This dimension is mandatory on the Multi-Buyer Deal Metrics Report. To not see data broken out by deal buyer type, filter by Entire Deal.
deal_name Yes The deal associated with the transaction for the impression.
deal_type_name Yes Whether the deal is a public deal, private deal, or programmatic guaranteed deal.
end_date Yes The day and time when the deal stops being available to the buyer.
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.
start_date Yes The day and time when the deal starts being available to the buyer.

Metrics

Column Type Filter? Description
hour time No The hour of the auction.
Note: For impressions older than 100 days, the day will be returned rather than the hour.
day time No The day of the auction.
month time No The month of the auction.
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 completed bids.
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_biased_bid currency Yes The average biased bid for the deal. This is the bid price used for ranking purposes in the auction.
average_floor_price currency Yes The average floor price for the deal.
deal_type_name string Yes Whether the deal is a public deal or a private deal.
bid_rate int Yes The rate of bidding on the deal.
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.
ask_price currency Yes The ask price 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 language settings.
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 technical 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.

Example

Create a JSON formatted report request

The JSON file should include the report_type of "multi_buyer_seller_deal_metrics", 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 multi_buyer_seller_deal_metrics

{
    "report": {
        "report_type": "multi_buyer_seller_deal_metrics",
        "columns": [
            "hour", 
            "buyer_member_name", 
            "deal_name", 
            "start_date", 
            "end_date", 
            "average_net_bid", 
            "imps_won", 
            "seller_revenue", 
            "reject_count"
        ],
        "filters": [{
            "deal_buyer_type": ["Buyer Member"]
        }],
        "report_interval": "last_7_days",
        "format": "csv"
    }
}

POST the request to the reporting service

$ curl -b cookies -X POST -d @multi_buyer_seller_deal_metrics 'https://api.appnexus.com/report'
{
   "response":{
      "status":"OK",
      "report_id":"b97897a7864dd8f34e7457226c7af592"
   }
}

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=b97897a7864dd8f34e7457226c7af592'
{
    "response": {
        "status": "OK",
        "report": {
            "name": null,
            "created_on": "2010-05-25 19:19:53",
            "json_request": "{\"report\":{\"report_type\":\"multi_buyer_seller_deal_metrics\",\"columns\":[\"hour\",\
            "buyer_member_name\",\"deal_name\",\"start_date\",\"end_date\",\"average_net_bid\",\"imps_won\",\"seller_revenue\,\"reject_count\"],\
            "row_per\":[\"hour\",\"buyer_member_id\",\"deal_id\"],\
            "report_interval\":\"last_7_days\"}}",
            "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 'https://api.appnexus.com/report-download?id=b97897a7864dd8f34e7457226c7af592' > /tmp/multi_buyer_seller_deal_metrics.csv

Note

There is a limit of 100,000 rows per report when you download them as XLSX and Excel file.