Appearance
Advertiser statistics
GET
/login/advertiser/statsAccess: authenticated advertiser, restricted to owned campaigns.
Authenticate with Authorization: Bearer MEMBER_ACCESS_TOKEN or your secure member session.
Returns campaign performance for the authenticated advertiser.
Common parameters
| Parameter | Required | Description |
|---|---|---|
date_from | Yes | Inclusive start date. |
date_to | Yes | Inclusive end date. |
page | No | Page number, default 1. |
perPage | No | Rows per page, maximum 200. |
sort | No | Backend sort field. |
order | No | asc or desc. |
interval | No | 1, 7, or 30. |
timezone | No | Reporting timezone; default UTC. |
table_type | No | cid, sid, geo, os, browser, domains, carrier, connections, or device. |
cids | No | Repeated owned campaign IDs. |
types, tids, geos, os, browser | No | Repeated 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.