How to Set Up Your Own Yield Forecast Dashboard

Prerequisites

1. Configure Forecast Network Settings

Use the GET /v1/forecaster/network-settings and POST /v1/forecaster/network-settings endpoints to review and set:

2. Define Ad Products and Targeting Sets

These represent meaningful segments like “CPM Display”, or "CPC Sponsored Products".

Each targeting set should reflect the targeting logic you'd like forecasted (e.g., geography, device, audience).

3. Trigger the Forecast

Call one of the following endpoints to generate forecast data:

In the response for this request there will be an ID for each forecast. Save this as you'll need it in the next step.

Example response:

{
"193": {
    "type": "success",
    "forecastId": "7f7d4637-c6c7-4bed-99e0-05f997b96183"
    }
}

Forecast data will be processed and available.

4. Query Forecast Results

Use the GET /v1/forecaster/{forecastId} endpoint to fetch forecasted results.

Response overview

The response contains two key sections:

Yield Forecast trigger endpoints build available forecast requests with NewAds. The Forecast availability widget uses the same request shape, so these results follow the NewAds interpretation for available forecasts.

Total

Aggregate totals over the full forecast window:

"total": {
  "booked": { "impressions": 7232, "revenue": 960.0, "clicks": 320 },
  "available": { "impressions": 46144, "clicks": 3264 },
  ...
}

Useful for computing:

Grouped

Breakdowns by your chosen grouping (e.g., daily):

...
{
  "values": {
    "booked": {
      "impressions": 0,
      "revenue": 0.0,
      "clicks": 0,
      "uniqueUsers": 0
    },
    "uncapped": {
      "impressions": 1984,
      "revenue": 0.0,
      "clicks": 128,
      "uniqueUsers": 1984
    },
    "inventory": {
      "bookedAtLower": {
        "impressions": 1984,
        "revenue": 448.0,
        "clicks": 192,
        "uniqueUsers": 1984
      },
      "empty": {
        "impressions": 0,
        "clicks": 0,
        "uniqueUsers": 0
      },
      "bookedAtHigher": {
        "impressions": 0,
        "revenue": 0.0,
        "clicks": 0,
        "uniqueUsers": 0
      }
    },
    "available": {
      "impressions": 1984,
      "revenue": 0.0,
      "clicks": 128,
      "uniqueUsers": 1984
    }
  },
  "key": {
    "$datetime.month": 6,
    "$datetime.date": "2025-06-04",
    "$datetime.week": 23
  }
}
...

Each object has:

This enables you to build time-series charts like:

Updated 22 days ago