Run Report
Run an aggregate + time-series delivery report for a date range, with optional filtering by advertiser, campaign, creative, content, and targeting dimension. The response is capped at 1,440 time-series data points, so the selected range must not exceed granularity * 1440 minutes.
curl -X POST "https://api.5centscdn.com/v2/ad-manager/101/reports" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"from": "2026-01-01",
"to": "2026-01-31",
"granularity": 60,
"advertiser_ids": [
"example_string"
],
"campaign_ids": [
"example_string"
],
"creative_ids": [
"example_string"
],
"content_ids": [
"example_string"
],
"content_tags": [
"example_string"
],
"campaign_categories": [
42
],
"categories": [
42
],
"placements": [
"example_string"
],
"devices": [
42
],
"languages": [
"example_string"
],
"oses": [
"example_string"
],
"browsers": [
"example_string"
],
"fill_statuses": [
"full"
],
"break_positions": [
42
],
"break_ids": [
"example_string"
],
"transaction_ids": [
"example_string"
],
"continent_geoname_ids": [
123
],
"country_geoname_ids": [
123
],
"subdivision_1_geoname_ids": [
123
],
"subdivision_2_geoname_ids": [
123
],
"city_geoname_ids": [
123
]
}'
import requests
import json
url = "https://api.5centscdn.com/v2/ad-manager/101/reports"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"from": "2026-01-01",
"to": "2026-01-31",
"granularity": 60,
"advertiser_ids": [
"example_string"
],
"campaign_ids": [
"example_string"
],
"creative_ids": [
"example_string"
],
"content_ids": [
"example_string"
],
"content_tags": [
"example_string"
],
"campaign_categories": [
42
],
"categories": [
42
],
"placements": [
"example_string"
],
"devices": [
42
],
"languages": [
"example_string"
],
"oses": [
"example_string"
],
"browsers": [
"example_string"
],
"fill_statuses": [
"full"
],
"break_positions": [
42
],
"break_ids": [
"example_string"
],
"transaction_ids": [
"example_string"
],
"continent_geoname_ids": [
123
],
"country_geoname_ids": [
123
],
"subdivision_1_geoname_ids": [
123
],
"subdivision_2_geoname_ids": [
123
],
"city_geoname_ids": [
123
]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.5centscdn.com/v2/ad-manager/101/reports", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"from": "2026-01-01",
"to": "2026-01-31",
"granularity": 60,
"advertiser_ids": [
"example_string"
],
"campaign_ids": [
"example_string"
],
"creative_ids": [
"example_string"
],
"content_ids": [
"example_string"
],
"content_tags": [
"example_string"
],
"campaign_categories": [
42
],
"categories": [
42
],
"placements": [
"example_string"
],
"devices": [
42
],
"languages": [
"example_string"
],
"oses": [
"example_string"
],
"browsers": [
"example_string"
],
"fill_statuses": [
"full"
],
"break_positions": [
42
],
"break_ids": [
"example_string"
],
"transaction_ids": [
"example_string"
],
"continent_geoname_ids": [
123
],
"country_geoname_ids": [
123
],
"subdivision_1_geoname_ids": [
123
],
"subdivision_2_geoname_ids": [
123
],
"city_geoname_ids": [
123
]
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"from": "2026-01-01",
"to": "2026-01-31",
"granularity": 60,
"advertiser_ids": [
"example_string"
],
"campaign_ids": [
"example_string"
],
"creative_ids": [
"example_string"
],
"content_ids": [
"example_string"
],
"content_tags": [
"example_string"
],
"campaign_categories": [
42
],
"categories": [
42
],
"placements": [
"example_string"
],
"devices": [
42
],
"languages": [
"example_string"
],
"oses": [
"example_string"
],
"browsers": [
"example_string"
],
"fill_statuses": [
"full"
],
"break_positions": [
42
],
"break_ids": [
"example_string"
],
"transaction_ids": [
"example_string"
],
"continent_geoname_ids": [
123
],
"country_geoname_ids": [
123
],
"subdivision_1_geoname_ids": [
123
],
"subdivision_2_geoname_ids": [
123
],
"city_geoname_ids": [
123
]
}`)
req, err := http.NewRequest("POST", "https://api.5centscdn.com/v2/ad-manager/101/reports", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.5centscdn.com/v2/ad-manager/101/reports')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-API-Key'] = 'YOUR_API_KEY'
request.body = '{
"from": "2026-01-01",
"to": "2026-01-31",
"granularity": 60,
"advertiser_ids": [
"example_string"
],
"campaign_ids": [
"example_string"
],
"creative_ids": [
"example_string"
],
"content_ids": [
"example_string"
],
"content_tags": [
"example_string"
],
"campaign_categories": [
42
],
"categories": [
42
],
"placements": [
"example_string"
],
"devices": [
42
],
"languages": [
"example_string"
],
"oses": [
"example_string"
],
"browsers": [
"example_string"
],
"fill_statuses": [
"full"
],
"break_positions": [
42
],
"break_ids": [
"example_string"
],
"transaction_ids": [
"example_string"
],
"continent_geoname_ids": [
123
],
"country_geoname_ids": [
123
],
"subdivision_1_geoname_ids": [
123
],
"subdivision_2_geoname_ids": [
123
],
"city_geoname_ids": [
123
]
}'
response = http.request(request)
puts response.body
{
"result": "success",
"data": {
"summary": {
"ad_requests": 128430,
"filled_requests": 112230,
"fill_rate": 87.4,
"impressions": 96210,
"starts": 95800,
"first_quartiles": 91000,
"midpoints": 85000,
"third_quartiles": 78000,
"completes": 68500,
"completion_rate": 71.2,
"clicks": 1230,
"ctr": 1.28,
"spend_micros": 481050000,
"ecpm_micros": 5000000,
"errors": 12,
"from": "2026-01-01T00:00:00",
"to": "2026-01-31T00:00:00"
},
"data": [
{
"time": "2026-01-15T10:00:00Z",
"ad_requests": 512,
"fill_rate": 88.1,
"impressions": 451,
"clicks": 6,
"ctr": 1.33,
"completes": 320,
"completion_rate": 71,
"spend_micros": 2255000,
"ecpm_micros": 5000000,
"errors": 1
}
]
}
}
/ad-manager/{pid}/reportsTarget server for requests. Edit to use your own host.
API key (sent in header)
ID of the Ad Manager project.
The media type of the request body
Time-bucket size, in minutes.
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Provide your API key in the header.
Path Parameters
Responses
Operation outcome.
successerror