Prebid Server Premium Health Analytics

The Prebid Server Premium (PSP) Health Analytics Report allows users to analyze data related to bid requests and transactions with their configured Demand Partners. This is most useful in troubleshooting known issues and proactively identifying optimization opportunities.

Note

The dashboard is based on sample data multiplied to estimate the full volume of PSP activity. It is not intended to be used for delivery and revenue reporting. The Prebid Server Premium Seller Analytics Report and other Microsoft Monetize reports should be used for those purposes.

Time frame

The report_interval field in the JSON request can be set to one of the following:

  • last_hour
  • last_24_hours
  • last_48_hours
  • today
  • yesterday
  • last_2_days
  • last_7_days
  • last_14_days
  • last_30_days
  • month_to_date
  • last_month
  • month_to_yesterday
  • quarter_to_date
  • lifetime

The time_granularity of the data is hourly. For instructions on retrieving a report, see the Report Service or the examples below.

Data retention period

Data retention period for this report is 99 days.

Dimensions

Column Type Filter? Example Description
ad_size string yes 300x250 The dimensions of the ad slot.
allowed_media_types_bitmap_name string no "Banner" The category of creative enabled by the publisher on the Monetize placement. For example: banner, video, native.
application_id string yes "vizio.pluto" The specific application used on the device.
bid_error_type int yes 21 The ID of the category of error related to the bid response. For more detail, see the Bid request error types table below.
bid_error_type_name string no "NO_BID_PRICE" The category of error related to the bid response. For more detail, see the Bid request error types table below.
bid_reject_error_code string yes "31" The specific error generated from the demand partner's bid response. See bid error codes for descriptions and potential resolution for each value.
bidder_id int yes 443 The ID of the bidder (443).
bidder_name string no Prebid Server The name of the bidder (Prebid Server).
browser_code_id int yes 5414 The ID of the specific version of the browser.
browser_code_name string no "da-chrome-107.0" The name of the specific version of the browser.
call_type string yes /ut/v3/prebid The type of handler used to send the bid request to Monetize "(e.g., /ut/v3/prebid, openrtb2/prebid)".
cookies_present boolean yes yes Indicates whether or not a cookie was present in the bid request.
datacenter_id string yes "ams3" The ID of the data center used to route the request to demand partners.
day date yes "2018-02-01" The day of the auction.
demand_partner string no "PubMatic (PSP) (9645)" A string consisting of the demand partner name and ID.
demand_partner_id int yes 9645 The ID of the partner to which the request was sent and from which the response (if any) was received.
demand_partner_name string no "PubMatic (PSP)" The name of the partner to which the request was sent and from which the response (if any) was received.
device_browser_id int yes 8 The ID of the browser used on the device. For example, Chrome, Safari, etc.
device_browser_name string no "Chrome (all versions)" The name of the browser used on the device. For example, Chrome, Safari, etc.
device_os_extended_id int yes 137 The ID of the specific version of the operating system. For example, iOS 16.0.0.
device_os_extended_name string no "Windows 10" The name of the specific version of the operating system. For example, iOS 16.0.0.
device_os_family string no "Android (2)" A string consisting of the device OS family name and ID.
device_os_family_id int yes 2 The ID of the operating system of the device. For example, Microsoft Windows, Apple iOS, etc.
device_os_family_name string no "Android" The name of the operating system of the device. For example, Microsoft Windows, Apple iOS, etc.
device_type_id int yes 1 The category of device:
- 0 = Unknown
- 1 = desktops & laptops
- 2 = mobile phones
- 3 = Tablet
- 4 = tv
- 5 = game consoles
- 6 = media players
- 7 = set top box
device_type_name string yes "mobile phones" The name of the category of device (desktops & laptops, mobile phones, etc.).
external_creative_id string yes 987654 The external ID associated with the creative served.
geo_country string yes "US" The code of the country in which the impression served. For example, US.
geo_country_name string No "United States" The name of the country in which the impression served. For example, United States.
hour date no "2018-02-01-09:54" The hour of the auction.
inventory_url string no "myurl.com/(1234)" The mapped URL from the detected domain on the ad call and the ID in parentheses.
inventory_url_id string yes 1234 The mapped URL ID from the detected domain on the ad call.
inventory_url_name string yes 1234 The mapped URL from the detected domain on the ad call.
media_type string no "Banner" The category of creative on transacted impressions. For example: banner, video, native.
media_type_id int yes 1 The ID of the category of creative on transacted impressions.
month date no "2018-02" The month of the auction.
placement_id int yes 456 The ID of the placement through which the request originated.
placement_name string no "My Placement" The name of the placement through which the request originated.
psp_config_id int yes 10000 Unique identifier for the PSP configuration via the config service. Currently only reportable on bid_responses_received, valid_bid_on_imps, and imps_delivered. Will be updated to cover other metrics in the future.
publisher_id int yes 789 The ID of the publisher on whose inventory the request originated.
publisher_name string no "Neat Publisher Ltd" The name of the publisher on whose inventory the request originated.
sdk_version string yes "pbjs-5.20.3" The version of the software development kit present in the app.
seller_member_id int yes 123 The ID of the seller member.
seller_member_name string no "Cool Seller Inc" The name of the seller member.
site_id int yes 555 The ID of the site on which the the request originated.
site_name string no "My Site" The name of the site on which the request originated.
supply_type string yes "web" The category of inventory (web, mobile web, or app). App includes CTV and mobile.
uap_response_error_type_id string yes TIMEOUT The specific error generated from the bid request. See Bid request Bid request error types table below for a description and potential resolution for each value.

Metrics

Column Type Formula Example Description
average_clear_price double See Description. 1.00 The sum of bid price for delivered impressions divided by the number of bid requests sent.
average_response_time double bid_responses_received / bid_requests_sent. 0.08 The number of bid responses received from demand partners divided by the number of bid requests sent.
bid_errors int See Description. 149908040 The number of errors in bid responses from Demand Partners.
bid_errors_rate double bid_errors / bid_requests_sent 0.04 The number of bid errors divided by the number of bid requests sent to Demand Partners.
bid_request_error_rate double bid_request_errors / bid_requests_sent 0.05 The number of bid request errors divided by the number of bid requests sent to Demand Partners.
bid_request_errors int See Description. 200 The number of specific errors generated from bid requests. See Bid request error types table below for a description and potential resolution for each value.
bid_requests_sent int See Description. 3990674680 The number of requests sent from Prebid Server Premium to Demand Partners.
bid_rejection_error_rate int bid_rejection_errors / bid_responses_received 0.06 The number of bid rejection errors divided by the number of bid responses received from demand partners.
bid_rejection_errors int See Description. 300 The number of specific errors from the demand partner's bid response. See bid error codes for a description and potential resolution for each value.
bid_rate int bid_responses_received / bid_requests_sent 0.08 The number of bid responses received from demand partners divided by the number of bid requests sent.
bid_responses_received int See Description. 381809500 The number of specific errors from the demand partner's bid response. See bid error codes for a description and potential resolution for each value.
bids_submitted_to_ad_server int See Description. 54021580 The number of ad requests that had a valid Prebid bid that was not subject to any additional Microsoft rejections returned to the ad server. This number is counted after the Microsoft auction process that evaluates bids received from all sources. The reduced volume between valid_bid_on_imps and this metric could be due to creative requirements not being met, being outbid by other bidders, or due to the option to send only the top bid back to the ad server.
bidder_user_matched_requests int See Description. 1849169240 The number of requests where a user identifier was present.

Note: This metric currently only includes cookies for web and mobile web.
imps_delivered int See Description. 4804540 The number of impressions successfully delivered and ads rendered.

Note: This report is based on sample log data multiplied to estimate the full volume of PSP activity and does not represent final delivery.
no_bid_rate double no_bids / bid_requests_sent 0.87 The number of times Demand Partners did not bid divided by the number of bid requests sent to Demand Partners.
no_bids int See Description. 3461831640 The number of times Demand Partners did not bid on a request. This does not include bid errors.
total_bid_price int See Description. 171869242 The sum of the bid values received from Demand Partners.
total_buyer_spend double See Description. 11234.88 The media cost to buyers of impressions delivered.

Note: This report is based on sample log data multiplied to estimate the full volume of PSP activity and does not represent final delivery.
user_matched_requests_rate double bidder_user_matched_requests / bid_requests_sent 0.46 The number of user matched requests divided by the number of bid requests sent to Demand Partners.
valid_bid_on_imps int See Description. 378935000 The number of bids received from PSP Demand Partners that do not trigger errors, have a creative ID, and have a bid above $0. There may be multiple bids counted for each auction when multiple PSP Demand Partners return bids.
valid_bids_on_imp_rate double valid_bid_on_imps / bid_responses_received 0.09 The number of valid bids divided by the number of bid requests sent to Demand Partners.
win_rate double imps_delivered / bid_responses_received 0.01 This metric should only be used with the demand partner dimension applied. It represents the percentage of impressions delivered by a demand partner relative to the total bid responses received. The calculation involves dividing the number of impressions delivered by the demand partner by the total number of bid responses received.

Bid request error types

Code Error Description Remedy
0 NONE No error. None needed.
1 INTERNAL There is a server-side error from the Demand Partner, such as a 400 status code. The Seller should work with Microsoft to collect a specific example code to share with the Demand Partner for investigation.
2 TIMEOUT The Demand Partner did not respond within the timeout limit. Either increase timeout settings to allow for a longer response time or contact the Demand Partner to inform them of the restriction. For more information on timeouts, see Add or Edit PSP Global Settings.
3 CLIENT The Demand Partner's Prebid Server adapter generated an error. For significant quantities of this error type, the Seller should contact Microsoft support to diagnose issues by looking at the internal Microsoft logs. An example of this error could be that video supply has been sent to an adapter that does not support it.
4 PARSE The Demand Partner has formatted the bid response incorrectly. The Seller should work with Microsoft and the Demand Partner to determine and resolve the specific formatting issue.

Note

For bid response error types, see Bid Error Codes.

Examples

Create JSON formatted report request

The JSON file should include the report_type of "psp_health_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 (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 psp_health_analytics
   {"report": 
    {
        "format": "csv",
        "report_interval": "yesterday",
        "columns": ["hour", "publisher_id","site_id","header_bidding_demand_partner", "imps", "seller_revenue", "view_rate"],
        "report_type": "psp_health_analytics"
    }
}

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 @psp_health_analytics "https://api.appnexus.com/report"
{
   "response":{
      "status":"OK",
      "report_id":"97a181df6d77a8f3cd5a45eff4ea3dab"
   }
}

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=97a181df6d77a8f3cd5a45eff4ea3dab'
{
    "response": {
        "status": "OK",
        "report": {
            "name": null,
            "created_on": "2014-11-19 21:57:00",
            "json_request": "{\"report\":{\"format\":\"csv\",\"report_interval\":\"yesterday\",\"row_per\":[\"publisher_id\"],\"columns\":[\"hour\", \"publisher_id\",\"site_id\",\"header_bidding_demand_partner\",\"imps\",\"seller_revenue\", \"view_rate\"],\"report_type\":\"psp_health_analytics\"
            "url": "report-download?id=97a181df6d77a8f3cd5a45eff4ea3dab"
        },
        "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 response to your previous GET call. When identifying the file that you want to save to, be sure to use the file extension of the file 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=97a181df6d77a8f3cd5a45eff4ea3dab' > /tmp/psp_health_analytics.csv

Note

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