curl --request GET \
--url https://api.hakumedia.ai/v2/reports/forecast/display \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.hakumedia.ai/v2/reports/forecast/display', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.hakumedia.ai/v2/reports/forecast/display"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hakumedia.ai/v2/reports/forecast/display",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"object": "display_forecast",
"url": "/v2/reports/forecast/display",
"data": {
"confidence": "moderate",
"confidence_reasons": [
{
"reason": "The placement forecast estimate may not be accurate because of poorly defined platform targets."
}
],
"impressions_projected": {
"total": 12540,
"daily_breakdown": [
{
"date": "2026-04-15",
"impressions": 420
}
]
},
"competing_ads": {
"campaigns": [
{
"id": 10509,
"placement_id": 88321,
"name": "Spring Promotion",
"type": "campaign",
"zone_id": 5001,
"channel_id": null,
"start_at": "2025-01-01T00:00:00+00:00",
"end_at": "2025-03-31T23:59:59+00:00",
"projected_impressions": 5000,
"priority": "standard",
"delivery_pacing": "default",
"serve_method": "weight",
"weight": 1,
"cpm": 0,
"quota_lifetime": 0,
"quota_daily": 0,
"has_platform_target": false,
"has_geo_target": false,
"has_ad_item_targets": false,
"has_ad_item_schedule": false
}
],
"ad_items": [
{
"id": 520518081,
"placement_id": 88322,
"name": "Banner Ad 300x250",
"type": "ad_item",
"zone_id": 5001,
"channel_id": null,
"start_at": "2025-01-01T00:00:00+00:00",
"end_at": "2025-03-31T23:59:59+00:00",
"projected_impressions": 3000,
"priority": "standard",
"delivery_pacing": "default",
"serve_method": "weight",
"weight": 1,
"cpm": 0,
"quota_lifetime": 0,
"quota_daily": 0,
"has_platform_target": false,
"has_geo_target": false,
"has_ad_item_targets": false,
"has_ad_item_schedule": false
}
]
}
}
}Retrieve Display Forecast Stats
Retrieve a forecast of daily projected impressions for a proposed placement in a display zone over a future date range. The forecast accounts for existing competing placements, targeting, and delivery settings.
curl --request GET \
--url https://api.hakumedia.ai/v2/reports/forecast/display \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.hakumedia.ai/v2/reports/forecast/display', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.hakumedia.ai/v2/reports/forecast/display"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hakumedia.ai/v2/reports/forecast/display",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"object": "display_forecast",
"url": "/v2/reports/forecast/display",
"data": {
"confidence": "moderate",
"confidence_reasons": [
{
"reason": "The placement forecast estimate may not be accurate because of poorly defined platform targets."
}
],
"impressions_projected": {
"total": 12540,
"daily_breakdown": [
{
"date": "2026-04-15",
"impressions": 420
}
]
},
"competing_ads": {
"campaigns": [
{
"id": 10509,
"placement_id": 88321,
"name": "Spring Promotion",
"type": "campaign",
"zone_id": 5001,
"channel_id": null,
"start_at": "2025-01-01T00:00:00+00:00",
"end_at": "2025-03-31T23:59:59+00:00",
"projected_impressions": 5000,
"priority": "standard",
"delivery_pacing": "default",
"serve_method": "weight",
"weight": 1,
"cpm": 0,
"quota_lifetime": 0,
"quota_daily": 0,
"has_platform_target": false,
"has_geo_target": false,
"has_ad_item_targets": false,
"has_ad_item_schedule": false
}
],
"ad_items": [
{
"id": 520518081,
"placement_id": 88322,
"name": "Banner Ad 300x250",
"type": "ad_item",
"zone_id": 5001,
"channel_id": null,
"start_at": "2025-01-01T00:00:00+00:00",
"end_at": "2025-03-31T23:59:59+00:00",
"projected_impressions": 3000,
"priority": "standard",
"delivery_pacing": "default",
"serve_method": "weight",
"weight": 1,
"cpm": 0,
"quota_lifetime": 0,
"quota_daily": 0,
"has_platform_target": false,
"has_geo_target": false,
"has_ad_item_targets": false,
"has_ad_item_schedule": false
}
]
}
}
}Authorizations
API key en el header Authorization: Basic TU_API_KEY. La key va tal cual, sin codificar en base64. Las credenciales se entregan al comenzar la integración.
Query Parameters
The ID of the display zone for which the forecast is to be calculated.
The priority of the proposed placement. Controls which placements are served over others. Must be one of house, bulk, network, standard, or sponsorship.
The delivery pacing of the proposed placement. Must be default or smooth. Default delivery serves impressions as quickly as possible. Smooth delivery will evenly serve ads based on the placement's lifetime dates and quotas. NOTE: Smooth delivery requires the Smooth Delivery feature to be enabled.
Whether the proposed placement is served using a weight-based (weight) or auction-based (auction) system. Must be one of weight or auction. Required when delivery_pacing is default. NOTE: Auction-based serving requires the Serve Method Option feature to be enabled.
A positive integer used to compute the probability of serving the proposed placement relative to others. Only applicable when serve_method is weight. Defaults to 1.
Cost per 1,000 impressions. Required when serve_method is auction.
The start date of the forecast window, in YYYY-MM-DD format (e.g. 2026-04-15). Must be a future date.
The end date of the forecast window, in YYYY-MM-DD format (e.g. 2026-04-30). Must be after start_date.
The maximum number of impressions to serve over the lifetime of the proposed placement. Required when delivery_pacing is smooth.
The maximum number of impressions to serve per day for the proposed placement.
The ID of a geographic target to apply to the proposed placement. Defaults to null (no geographic targeting). Requires the Geo Targeting feature to be enabled.
The ID of a platform target to apply to the proposed placement. Defaults to null (no platform targeting). Requires the Platform Targeting feature to be enabled.
A JSON-encoded string representing the data key targeting configuration for the proposed placement. Defaults to null (no data key targeting). Requires the Data Key Targeting feature to be enabled.