Skip to content

Advertiser statistics ​

GET/login/advertiser/stats

Access: authenticated advertiser, restricted to owned campaigns.

Authenticate with Authorization: Bearer MEMBER_ACCESS_TOKEN or your secure member session.

Authentication and error codes →

Returns campaign performance for the authenticated advertiser.

Common parameters ​

ParameterRequiredDescription
date_fromYesInclusive start date.
date_toYesInclusive end date.
pageNoPage number, default 1.
perPageNoRows per page, maximum 200.
sortNoBackend sort field.
orderNoasc or desc.
intervalNo1, 7, or 30.
timezoneNoReporting timezone; default UTC.
table_typeNocid, sid, geo, os, browser, domains, carrier, connections, or device.
cidsNoRepeated owned campaign IDs.
types, tids, geos, os, browserNoRepeated filters supported by the selected table.
bash
curl --get "https://example.com/api/v1/login/advertiser/stats" \
  --header "Authorization: Bearer MEMBER_ACCESS_TOKEN" \
  --data-urlencode "date_from=2026-08-01" \
  --data-urlencode "date_to=2026-08-17" \
  --data-urlencode "table_type=cid" \
  --data-urlencode "cids=123"
javascript
const params = new URLSearchParams({ date_from: '2026-08-01', date_to: '2026-08-17', table_type: 'cid', cids: '123' });
const response = await fetch(`https://example.com/api/v1/login/advertiser/stats?${params}`, {
  headers: { Authorization: `Bearer ${process.env.MEMBER_ACCESS_TOKEN}` },
});
if (!response.ok) throw new Error(`Nexus returned ${response.status}`);
console.log(await response.json());
python
import os
import requests

response = requests.get(
    'https://example.com/api/v1/login/advertiser/stats',
    headers={'Authorization': f"Bearer {os.environ['MEMBER_ACCESS_TOKEN']}"},
    params={'date_from': '2026-08-01', 'date_to': '2026-08-17', 'table_type': 'cid', 'cids': 123},
    timeout=30,
)
response.raise_for_status()
print(response.json())

Response ​

The response is paginated and includes data, total, currentPage, and totalPages.

Multiple campaign filters

Repeating cids filters multiple campaigns, for example cids=123&cids=456. Every requested campaign remains subject to member ownership checks.

Authentication and errors ​

This endpoint is served by the tenant member backend at https://example.com/api/v1. Use a member access JWT. Each requested campaign must belong to the authenticated advertiser. Handle non-success HTTP responses before consuming the paginated body and use the returned validation or authentication message to diagnose rejected requests.

API key report ​

GET /advertiser/stats on the configured API gateway returns daily statistics for the API key owner. It accepts an active key with advertiser:stats:read through the Bearer header or the token query parameter. The gateway also checks the current account's advertiser permission and enabled tenant module.

Supply inclusive date_from and date_to values in YYYY-MM-DD format. The range uses UTC and is limited to 90 days. An optional positive cid restricts results to one owned campaign. Use export=json or export=csv. Responses are bounded to 100000 rows and contain campaign identity, requests, impressions, clicks, conversions, spend and derived rates. Spend is converted from stored micro-units to currency units.

API Settings provides the account key and access policy. A previously disabled key can be enabled in Access by selecting Active, checking Campaign statistics and saving the policy. New advertiser keys receive the supported read scope when created.

Gateway rows contain date, cid, cid_type, cid_name, requests, impressions, clicks, conv, conv_cost, spend, cpm, cpc, ctr, win and positions. Database aggregates may contain numeric strings. JSON returns the rows in data. CSV returns the same fields as a text/csv attachment.

White-label Nexus API documentation