Use RTB troubleshooting API

Use our RTB Troubleshooting API to pull in auction performance metrics

A small number of Programmatic Guaranteed (PG) deals don’t fully deliver in Authorized Buyers (AB) because of discrepancies of billable impression counts between AB and the demand-side platform (DSP).

To identify problematic deals, you can use the RTB Troubleshooting API to pull in “billable impressions" to match up AB reporting with DSP side reporting and highlight high discrepancy deals. These billable impressions are the net monetized impressions that we bill the buyer on.

Calculate spend by pulling in billable impressions and multiplying by the static CPM of the deal.

Step 1

Create a specified filter set for the account with the given account ID using bidders.accounts.filterSets.create

  1. Specify the ownerName, isTransient and filterSet in the request body as in the following example:

Example

ownerName -> "bidders/48446606/accounts/48446606"
isTransient -> true
filterSet -> {
  "dealId": 12345,
  "relativeDateRange": {
    "durationDays": 30,
    "offsetDays": 0
  },
  "name": "bidders/48446606/filterSets/12345",
  "timeSeriesGranularity": "HOURLY"
}

Set isTransient to true if the filter set is only useful in the short-term and shouldn’t persist indefinitely. 

2. Specify the dealId to filter in the filter set.

3. Specify the relativeDateRange (up to 30 days).

RTB troubleshooting API only supports metrics of fewer than 30 days.

4. Use the timeSeriesGranularity to break down the results by hour or day.

5. Once created, record the filter set name.

Step 2

Query the bid metrics including the billed impressions using bidders.accounts.filterSets.bidMetrics.list.

  1. Enter the filterSet name you created in Step 1. For example bidders/48446606/filterSets/12345. Specify page size if needed.
  2. Bid metrics display either one row if no timeSeriesGranularity is specified, or multiple rows with each row for every time granularity (hour or day).

For example, for filterSet in Step 1 and pageSize equals to 2, the response will be:

Example

bid_metrics_rows {
  bids {
    value: 43731
  }
  bids_in_auction {
    value: 43731
  }
  impressions_won {
    value: 34369
  }
  billed_impressions {
    value: 31823
  }
  measurable_impressions {
    value: 31580
  }
  viewable_impressions {
    value: 22820
  }
  row_dimensions {
    time_interval {
      start_time {
        seconds: 1627023600

      }
      end_time {
        seconds: 1627027200
      }
    }
  }
  reached_queries {
    value: 34646
  }
}
bid_metrics_rows {
  bids {
    value: 37903
  }
  bids_in_auction {
    value: 37903
  }
  impressions_won {
    value: 30041
  }
  billed_impressions {
    value: 27974
  }
  measurable_impressions {
    value: 27747
  }
  viewable_impressions {
    value: 20026
  }
  row_dimensions {
    time_interval {
      start_time {
        seconds: 1627027200
      }
      end_time {
        seconds: 1627030800
      }
    }
  }
  reached_queries {
    value: 30329
  }
}
next_page_token: "CAoQwJODrfuI8gIYvdPy4IyJ8gI="

 

Each bid_metrics_rows represents the aggregated metrics for that hour/day specified in time_interval. Use next_page_token to get next page results.

Was this helpful?
How can we improve it?

Need more help?

Sign in for additional support options to quickly solve your issue

Search
Clear search
Close search
Google apps
Main menu
Search Help Center
true
71030
false
false