Introducing the ReportService and ForecastService

Wednesday, June 9, 2010 | 2:00 PM

Labels: , ,

Today we are launching two brand new services for the DFP API - the ReportService and the ForecastService. The goal of these two services is to enable you to gain a better understanding of the performance and the availability of your network.

The ReportService

The ReportService enables you to run the same reports seen in the DFP user interface, as well as create custom reports that can be run programmatically to analyze the performance of a network on multiple dimensions and attributes. In the client libraries, we provide examples for running three typical reports (delivery, inventory, and sales) that many users of DFP Small Business (and former GAM customers) should be familiar with. We also provide utilities for scheduling and downloading reports as well.

The ForecastService

The ForecastService enables you to gain an understanding about current availability as well as forecasted inventory. The service works in one of two ways. You can first check the availability of an exiting LineItem by running the method getForecastById. The result will be a description of the total forecasted units that the line item will take, along with its current progress. Imagine the following use case:

  1. You schedule a sponsorship LineItem to run for the following month and you have guaranteed the customer that you will serve at least 100,000 impressions.
  2. You run getForecastById on that LineItem and discover that at the current unitsBought, the customer will only receive 80,000 impression, as returned by Forecast.forecastUnits.
  3. You then update the line item to a higher percentage and rerun getForecastById until you can successfully fulfill the guaranteed impression count.

The ForecastService also enables you to check if a potential line item will fulfill its requirements before it is booked. Imagine the following actions on taking place on a dashboard page:

  1. You fill out the dashboard for a LineItem with a set of initial estimates of the priority and duration to reach a guarantee to the customer of 5000 clicks.
  2. The dashboard would then call getForecast supplying the hypothetical line item that happens to be set to standard priority.
  3. Running getForecast on thatLineItem shows that the available clicks is only 4000, as returned by Forecast.availableUnits.
  4. You interpret this result as there are either competing line items of the same priority that can be adjusted, or you can book the line item anyways knowing that other line items with a lower priority may not meet their expectations.

Intended use in the sandbox

We'd like to make it very clear that the results you get from running either of these services in the sandbox will return a limited amount of data, since your account isn't serving live traffic. On production API accounts, these services return the same data you see in the user interface. Any requests made against the ReportService in the sandbox will return a blank report with only the correct columns. For the ForecastService, the service will return specific test data for the input, depending on the line item attributes such as unitsBought and lineItemType.

During this period, we hope that we can gather valuable feedback (which you can leave on our forum) about the features of these two new services. Feedback regarding topics like providing the correct set of columns to choose from on reports, or whether retrieving forecasts is straightforward would be most helpful. We understand that production access is still a top priority and we hope that the launch of these two services shows that your feedback is important to us as we continue to develop the API.

-- Adam Rogal, The DoubleClick for Publishers API Team