/report/insight/revenue/dimension
Revenue and ad delivery broken down by one dimension, such as publisher, ad unit type, country, device or partner.
The figures match /v1/report/insight/revenue, and rates are worked out the same way: Fill = impressions ÷ ad_requests, Ad Server Fill = ad_responses ÷ ad_requests, Unit Fill = ad_responses ÷ ad_unit_loads
curl --request GET \
--url https://api.tagdeliver.com/v1/report/insight/revenue/dimension \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tagdeliver.com/v1/report/insight/revenue/dimension"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tagdeliver.com/v1/report/insight/revenue/dimension', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tagdeliver.com/v1/report/insight/revenue/dimension",
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: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tagdeliver.com/v1/report/insight/revenue/dimension"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tagdeliver.com/v1/report/insight/revenue/dimension")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tagdeliver.com/v1/report/insight/revenue/dimension")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": {
"currency": "GBP",
"dates": [
"2026-10-19",
"2026-10-20"
],
"dimension": {
"desktop": {
"gross_revenue": [
412.37,
398.04
],
"pap_gross_revenue": [
288.66,
278.63
],
"saas_gross_revenue": [
123.71,
119.41
],
"net_revenue": [
329.9,
318.43
],
"pap_net_revenue": [
230.93,
222.9
],
"saas_net_revenue": [
98.97,
95.53
],
"impressions": [
158240,
152611
],
"pap_impressions": [
110768,
106828
],
"saas_impressions": [
47472,
45783
]
},
"mobile": {
"gross_revenue": [
655.12,
671.8
],
"pap_gross_revenue": [
458.58,
470.26
],
"saas_gross_revenue": [
196.54,
201.54
],
"net_revenue": [
524.1,
537.44
],
"pap_net_revenue": [
366.86,
376.21
],
"saas_net_revenue": [
157.24,
161.23
],
"impressions": [
301455,
309870
],
"pap_impressions": [
211019,
216909
],
"saas_impressions": [
90436,
92961
]
}
},
"data": [
{
"date": "2026-10-19",
"dimension": "desktop",
"gross_revenue": 412.37,
"pap_gross_revenue": 288.66,
"saas_gross_revenue": 123.71,
"net_revenue": 329.9,
"pap_net_revenue": 230.93,
"saas_net_revenue": 98.97,
"impressions": 158240,
"pap_impressions": 110768,
"saas_impressions": 47472,
"viewable_impressions": 104438,
"pap_viewable_impressions": 73107,
"saas_viewable_impressions": 31331,
"ad_unit_loads": 201560,
"pap_ad_unit_loads": 141092,
"saas_ad_unit_loads": 60468,
"ad_requests": 196310,
"pap_ad_requests": 137417,
"saas_ad_requests": 58893,
"ad_responses": 171880,
"pap_ad_responses": 120316,
"saas_ad_responses": 51564
},
{
"date": "2026-10-19",
"dimension": "mobile",
"gross_revenue": 655.12,
"pap_gross_revenue": 458.58,
"saas_gross_revenue": 196.54,
"net_revenue": 524.1,
"pap_net_revenue": 366.86,
"saas_net_revenue": 157.24,
"impressions": 301455,
"pap_impressions": 211019,
"saas_impressions": 90436,
"viewable_impressions": 189916,
"pap_viewable_impressions": 132942,
"saas_viewable_impressions": 56974,
"ad_unit_loads": 388210,
"pap_ad_unit_loads": 271747,
"saas_ad_unit_loads": 116463,
"ad_requests": 372990,
"pap_ad_requests": 261093,
"saas_ad_requests": 111897,
"ad_responses": 318420,
"pap_ad_responses": 222894,
"saas_ad_responses": 95526
},
{
"date": "2026-10-20",
"dimension": "desktop",
"gross_revenue": 398.04,
"pap_gross_revenue": 278.63,
"saas_gross_revenue": 119.41,
"net_revenue": 318.43,
"pap_net_revenue": 222.9,
"saas_net_revenue": 95.53,
"impressions": 152611,
"pap_impressions": 106828,
"saas_impressions": 45783,
"viewable_impressions": 100723,
"pap_viewable_impressions": 70506,
"saas_viewable_impressions": 30217,
"ad_unit_loads": 194380,
"pap_ad_unit_loads": 136066,
"saas_ad_unit_loads": 58314,
"ad_requests": 189950,
"pap_ad_requests": 132965,
"saas_ad_requests": 56985,
"ad_responses": 165770,
"pap_ad_responses": 116039,
"saas_ad_responses": 49731
},
{
"date": "2026-10-20",
"dimension": "mobile",
"gross_revenue": 671.8,
"pap_gross_revenue": 470.26,
"saas_gross_revenue": 201.54,
"net_revenue": 537.44,
"pap_net_revenue": 376.21,
"saas_net_revenue": 161.23,
"impressions": 309870,
"pap_impressions": 216909,
"saas_impressions": 92961,
"viewable_impressions": 195218,
"pap_viewable_impressions": 136653,
"saas_viewable_impressions": 58565,
"ad_unit_loads": 399150,
"pap_ad_unit_loads": 279405,
"saas_ad_unit_loads": 119745,
"ad_requests": 383460,
"pap_ad_requests": 268422,
"saas_ad_requests": 115038,
"ad_responses": 327310,
"pap_ad_responses": 229117,
"saas_ad_responses": 98193
}
]
},
"success": true
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
One or more publisher IDs, comma-separated. Defaults to all publishers in your organisation
Date range to report on. Preset ranges end yesterday. month_to_date is the current month so far and week_to_date is the current week so far. month_on_month and quarter_on_quarter return monthly or quarterly totals, with the latest period incomplete. custom requires start and end (YYYY-MM-DD). Other values return a 400 error
custom, all_time, seven_days, fourteen_days, thirty_days, three_months, six_months, week_to_date, month_to_date, quarter_to_date, year_to_date, last_week, last_month, last_quarter, last_year, month_on_month, quarter_on_quarter, yesterday Start date when range=custom
End date when range=custom
Groups the series by day, month or quarter. month_on_month and quarter_on_quarter group automatically
day, month, quarter The dimension to report on
publisher, ad_unit_type, config, geo, region, device, channel, partner, creative_size Environment or platform to report from
all, app, web Was this page helpful?
curl --request GET \
--url https://api.tagdeliver.com/v1/report/insight/revenue/dimension \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tagdeliver.com/v1/report/insight/revenue/dimension"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tagdeliver.com/v1/report/insight/revenue/dimension', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tagdeliver.com/v1/report/insight/revenue/dimension",
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: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tagdeliver.com/v1/report/insight/revenue/dimension"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tagdeliver.com/v1/report/insight/revenue/dimension")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tagdeliver.com/v1/report/insight/revenue/dimension")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": {
"currency": "GBP",
"dates": [
"2026-10-19",
"2026-10-20"
],
"dimension": {
"desktop": {
"gross_revenue": [
412.37,
398.04
],
"pap_gross_revenue": [
288.66,
278.63
],
"saas_gross_revenue": [
123.71,
119.41
],
"net_revenue": [
329.9,
318.43
],
"pap_net_revenue": [
230.93,
222.9
],
"saas_net_revenue": [
98.97,
95.53
],
"impressions": [
158240,
152611
],
"pap_impressions": [
110768,
106828
],
"saas_impressions": [
47472,
45783
]
},
"mobile": {
"gross_revenue": [
655.12,
671.8
],
"pap_gross_revenue": [
458.58,
470.26
],
"saas_gross_revenue": [
196.54,
201.54
],
"net_revenue": [
524.1,
537.44
],
"pap_net_revenue": [
366.86,
376.21
],
"saas_net_revenue": [
157.24,
161.23
],
"impressions": [
301455,
309870
],
"pap_impressions": [
211019,
216909
],
"saas_impressions": [
90436,
92961
]
}
},
"data": [
{
"date": "2026-10-19",
"dimension": "desktop",
"gross_revenue": 412.37,
"pap_gross_revenue": 288.66,
"saas_gross_revenue": 123.71,
"net_revenue": 329.9,
"pap_net_revenue": 230.93,
"saas_net_revenue": 98.97,
"impressions": 158240,
"pap_impressions": 110768,
"saas_impressions": 47472,
"viewable_impressions": 104438,
"pap_viewable_impressions": 73107,
"saas_viewable_impressions": 31331,
"ad_unit_loads": 201560,
"pap_ad_unit_loads": 141092,
"saas_ad_unit_loads": 60468,
"ad_requests": 196310,
"pap_ad_requests": 137417,
"saas_ad_requests": 58893,
"ad_responses": 171880,
"pap_ad_responses": 120316,
"saas_ad_responses": 51564
},
{
"date": "2026-10-19",
"dimension": "mobile",
"gross_revenue": 655.12,
"pap_gross_revenue": 458.58,
"saas_gross_revenue": 196.54,
"net_revenue": 524.1,
"pap_net_revenue": 366.86,
"saas_net_revenue": 157.24,
"impressions": 301455,
"pap_impressions": 211019,
"saas_impressions": 90436,
"viewable_impressions": 189916,
"pap_viewable_impressions": 132942,
"saas_viewable_impressions": 56974,
"ad_unit_loads": 388210,
"pap_ad_unit_loads": 271747,
"saas_ad_unit_loads": 116463,
"ad_requests": 372990,
"pap_ad_requests": 261093,
"saas_ad_requests": 111897,
"ad_responses": 318420,
"pap_ad_responses": 222894,
"saas_ad_responses": 95526
},
{
"date": "2026-10-20",
"dimension": "desktop",
"gross_revenue": 398.04,
"pap_gross_revenue": 278.63,
"saas_gross_revenue": 119.41,
"net_revenue": 318.43,
"pap_net_revenue": 222.9,
"saas_net_revenue": 95.53,
"impressions": 152611,
"pap_impressions": 106828,
"saas_impressions": 45783,
"viewable_impressions": 100723,
"pap_viewable_impressions": 70506,
"saas_viewable_impressions": 30217,
"ad_unit_loads": 194380,
"pap_ad_unit_loads": 136066,
"saas_ad_unit_loads": 58314,
"ad_requests": 189950,
"pap_ad_requests": 132965,
"saas_ad_requests": 56985,
"ad_responses": 165770,
"pap_ad_responses": 116039,
"saas_ad_responses": 49731
},
{
"date": "2026-10-20",
"dimension": "mobile",
"gross_revenue": 671.8,
"pap_gross_revenue": 470.26,
"saas_gross_revenue": 201.54,
"net_revenue": 537.44,
"pap_net_revenue": 376.21,
"saas_net_revenue": 161.23,
"impressions": 309870,
"pap_impressions": 216909,
"saas_impressions": 92961,
"viewable_impressions": 195218,
"pap_viewable_impressions": 136653,
"saas_viewable_impressions": 58565,
"ad_unit_loads": 399150,
"pap_ad_unit_loads": 279405,
"saas_ad_unit_loads": 119745,
"ad_requests": 383460,
"pap_ad_requests": 268422,
"saas_ad_requests": 115038,
"ad_responses": 327310,
"pap_ad_responses": 229117,
"saas_ad_responses": 98193
}
]
},
"success": true
}