Browse the help center

Analytics API endpoints

Endpoint reference for the Analytics tag (19 endpoints): Reporting and analytics data retrieval

Reference network manager admin

Reporting and analytics data retrieval. 19 endpoints, generated from the OpenAPI spec. Authentication, the response envelope, pagination and error codes are shared by all endpoints — see REST API overview. Parameters marked form go in an application/x-www-form-urlencoded request body.

GET /rest-api/analytics/{format}.do

Request examples

Get statistics report — impressions, clicks, CTR, revenue by date, country or entity (API key auth).

ParameterInTypeRequiredDescription
formatpathstringyesOutput format: JSON, CSV, PDF, XLSX, or HTML Values: CSV, XLSX, PDF, HTML, JSON.
actionCustomParameterFragmentquerystringnoCustom parameter name fragment for filtering by custom parameter
actionCustomValueFragmentquerystringnoCustom parameter value fragment for filtering by custom parameter
actionIdsqueryarray<integer>noConversion action IDs to report on; repeat the parameter or comma-separate. Restricts the conversion columns, and the per-action columns of splitColumnsBy=CONVERSION_ACTION, to these actions. Omitted: every action the caller may see.
breakdownByActionsquerybooleannoWhen true, adds one conversions column per conversion action. Ignored when splitColumnsBy is set, which supersedes it
breakdownByCustomParameterquerybooleannoWhen true, enables breakdown by custom parameter values
customFromquerystringnoFirst day of the period (yyyy-MM-dd) when range=CUSTOM; ignored for every other range. Defaults to today
customToquerystringnoLast day of the period, inclusive (yyyy-MM-dd), when range=CUSTOM; ignored for every other range. Defaults to today, so range=CUSTOM with only customFrom reports up to today. Must not be before customFrom
eqLongqueryobjectnoNumeric ID-based filters using bracket notation: eqLong[FIELD]=value. Repeat the parameter to filter by multiple values: eqLong[SITE]=100&eqLong[SITE]=200. Available fields: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, ZONE, SITE. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
eqStrqueryobjectnoString-based filters using bracket notation: eqStr[FIELD]=value. Repeat the parameter to filter by multiple values: eqStr[COUNTRY]=US&eqStr[COUNTRY]=GB. Available fields: CHANNEL, COUNTRY, PLACEMENT_TYPE, BANNER_LABEL, PLACEMENT_LABEL, ACTION, BROWSER, OPERATING_SYSTEM, UNIVERSAL_AD_ID (needs the Banner ISCI / Ad-ID Code permission), and FILL_SOURCE in the Header Bidding report. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
groupByqueryarray<string>noDimensions to split rows by; repeat the parameter or comma-separate for several. General report (no statisticType): SITE, OPEN_RTB_PUBLISHER_ID, ZONE, PLACEMENT, PLACEMENT_SIZE, PLACEMENT_LABEL, ADVERTISER, CAMPAIGN, BANNER, BANNER_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, CHANNEL, COUNTRY, COUNTRY_GROUP, ACTION, ATTRIBUTION_TYPE, ADVERTISER_OWNER, SITE_OWNER. Advanced report (statisticType=HADOOP) takes the same entity/country/channel/action dimensions except TEMPLATE_ID, ATTRIBUTION_TYPE and the owners, plus BROWSER, BROWSER_VERSION, OPERATING_SYSTEM, OS_VERSION, REFERER, APP_PACKAGE, SCREEN_SIZE, LOCATION, CUSTOM_PARAMETER, TOP_DOMAIN, DEVICE_RAM, PRICE_BAND, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK and, depending on the analytics backend version, PLACEMENT_SIZE, CARRIER, CONNECTION_TYPE, LANGUAGE, DEVICE_VENDOR, DEVICE_MODEL, RISK_LEVEL, RISK_CATEGORY and similar device fields. Header Bidding report (statisticType=HEADER_BIDDING): FILL_SOURCE, COUNTRY, SITE, ZONE, PLACEMENT. Every dimension is also permission-gated; a value the user may not group by for the chosen report type fails the whole request with a ‘forbidden’ error. Group by date with groupRange, not here Values: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY … (+43 more, 68 total).
groupRangequerystringnoTime frame for grouping analytical data. Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24. Default: NONE Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24.
hadoopAppPackagequerystringnoAdvanced report (statisticType=HADOOP) only: count only in-app requests whose app package / bundle id contains this text.
hadoopCustomParmNamequerystringnoAdvanced report (statisticType=HADOOP) only: count only requests carrying this custom parameter (the name the ad tag passes). Empty: any.
hadoopCustomParmValuequerystringnoAdvanced report (statisticType=HADOOP) only: with hadoopCustomParmName, count only requests where that custom parameter has this value.
hadoopRefDomainquerystringnoAdvanced report (statisticType=HADOOP) only: count only requests whose referrer URL contains this text.
hourFromqueryintegernoStart hour filter (0-23). Only applicable when groupRange=HOUR
hourToqueryintegernoEnd hour filter (0-23). Only applicable when groupRange=HOUR
jsonKeysquerystringnoAnalytics report (/rest-api/analytics/{format}) in JSON, and a saved report mailed as JSON: how each row names its fields. name (default) — the column’s display name in the user’s interface language, e.g. “Impressions” or “Impressionen”; a name several columns share (the Base, Publisher and Advertiser Impressions, Clicks, CTR…) keeps its last occurrence and each earlier one is keyed by its column id, e.g. publisher_impressions. id — every field is keyed by its column id (impressions, publisher_impressions, sumGross): the same in every language and never repeated, so scripts should use it. Other formats and operations ignore it Values: name, id.
limitqueryintegernoMaximum number of rows returned (for pagination). On the /rest-api/analytics/{format} report endpoints omitting it returns up to the network’s records-per-request limit and a larger value is rejected; elsewhere the default is 50
offsetqueryintegernoNumber of result entries to skip (for pagination). Default: 0
rangequerystringnoTime period for the report. Values: TODAY (default), YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM. CUSTOM reads the period from customFrom/customTo Values: TODAY, YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM.
reportsLayoutSettingsqueryarray<string>noMetric column ids to output; only applied when useReportsLayoutSettings=true. These are internal column keys, not display names — ‘gross’ or ‘revenue’ match nothing, and an id that names no column of the report type is skipped (the report endpoints name it in the X-Ignored-Report-Columns response header). General report: impressions, clicks, ctr, requests and fill_rate (absent when grouping or filtering by advertiser/campaign/banner), conversions (also keeps the per-action columns), i2c, ccr, sumGross (Gross), sumNet (Net), sumMinimalNet, profit, apProfit, ecpmGross, ecpmNet, ecpmProfit, unique_visitors, confirmation_status, and the publisher_/advertiser_ variants such as publisher_impressions, publisher_sumNet (Revenue), advertiser_sumGross (Charges), advertiser_ecpmGross. Advanced report (HADOOP): requests, impressionsEligible, clicksEligible, ctrEffective, fillRate, sumGross, sumNet, profit, ecpmGross, ecpmNet, ecpmProfit and more. The complete list for the caller and report type is GET /rest-api/analytics/columns.do?statisticType=…
splitByAttributionquerybooleannoAdds a nested click-through / view-through pair under each conversion-action column. Only meaningful with splitColumnsBy=CONVERSION_ACTION; ignored otherwise.
splitColumnsByquerystringnoThe single dimension spread across report columns. Leave unset to keep the legacy shape, where breakdownByActions/breakdownByCustomParameter decide and the attribution columns are always present. Values: NONE, CONVERSION_ACTION, CUSTOM_PARAMETER, ATTRIBUTION_TYPE.
statisticTypequerystringnoReport type. Omit it for the General report (the default): aggregated totals — impressions, clicks, CTR, conversions, gross, net, profit, eCPM, requests, fill rate — grouped by site/zone/placement, advertiser/campaign/banner, country, channel or action. HADOOP — the Advanced report, computed from the raw ad-server logs: adds ad requests, opportunities and device/browser/OS/referer/app/location dimensions; only when Hadoop analytics is configured on the network (legacy names HADOOP_ADREQUESTS, HADOOP_SECURITY and BROWSER_OS are read as HADOOP). IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, ACTIONS_LOG — one row per raw event instead of totals. TARGETING_COOKIE — cookie-targeting report. HEADER_BIDDING — the Header Bidding report: fills, unfilled requests, fill rate, gross and eCPM per fill source, needs the Header Bidding report permission Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.
useReportsLayoutSettingsquerybooleannoWhen true, only the metric columns listed in reportsLayoutSettings are output (grouping and date columns always stay); the column layout saved in the UI is not applied. Default: false — every metric column the user has permission to see
usersTimeZoneIdquerystringnoTime zone the Advanced report (statisticType=HADOOP) buckets its days and hours in, as a fixed UTC offset name: UTC_0, UTC_PLUS_1 … UTC_PLUS_14, UTC_MINUS_1 … UTC_MINUS_12, and the half-hour ones such as UTC_PLUS_5_30. A value that is not one of them counts as UTC. Other report types use the network’s reporting time zone and ignore it. Default: UTC
apiKeyquerystringnoThe user’s API key. May instead be sent in the X-Api-Key header or as Authorization: Bearer <key>, like on every other /rest-api call
displayIdsquerybooleannoShow entity IDs alongside names in the report
showUniquequerybooleannoInclude unique visitor/click columns in advanced analytics
archivequerybooleannoZip the download: the response is export.<format>.zip holding export.<format>. It does not select older or archived data

Responses: 200 — Report in the requested format · 404 — Not found — resource does not exist · 429 — The network’s daily analytics request limit is reached. Errors follow the shared conventions.

POST /rest-api/analytics/{format}.do

Request examples

Get statistics report — impressions, clicks, CTR, revenue by date, country or entity (API key auth).

ParameterInTypeRequiredDescription
formatpathstringyesOutput format: JSON, CSV, PDF, XLSX, or HTML Values: CSV, XLSX, PDF, HTML, JSON.
actionCustomParameterFragmentformstringnoCustom parameter name fragment for filtering by custom parameter
actionCustomValueFragmentformstringnoCustom parameter value fragment for filtering by custom parameter
actionIdsformarray<integer>noConversion action IDs to report on; repeat the parameter or comma-separate. Restricts the conversion columns, and the per-action columns of splitColumnsBy=CONVERSION_ACTION, to these actions. Omitted: every action the caller may see.
breakdownByActionsformbooleannoWhen true, adds one conversions column per conversion action. Ignored when splitColumnsBy is set, which supersedes it
breakdownByCustomParameterformbooleannoWhen true, enables breakdown by custom parameter values
customFromformstringnoFirst day of the period (yyyy-MM-dd) when range=CUSTOM; ignored for every other range. Defaults to today
customToformstringnoLast day of the period, inclusive (yyyy-MM-dd), when range=CUSTOM; ignored for every other range. Defaults to today, so range=CUSTOM with only customFrom reports up to today. Must not be before customFrom
eqLongformobjectnoNumeric ID-based filters using bracket notation: eqLong[FIELD]=value. Repeat the parameter to filter by multiple values: eqLong[SITE]=100&eqLong[SITE]=200. Available fields: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, ZONE, SITE. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
eqStrformobjectnoString-based filters using bracket notation: eqStr[FIELD]=value. Repeat the parameter to filter by multiple values: eqStr[COUNTRY]=US&eqStr[COUNTRY]=GB. Available fields: CHANNEL, COUNTRY, PLACEMENT_TYPE, BANNER_LABEL, PLACEMENT_LABEL, ACTION, BROWSER, OPERATING_SYSTEM, UNIVERSAL_AD_ID (needs the Banner ISCI / Ad-ID Code permission), and FILL_SOURCE in the Header Bidding report. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
groupByformarray<string>noDimensions to split rows by; repeat the parameter or comma-separate for several. General report (no statisticType): SITE, OPEN_RTB_PUBLISHER_ID, ZONE, PLACEMENT, PLACEMENT_SIZE, PLACEMENT_LABEL, ADVERTISER, CAMPAIGN, BANNER, BANNER_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, CHANNEL, COUNTRY, COUNTRY_GROUP, ACTION, ATTRIBUTION_TYPE, ADVERTISER_OWNER, SITE_OWNER. Advanced report (statisticType=HADOOP) takes the same entity/country/channel/action dimensions except TEMPLATE_ID, ATTRIBUTION_TYPE and the owners, plus BROWSER, BROWSER_VERSION, OPERATING_SYSTEM, OS_VERSION, REFERER, APP_PACKAGE, SCREEN_SIZE, LOCATION, CUSTOM_PARAMETER, TOP_DOMAIN, DEVICE_RAM, PRICE_BAND, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK and, depending on the analytics backend version, PLACEMENT_SIZE, CARRIER, CONNECTION_TYPE, LANGUAGE, DEVICE_VENDOR, DEVICE_MODEL, RISK_LEVEL, RISK_CATEGORY and similar device fields. Header Bidding report (statisticType=HEADER_BIDDING): FILL_SOURCE, COUNTRY, SITE, ZONE, PLACEMENT. Every dimension is also permission-gated; a value the user may not group by for the chosen report type fails the whole request with a ‘forbidden’ error. Group by date with groupRange, not here Values: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY … (+43 more, 68 total).
groupRangeformstringnoTime frame for grouping analytical data. Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24. Default: NONE Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24.
hadoopAppPackageformstringnoAdvanced report (statisticType=HADOOP) only: count only in-app requests whose app package / bundle id contains this text.
hadoopCustomParmNameformstringnoAdvanced report (statisticType=HADOOP) only: count only requests carrying this custom parameter (the name the ad tag passes). Empty: any.
hadoopCustomParmValueformstringnoAdvanced report (statisticType=HADOOP) only: with hadoopCustomParmName, count only requests where that custom parameter has this value.
hadoopRefDomainformstringnoAdvanced report (statisticType=HADOOP) only: count only requests whose referrer URL contains this text.
hourFromformintegernoStart hour filter (0-23). Only applicable when groupRange=HOUR
hourToformintegernoEnd hour filter (0-23). Only applicable when groupRange=HOUR
jsonKeysformstringnoAnalytics report (/rest-api/analytics/{format}) in JSON, and a saved report mailed as JSON: how each row names its fields. name (default) — the column’s display name in the user’s interface language, e.g. “Impressions” or “Impressionen”; a name several columns share (the Base, Publisher and Advertiser Impressions, Clicks, CTR…) keeps its last occurrence and each earlier one is keyed by its column id, e.g. publisher_impressions. id — every field is keyed by its column id (impressions, publisher_impressions, sumGross): the same in every language and never repeated, so scripts should use it. Other formats and operations ignore it Values: name, id.
limitformintegernoMaximum number of rows returned (for pagination). On the /rest-api/analytics/{format} report endpoints omitting it returns up to the network’s records-per-request limit and a larger value is rejected; elsewhere the default is 50
offsetformintegernoNumber of result entries to skip (for pagination). Default: 0
rangeformstringnoTime period for the report. Values: TODAY (default), YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM. CUSTOM reads the period from customFrom/customTo Values: TODAY, YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM.
reportsLayoutSettingsformarray<string>noMetric column ids to output; only applied when useReportsLayoutSettings=true. These are internal column keys, not display names — ‘gross’ or ‘revenue’ match nothing, and an id that names no column of the report type is skipped (the report endpoints name it in the X-Ignored-Report-Columns response header). General report: impressions, clicks, ctr, requests and fill_rate (absent when grouping or filtering by advertiser/campaign/banner), conversions (also keeps the per-action columns), i2c, ccr, sumGross (Gross), sumNet (Net), sumMinimalNet, profit, apProfit, ecpmGross, ecpmNet, ecpmProfit, unique_visitors, confirmation_status, and the publisher_/advertiser_ variants such as publisher_impressions, publisher_sumNet (Revenue), advertiser_sumGross (Charges), advertiser_ecpmGross. Advanced report (HADOOP): requests, impressionsEligible, clicksEligible, ctrEffective, fillRate, sumGross, sumNet, profit, ecpmGross, ecpmNet, ecpmProfit and more. The complete list for the caller and report type is GET /rest-api/analytics/columns.do?statisticType=…
splitByAttributionformbooleannoAdds a nested click-through / view-through pair under each conversion-action column. Only meaningful with splitColumnsBy=CONVERSION_ACTION; ignored otherwise.
splitColumnsByformstringnoThe single dimension spread across report columns. Leave unset to keep the legacy shape, where breakdownByActions/breakdownByCustomParameter decide and the attribution columns are always present. Values: NONE, CONVERSION_ACTION, CUSTOM_PARAMETER, ATTRIBUTION_TYPE.
statisticTypeformstringnoReport type. Omit it for the General report (the default): aggregated totals — impressions, clicks, CTR, conversions, gross, net, profit, eCPM, requests, fill rate — grouped by site/zone/placement, advertiser/campaign/banner, country, channel or action. HADOOP — the Advanced report, computed from the raw ad-server logs: adds ad requests, opportunities and device/browser/OS/referer/app/location dimensions; only when Hadoop analytics is configured on the network (legacy names HADOOP_ADREQUESTS, HADOOP_SECURITY and BROWSER_OS are read as HADOOP). IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, ACTIONS_LOG — one row per raw event instead of totals. TARGETING_COOKIE — cookie-targeting report. HEADER_BIDDING — the Header Bidding report: fills, unfilled requests, fill rate, gross and eCPM per fill source, needs the Header Bidding report permission Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.
useReportsLayoutSettingsformbooleannoWhen true, only the metric columns listed in reportsLayoutSettings are output (grouping and date columns always stay); the column layout saved in the UI is not applied. Default: false — every metric column the user has permission to see
usersTimeZoneIdformstringnoTime zone the Advanced report (statisticType=HADOOP) buckets its days and hours in, as a fixed UTC offset name: UTC_0, UTC_PLUS_1 … UTC_PLUS_14, UTC_MINUS_1 … UTC_MINUS_12, and the half-hour ones such as UTC_PLUS_5_30. A value that is not one of them counts as UTC. Other report types use the network’s reporting time zone and ignore it. Default: UTC
apiKeyformstringnoThe user’s API key. May instead be sent in the X-Api-Key header or as Authorization: Bearer <key>, like on every other /rest-api call
displayIdsformbooleannoShow entity IDs alongside names in the report
showUniqueformbooleannoInclude unique visitor/click columns in advanced analytics
archiveformbooleannoZip the download: the response is export.<format>.zip holding export.<format>. It does not select older or archived data

Responses: 200 — Report in the requested format · 404 — Not found — resource does not exist · 429 — The network’s daily analytics request limit is reached. Errors follow the shared conventions.

GET /rest-api/analytics/{format}/{login}/{hash}/{timestamp}.do

Request examples

Get statistics report — impressions, clicks, CTR, revenue by date, country or entity (login/hash auth).

ParameterInTypeRequiredDescription
formatpathstringyesOutput format: JSON, CSV, PDF, XLSX, or HTML Values: CSV, XLSX, PDF, HTML, JSON.
loginpathstringyesUsername of the requesting user
actionCustomParameterFragmentquerystringnoCustom parameter name fragment for filtering by custom parameter
actionCustomValueFragmentquerystringnoCustom parameter value fragment for filtering by custom parameter
actionIdsqueryarray<integer>noConversion action IDs to report on; repeat the parameter or comma-separate. Restricts the conversion columns, and the per-action columns of splitColumnsBy=CONVERSION_ACTION, to these actions. Omitted: every action the caller may see.
breakdownByActionsquerybooleannoWhen true, adds one conversions column per conversion action. Ignored when splitColumnsBy is set, which supersedes it
breakdownByCustomParameterquerybooleannoWhen true, enables breakdown by custom parameter values
customFromquerystringnoFirst day of the period (yyyy-MM-dd) when range=CUSTOM; ignored for every other range. Defaults to today
customToquerystringnoLast day of the period, inclusive (yyyy-MM-dd), when range=CUSTOM; ignored for every other range. Defaults to today, so range=CUSTOM with only customFrom reports up to today. Must not be before customFrom
eqLongqueryobjectnoNumeric ID-based filters using bracket notation: eqLong[FIELD]=value. Repeat the parameter to filter by multiple values: eqLong[SITE]=100&eqLong[SITE]=200. Available fields: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, ZONE, SITE. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
eqStrqueryobjectnoString-based filters using bracket notation: eqStr[FIELD]=value. Repeat the parameter to filter by multiple values: eqStr[COUNTRY]=US&eqStr[COUNTRY]=GB. Available fields: CHANNEL, COUNTRY, PLACEMENT_TYPE, BANNER_LABEL, PLACEMENT_LABEL, ACTION, BROWSER, OPERATING_SYSTEM, UNIVERSAL_AD_ID (needs the Banner ISCI / Ad-ID Code permission), and FILL_SOURCE in the Header Bidding report. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
groupByqueryarray<string>noDimensions to split rows by; repeat the parameter or comma-separate for several. General report (no statisticType): SITE, OPEN_RTB_PUBLISHER_ID, ZONE, PLACEMENT, PLACEMENT_SIZE, PLACEMENT_LABEL, ADVERTISER, CAMPAIGN, BANNER, BANNER_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, CHANNEL, COUNTRY, COUNTRY_GROUP, ACTION, ATTRIBUTION_TYPE, ADVERTISER_OWNER, SITE_OWNER. Advanced report (statisticType=HADOOP) takes the same entity/country/channel/action dimensions except TEMPLATE_ID, ATTRIBUTION_TYPE and the owners, plus BROWSER, BROWSER_VERSION, OPERATING_SYSTEM, OS_VERSION, REFERER, APP_PACKAGE, SCREEN_SIZE, LOCATION, CUSTOM_PARAMETER, TOP_DOMAIN, DEVICE_RAM, PRICE_BAND, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK and, depending on the analytics backend version, PLACEMENT_SIZE, CARRIER, CONNECTION_TYPE, LANGUAGE, DEVICE_VENDOR, DEVICE_MODEL, RISK_LEVEL, RISK_CATEGORY and similar device fields. Header Bidding report (statisticType=HEADER_BIDDING): FILL_SOURCE, COUNTRY, SITE, ZONE, PLACEMENT. Every dimension is also permission-gated; a value the user may not group by for the chosen report type fails the whole request with a ‘forbidden’ error. Group by date with groupRange, not here Values: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY … (+43 more, 68 total).
groupRangequerystringnoTime frame for grouping analytical data. Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24. Default: NONE Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24.
hadoopAppPackagequerystringnoAdvanced report (statisticType=HADOOP) only: count only in-app requests whose app package / bundle id contains this text.
hadoopCustomParmNamequerystringnoAdvanced report (statisticType=HADOOP) only: count only requests carrying this custom parameter (the name the ad tag passes). Empty: any.
hadoopCustomParmValuequerystringnoAdvanced report (statisticType=HADOOP) only: with hadoopCustomParmName, count only requests where that custom parameter has this value.
hadoopRefDomainquerystringnoAdvanced report (statisticType=HADOOP) only: count only requests whose referrer URL contains this text.
hourFromqueryintegernoStart hour filter (0-23). Only applicable when groupRange=HOUR
hourToqueryintegernoEnd hour filter (0-23). Only applicable when groupRange=HOUR
jsonKeysquerystringnoAnalytics report (/rest-api/analytics/{format}) in JSON, and a saved report mailed as JSON: how each row names its fields. name (default) — the column’s display name in the user’s interface language, e.g. “Impressions” or “Impressionen”; a name several columns share (the Base, Publisher and Advertiser Impressions, Clicks, CTR…) keeps its last occurrence and each earlier one is keyed by its column id, e.g. publisher_impressions. id — every field is keyed by its column id (impressions, publisher_impressions, sumGross): the same in every language and never repeated, so scripts should use it. Other formats and operations ignore it Values: name, id.
limitqueryintegernoMaximum number of rows returned (for pagination). On the /rest-api/analytics/{format} report endpoints omitting it returns up to the network’s records-per-request limit and a larger value is rejected; elsewhere the default is 50
offsetqueryintegernoNumber of result entries to skip (for pagination). Default: 0
rangequerystringnoTime period for the report. Values: TODAY (default), YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM. CUSTOM reads the period from customFrom/customTo Values: TODAY, YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM.
reportsLayoutSettingsqueryarray<string>noMetric column ids to output; only applied when useReportsLayoutSettings=true. These are internal column keys, not display names — ‘gross’ or ‘revenue’ match nothing, and an id that names no column of the report type is skipped (the report endpoints name it in the X-Ignored-Report-Columns response header). General report: impressions, clicks, ctr, requests and fill_rate (absent when grouping or filtering by advertiser/campaign/banner), conversions (also keeps the per-action columns), i2c, ccr, sumGross (Gross), sumNet (Net), sumMinimalNet, profit, apProfit, ecpmGross, ecpmNet, ecpmProfit, unique_visitors, confirmation_status, and the publisher_/advertiser_ variants such as publisher_impressions, publisher_sumNet (Revenue), advertiser_sumGross (Charges), advertiser_ecpmGross. Advanced report (HADOOP): requests, impressionsEligible, clicksEligible, ctrEffective, fillRate, sumGross, sumNet, profit, ecpmGross, ecpmNet, ecpmProfit and more. The complete list for the caller and report type is GET /rest-api/analytics/columns.do?statisticType=…
splitByAttributionquerybooleannoAdds a nested click-through / view-through pair under each conversion-action column. Only meaningful with splitColumnsBy=CONVERSION_ACTION; ignored otherwise.
splitColumnsByquerystringnoThe single dimension spread across report columns. Leave unset to keep the legacy shape, where breakdownByActions/breakdownByCustomParameter decide and the attribution columns are always present. Values: NONE, CONVERSION_ACTION, CUSTOM_PARAMETER, ATTRIBUTION_TYPE.
statisticTypequerystringnoReport type. Omit it for the General report (the default): aggregated totals — impressions, clicks, CTR, conversions, gross, net, profit, eCPM, requests, fill rate — grouped by site/zone/placement, advertiser/campaign/banner, country, channel or action. HADOOP — the Advanced report, computed from the raw ad-server logs: adds ad requests, opportunities and device/browser/OS/referer/app/location dimensions; only when Hadoop analytics is configured on the network (legacy names HADOOP_ADREQUESTS, HADOOP_SECURITY and BROWSER_OS are read as HADOOP). IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, ACTIONS_LOG — one row per raw event instead of totals. TARGETING_COOKIE — cookie-targeting report. HEADER_BIDDING — the Header Bidding report: fills, unfilled requests, fill rate, gross and eCPM per fill source, needs the Header Bidding report permission Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.
useReportsLayoutSettingsquerybooleannoWhen true, only the metric columns listed in reportsLayoutSettings are output (grouping and date columns always stay); the column layout saved in the UI is not applied. Default: false — every metric column the user has permission to see
usersTimeZoneIdquerystringnoTime zone the Advanced report (statisticType=HADOOP) buckets its days and hours in, as a fixed UTC offset name: UTC_0, UTC_PLUS_1 … UTC_PLUS_14, UTC_MINUS_1 … UTC_MINUS_12, and the half-hour ones such as UTC_PLUS_5_30. A value that is not one of them counts as UTC. Other report types use the network’s reporting time zone and ignore it. Default: UTC
displayIdsquerybooleannoShow entity IDs alongside names in the report
showUniquequerybooleannoInclude unique visitor/click columns in advanced analytics
archivequerybooleannoZip the download: the response is export.<format>.zip holding export.<format>. It does not select older or archived data

Note: the {hash} and {timestamp} segments carry path-based hash authentication — see REST API overview.

Responses: 200 — Report in the requested format · 404 — Not found — resource does not exist · 429 — The network’s daily analytics request limit is reached. Errors follow the shared conventions.

POST /rest-api/analytics/{format}/{login}/{hash}/{timestamp}.do

Request examples

Get statistics report — impressions, clicks, CTR, revenue by date, country or entity (login/hash auth).

ParameterInTypeRequiredDescription
formatpathstringyesOutput format: JSON, CSV, PDF, XLSX, or HTML Values: CSV, XLSX, PDF, HTML, JSON.
loginpathstringyesUsername of the requesting user
actionCustomParameterFragmentformstringnoCustom parameter name fragment for filtering by custom parameter
actionCustomValueFragmentformstringnoCustom parameter value fragment for filtering by custom parameter
actionIdsformarray<integer>noConversion action IDs to report on; repeat the parameter or comma-separate. Restricts the conversion columns, and the per-action columns of splitColumnsBy=CONVERSION_ACTION, to these actions. Omitted: every action the caller may see.
breakdownByActionsformbooleannoWhen true, adds one conversions column per conversion action. Ignored when splitColumnsBy is set, which supersedes it
breakdownByCustomParameterformbooleannoWhen true, enables breakdown by custom parameter values
customFromformstringnoFirst day of the period (yyyy-MM-dd) when range=CUSTOM; ignored for every other range. Defaults to today
customToformstringnoLast day of the period, inclusive (yyyy-MM-dd), when range=CUSTOM; ignored for every other range. Defaults to today, so range=CUSTOM with only customFrom reports up to today. Must not be before customFrom
eqLongformobjectnoNumeric ID-based filters using bracket notation: eqLong[FIELD]=value. Repeat the parameter to filter by multiple values: eqLong[SITE]=100&eqLong[SITE]=200. Available fields: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, ZONE, SITE. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
eqStrformobjectnoString-based filters using bracket notation: eqStr[FIELD]=value. Repeat the parameter to filter by multiple values: eqStr[COUNTRY]=US&eqStr[COUNTRY]=GB. Available fields: CHANNEL, COUNTRY, PLACEMENT_TYPE, BANNER_LABEL, PLACEMENT_LABEL, ACTION, BROWSER, OPERATING_SYSTEM, UNIVERSAL_AD_ID (needs the Banner ISCI / Ad-ID Code permission), and FILL_SOURCE in the Header Bidding report. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
groupByformarray<string>noDimensions to split rows by; repeat the parameter or comma-separate for several. General report (no statisticType): SITE, OPEN_RTB_PUBLISHER_ID, ZONE, PLACEMENT, PLACEMENT_SIZE, PLACEMENT_LABEL, ADVERTISER, CAMPAIGN, BANNER, BANNER_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, CHANNEL, COUNTRY, COUNTRY_GROUP, ACTION, ATTRIBUTION_TYPE, ADVERTISER_OWNER, SITE_OWNER. Advanced report (statisticType=HADOOP) takes the same entity/country/channel/action dimensions except TEMPLATE_ID, ATTRIBUTION_TYPE and the owners, plus BROWSER, BROWSER_VERSION, OPERATING_SYSTEM, OS_VERSION, REFERER, APP_PACKAGE, SCREEN_SIZE, LOCATION, CUSTOM_PARAMETER, TOP_DOMAIN, DEVICE_RAM, PRICE_BAND, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK and, depending on the analytics backend version, PLACEMENT_SIZE, CARRIER, CONNECTION_TYPE, LANGUAGE, DEVICE_VENDOR, DEVICE_MODEL, RISK_LEVEL, RISK_CATEGORY and similar device fields. Header Bidding report (statisticType=HEADER_BIDDING): FILL_SOURCE, COUNTRY, SITE, ZONE, PLACEMENT. Every dimension is also permission-gated; a value the user may not group by for the chosen report type fails the whole request with a ‘forbidden’ error. Group by date with groupRange, not here Values: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY … (+43 more, 68 total).
groupRangeformstringnoTime frame for grouping analytical data. Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24. Default: NONE Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24.
hadoopAppPackageformstringnoAdvanced report (statisticType=HADOOP) only: count only in-app requests whose app package / bundle id contains this text.
hadoopCustomParmNameformstringnoAdvanced report (statisticType=HADOOP) only: count only requests carrying this custom parameter (the name the ad tag passes). Empty: any.
hadoopCustomParmValueformstringnoAdvanced report (statisticType=HADOOP) only: with hadoopCustomParmName, count only requests where that custom parameter has this value.
hadoopRefDomainformstringnoAdvanced report (statisticType=HADOOP) only: count only requests whose referrer URL contains this text.
hourFromformintegernoStart hour filter (0-23). Only applicable when groupRange=HOUR
hourToformintegernoEnd hour filter (0-23). Only applicable when groupRange=HOUR
jsonKeysformstringnoAnalytics report (/rest-api/analytics/{format}) in JSON, and a saved report mailed as JSON: how each row names its fields. name (default) — the column’s display name in the user’s interface language, e.g. “Impressions” or “Impressionen”; a name several columns share (the Base, Publisher and Advertiser Impressions, Clicks, CTR…) keeps its last occurrence and each earlier one is keyed by its column id, e.g. publisher_impressions. id — every field is keyed by its column id (impressions, publisher_impressions, sumGross): the same in every language and never repeated, so scripts should use it. Other formats and operations ignore it Values: name, id.
limitformintegernoMaximum number of rows returned (for pagination). On the /rest-api/analytics/{format} report endpoints omitting it returns up to the network’s records-per-request limit and a larger value is rejected; elsewhere the default is 50
offsetformintegernoNumber of result entries to skip (for pagination). Default: 0
rangeformstringnoTime period for the report. Values: TODAY (default), YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM. CUSTOM reads the period from customFrom/customTo Values: TODAY, YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM.
reportsLayoutSettingsformarray<string>noMetric column ids to output; only applied when useReportsLayoutSettings=true. These are internal column keys, not display names — ‘gross’ or ‘revenue’ match nothing, and an id that names no column of the report type is skipped (the report endpoints name it in the X-Ignored-Report-Columns response header). General report: impressions, clicks, ctr, requests and fill_rate (absent when grouping or filtering by advertiser/campaign/banner), conversions (also keeps the per-action columns), i2c, ccr, sumGross (Gross), sumNet (Net), sumMinimalNet, profit, apProfit, ecpmGross, ecpmNet, ecpmProfit, unique_visitors, confirmation_status, and the publisher_/advertiser_ variants such as publisher_impressions, publisher_sumNet (Revenue), advertiser_sumGross (Charges), advertiser_ecpmGross. Advanced report (HADOOP): requests, impressionsEligible, clicksEligible, ctrEffective, fillRate, sumGross, sumNet, profit, ecpmGross, ecpmNet, ecpmProfit and more. The complete list for the caller and report type is GET /rest-api/analytics/columns.do?statisticType=…
splitByAttributionformbooleannoAdds a nested click-through / view-through pair under each conversion-action column. Only meaningful with splitColumnsBy=CONVERSION_ACTION; ignored otherwise.
splitColumnsByformstringnoThe single dimension spread across report columns. Leave unset to keep the legacy shape, where breakdownByActions/breakdownByCustomParameter decide and the attribution columns are always present. Values: NONE, CONVERSION_ACTION, CUSTOM_PARAMETER, ATTRIBUTION_TYPE.
statisticTypeformstringnoReport type. Omit it for the General report (the default): aggregated totals — impressions, clicks, CTR, conversions, gross, net, profit, eCPM, requests, fill rate — grouped by site/zone/placement, advertiser/campaign/banner, country, channel or action. HADOOP — the Advanced report, computed from the raw ad-server logs: adds ad requests, opportunities and device/browser/OS/referer/app/location dimensions; only when Hadoop analytics is configured on the network (legacy names HADOOP_ADREQUESTS, HADOOP_SECURITY and BROWSER_OS are read as HADOOP). IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, ACTIONS_LOG — one row per raw event instead of totals. TARGETING_COOKIE — cookie-targeting report. HEADER_BIDDING — the Header Bidding report: fills, unfilled requests, fill rate, gross and eCPM per fill source, needs the Header Bidding report permission Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.
useReportsLayoutSettingsformbooleannoWhen true, only the metric columns listed in reportsLayoutSettings are output (grouping and date columns always stay); the column layout saved in the UI is not applied. Default: false — every metric column the user has permission to see
usersTimeZoneIdformstringnoTime zone the Advanced report (statisticType=HADOOP) buckets its days and hours in, as a fixed UTC offset name: UTC_0, UTC_PLUS_1 … UTC_PLUS_14, UTC_MINUS_1 … UTC_MINUS_12, and the half-hour ones such as UTC_PLUS_5_30. A value that is not one of them counts as UTC. Other report types use the network’s reporting time zone and ignore it. Default: UTC
displayIdsformbooleannoShow entity IDs alongside names in the report
showUniqueformbooleannoInclude unique visitor/click columns in advanced analytics
archiveformbooleannoZip the download: the response is export.<format>.zip holding export.<format>. It does not select older or archived data

Note: the {hash} and {timestamp} segments carry path-based hash authentication — see REST API overview.

Responses: 200 — Report in the requested format · 404 — Not found — resource does not exist · 429 — The network’s daily analytics request limit is reached. Errors follow the shared conventions.

GET /rest-api/analytics/columns.do

Request examples

List the report metric columns you may use.

ParameterInTypeRequiredDescription
statisticTypequerystringnoReport type; omitted means the General report. E.g. HADOOP for the Advanced report Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.

Responses: 200 — {statisticType, columns:[{id, name, group, groupName}]}. Errors follow the shared conventions.

GET /rest-api/analytics/raw-log-analyze.do

Request examples

Analyse raw event logs — counts by value, distinct visitors, sample rows, clicks without impressions.

ParameterInTypeRequiredDescription
logTypequerystringyesIMPRESSIONS, CLICKS, CONVERSIONS or ACTIONS
fromquerystringyesFirst day, yyyy-MM-dd, server time zone
toquerystringnoLast day, yyyy-MM-dd, inclusive; default from; at most 3 days from from
advertiserIdsqueryarray<integer>noAdvertiser ids to keep (ORed with campaigns and banners, as in the raw-log reports)
campaignIdsqueryarray<integer>noCampaign ids to keep
bannerIdsqueryarray<integer>noBanner ids to keep
siteIdsqueryarray<integer>noSite ids to keep (ORed with zones and placements)
zoneIdsqueryarray<integer>noZone ids to keep
placementIdsqueryarray<integer>noPlacement ids to keep
countriesqueryarray<string>noCountries to keep, two-letter codes
connectionTypesqueryarray<string>noConnection types to keep (needs RPT_GRP_FILTER_CONNECTION_TYPE)
languagesqueryarray<string>noBrowser languages to keep (needs RPT_GRP_FILTER_LANGUAGE)
trafficSourcesqueryarray<string>noTraffic sources to keep (needs RPT_GRP_FILTER_TRAFFIC_SOURCE)
incognitoquerystringnoIncognito filter: true, false or unknown (needs RPT_GRP_FILTER_INCOGNITO_MODE)
validationquerystringnoVALID (default), NOT_VALID or ALL records - only networks that write invalid records keep NOT_VALID ones
groupByqueryarray<string>noOne or two columns to count rows by: a raw-log column (domain, ip, uuid, user_agent, country, deviceFormat, os, browser, banner_id, placement_id…), day, hour, an entity name (banner_name…), or custom_param.<name> for one custom parameter’s values
topqueryintegernoGroups listed, most rows first; default 20, at most 100
samplequeryintegernoSample rows returned; default 10, at most 50, 0 for none
columnsqueryarray<string>noColumns of the sample rows; default dt, banner_id, placement_id, domain, ip, country, deviceFormat, user_agent, custom_param, transaction_id and the groupBy columns
linkquerybooleannoMatch clicks to impressions, or conversions and actions to clicks, by transaction id; reads the other log too (up to 50000 rows)

Responses: 200 — {success, logType, from, to, rowsRead, matchingRows, capped, rowCap, groupBy, groups:[{<column>: value, count, share}], other:{groups, rows}|null, distinctGroups, distinct:{ip, uuid, user_agent, domain}, sampleColumns, sample:[{…}], linkedTo:{log, key, matched, unmatched, withoutId, linkedRowsRead, linkedCapped, unmatchedByAttribution?, unmatchedSample}|{log, skipped}, notes:[…]} · 429 — The network’s daily analytics request limit is reached · 503 — The raw logs could not be read from the analytics cluster. Errors follow the shared conventions.

GET /rest-api/analytics/report-check.do

Request examples

Check why a report comes back empty.

ParameterInTypeRequiredDescription
fromquerystringyesFirst day of the report, yyyy-MM-dd
reportTypequerystringnoGENERAL (default) or ADVANCED (also HADOOP)
toquerystringnoLast day of the report, yyyy-MM-dd, inclusive; default from
groupRangequerystringnoTime breakdown: NONE (default), HOUR, DAY, WEEK, MONTH or YEAR
groupByqueryarray<string>noGroupings, as the report names them (CAMPAIGN, COUNTRY, DEVICE_FORMAT…)
advertiserIdsqueryarray<integer>noAdvertiser ids the report was filtered to
campaignIdsqueryarray<integer>noCampaign ids the report was filtered to
bannerIdsqueryarray<integer>noBanner ids the report was filtered to
siteIdsqueryarray<integer>noSite ids the report was filtered to
zoneIdsqueryarray<integer>noZone ids the report was filtered to
placementIdsqueryarray<integer>noPlacement ids the report was filtered to
countriesqueryarray<string>noCountries the report was filtered to, two-letter codes
deviceFormatsqueryarray<string>noAdvanced report only — device formats it was filtered to (MOBILE, DESKTOP…)
connectionTypesqueryarray<string>noAdvanced report only — connection types it was filtered to
languagesqueryarray<string>noAdvanced report only — browser languages it was filtered to
incognitoquerystringnoAdvanced report only — incognito filter: true, false or unknown

Responses: 200 — {success, reportType, from, to, decisive:{check, reason, fix}|null, findings:[{check, decisive, reason, fix}]}; check is one of FUTURE, PERMISSION, RETENTION, ENTITY, CONTRADICTION, ADVANCED_DATA, NOT_FLUSHED, COLUMNS, GROUPING, PROVISIONAL. Errors follow the shared conventions.

GET /rest-api/analytics/reports-layout-settings/{login}/{hash}/{timestamp}.do

Request examples

Get user reporting settings.

ParameterInTypeRequiredDescription
loginpathstringyesUsername of the requesting user
statsTypequerystringnoStatistic type to get reporting settings for (e.g. IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, TARGETING_COOKIE) Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.

Note: the {hash} and {timestamp} segments carry path-based hash authentication — see REST API overview.

Responses: 200 — Reporting layout settings with all and selected columns · 404 — Not found — resource does not exist. Errors follow the shared conventions.

POST /rest-api/analytics/reports-layout-settings/{login}/{hash}/{timestamp}.do

Request examples

Get user reporting settings.

ParameterInTypeRequiredDescription
loginpathstringyesUsername of the requesting user
statsTypeformstringnoStatistic type to get reporting settings for (e.g. IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, TARGETING_COOKIE) Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.

Note: the {hash} and {timestamp} segments carry path-based hash authentication — see REST API overview.

Responses: 200 — Reporting layout settings with all and selected columns · 404 — Not found — resource does not exist. Errors follow the shared conventions.

GET /rest-api/rtb/dsp-analytics/search.do

Request examples

DSP endpoint traffic and spend.

ParameterInTypeRequiredDescription
fromquerystringyesFirst day of the range, inclusive
toquerystringyesLast day of the range, inclusive
groupByquerystringnoComma-separated dimensions to break the rows down by: date, dspPartnerName, placementId, countryCode. Empty means one total row.
sortquerystringnoColumn to sort on — any dimension listed in groupBy, or one of requests, bids, wins, impressions, spend
dirquerystringnoSort direction
startqueryintegernoRow offset for paging
limitqueryintegernoMaximum rows to return, up to 10000

Responses: 200 — Analytics rows retrieved successfully. Errors follow the shared conventions.

GET /rest-api/saved-reports.do

Request examples

List your saved reports.

No parameters beyond authentication.

Responses: 200 — ‘reports’ lists {id, title, scheduled, schedule:[{dayOfWeek or dayOfMonth, hour, format}], recipients:[e-mail]}. Errors follow the shared conventions.

POST /rest-api/saved-reports.do

Request examples

Save a report.

ParameterInTypeRequiredDescription
titleformstringyesReport title, up to 256 characters
actionCustomParameterFragmentformstringnoCustom parameter name fragment for filtering by custom parameter
actionCustomValueFragmentformstringnoCustom parameter value fragment for filtering by custom parameter
actionIdsformarray<integer>noConversion action IDs to report on; repeat the parameter or comma-separate. Restricts the conversion columns, and the per-action columns of splitColumnsBy=CONVERSION_ACTION, to these actions. Omitted: every action the caller may see.
breakdownByActionsformbooleannoWhen true, adds one conversions column per conversion action. Ignored when splitColumnsBy is set, which supersedes it
breakdownByCustomParameterformbooleannoWhen true, enables breakdown by custom parameter values
customFromformstringnoFirst day of the period (yyyy-MM-dd) when range=CUSTOM; ignored for every other range. Defaults to today
customToformstringnoLast day of the period, inclusive (yyyy-MM-dd), when range=CUSTOM; ignored for every other range. Defaults to today, so range=CUSTOM with only customFrom reports up to today. Must not be before customFrom
eqLongformobjectnoNumeric ID-based filters using bracket notation: eqLong[FIELD]=value. Repeat the parameter to filter by multiple values: eqLong[SITE]=100&eqLong[SITE]=200. Available fields: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, ZONE, SITE. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
eqStrformobjectnoString-based filters using bracket notation: eqStr[FIELD]=value. Repeat the parameter to filter by multiple values: eqStr[COUNTRY]=US&eqStr[COUNTRY]=GB. Available fields: CHANNEL, COUNTRY, PLACEMENT_TYPE, BANNER_LABEL, PLACEMENT_LABEL, ACTION, BROWSER, OPERATING_SYSTEM, UNIVERSAL_AD_ID (needs the Banner ISCI / Ad-ID Code permission), and FILL_SOURCE in the Header Bidding report. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
groupByformarray<string>noDimensions to split rows by; repeat the parameter or comma-separate for several. General report (no statisticType): SITE, OPEN_RTB_PUBLISHER_ID, ZONE, PLACEMENT, PLACEMENT_SIZE, PLACEMENT_LABEL, ADVERTISER, CAMPAIGN, BANNER, BANNER_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, CHANNEL, COUNTRY, COUNTRY_GROUP, ACTION, ATTRIBUTION_TYPE, ADVERTISER_OWNER, SITE_OWNER. Advanced report (statisticType=HADOOP) takes the same entity/country/channel/action dimensions except TEMPLATE_ID, ATTRIBUTION_TYPE and the owners, plus BROWSER, BROWSER_VERSION, OPERATING_SYSTEM, OS_VERSION, REFERER, APP_PACKAGE, SCREEN_SIZE, LOCATION, CUSTOM_PARAMETER, TOP_DOMAIN, DEVICE_RAM, PRICE_BAND, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK and, depending on the analytics backend version, PLACEMENT_SIZE, CARRIER, CONNECTION_TYPE, LANGUAGE, DEVICE_VENDOR, DEVICE_MODEL, RISK_LEVEL, RISK_CATEGORY and similar device fields. Header Bidding report (statisticType=HEADER_BIDDING): FILL_SOURCE, COUNTRY, SITE, ZONE, PLACEMENT. Every dimension is also permission-gated; a value the user may not group by for the chosen report type fails the whole request with a ‘forbidden’ error. Group by date with groupRange, not here Values: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY … (+43 more, 68 total).
groupRangeformstringnoTime frame for grouping analytical data. Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24. Default: NONE Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24.
hadoopAppPackageformstringnoAdvanced report (statisticType=HADOOP) only: count only in-app requests whose app package / bundle id contains this text.
hadoopCustomParmNameformstringnoAdvanced report (statisticType=HADOOP) only: count only requests carrying this custom parameter (the name the ad tag passes). Empty: any.
hadoopCustomParmValueformstringnoAdvanced report (statisticType=HADOOP) only: with hadoopCustomParmName, count only requests where that custom parameter has this value.
hadoopRefDomainformstringnoAdvanced report (statisticType=HADOOP) only: count only requests whose referrer URL contains this text.
hourFromformintegernoStart hour filter (0-23). Only applicable when groupRange=HOUR
hourToformintegernoEnd hour filter (0-23). Only applicable when groupRange=HOUR
jsonKeysformstringnoAnalytics report (/rest-api/analytics/{format}) in JSON, and a saved report mailed as JSON: how each row names its fields. name (default) — the column’s display name in the user’s interface language, e.g. “Impressions” or “Impressionen”; a name several columns share (the Base, Publisher and Advertiser Impressions, Clicks, CTR…) keeps its last occurrence and each earlier one is keyed by its column id, e.g. publisher_impressions. id — every field is keyed by its column id (impressions, publisher_impressions, sumGross): the same in every language and never repeated, so scripts should use it. Other formats and operations ignore it Values: name, id.
limitformintegernoMaximum number of rows returned (for pagination). On the /rest-api/analytics/{format} report endpoints omitting it returns up to the network’s records-per-request limit and a larger value is rejected; elsewhere the default is 50
offsetformintegernoNumber of result entries to skip (for pagination). Default: 0
rangeformstringnoTime period for the report. Values: TODAY (default), YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM. CUSTOM reads the period from customFrom/customTo Values: TODAY, YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM.
reportsLayoutSettingsformarray<string>noMetric column ids to output; only applied when useReportsLayoutSettings=true. These are internal column keys, not display names — ‘gross’ or ‘revenue’ match nothing, and an id that names no column of the report type is skipped (the report endpoints name it in the X-Ignored-Report-Columns response header). General report: impressions, clicks, ctr, requests and fill_rate (absent when grouping or filtering by advertiser/campaign/banner), conversions (also keeps the per-action columns), i2c, ccr, sumGross (Gross), sumNet (Net), sumMinimalNet, profit, apProfit, ecpmGross, ecpmNet, ecpmProfit, unique_visitors, confirmation_status, and the publisher_/advertiser_ variants such as publisher_impressions, publisher_sumNet (Revenue), advertiser_sumGross (Charges), advertiser_ecpmGross. Advanced report (HADOOP): requests, impressionsEligible, clicksEligible, ctrEffective, fillRate, sumGross, sumNet, profit, ecpmGross, ecpmNet, ecpmProfit and more. The complete list for the caller and report type is GET /rest-api/analytics/columns.do?statisticType=…
splitByAttributionformbooleannoAdds a nested click-through / view-through pair under each conversion-action column. Only meaningful with splitColumnsBy=CONVERSION_ACTION; ignored otherwise.
splitColumnsByformstringnoThe single dimension spread across report columns. Leave unset to keep the legacy shape, where breakdownByActions/breakdownByCustomParameter decide and the attribution columns are always present. Values: NONE, CONVERSION_ACTION, CUSTOM_PARAMETER, ATTRIBUTION_TYPE.
statisticTypeformstringnoReport type. Omit it for the General report (the default): aggregated totals — impressions, clicks, CTR, conversions, gross, net, profit, eCPM, requests, fill rate — grouped by site/zone/placement, advertiser/campaign/banner, country, channel or action. HADOOP — the Advanced report, computed from the raw ad-server logs: adds ad requests, opportunities and device/browser/OS/referer/app/location dimensions; only when Hadoop analytics is configured on the network (legacy names HADOOP_ADREQUESTS, HADOOP_SECURITY and BROWSER_OS are read as HADOOP). IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, ACTIONS_LOG — one row per raw event instead of totals. TARGETING_COOKIE — cookie-targeting report. HEADER_BIDDING — the Header Bidding report: fills, unfilled requests, fill rate, gross and eCPM per fill source, needs the Header Bidding report permission Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.
useReportsLayoutSettingsformbooleannoWhen true, only the metric columns listed in reportsLayoutSettings are output (grouping and date columns always stay); the column layout saved in the UI is not applied. Default: false — every metric column the user has permission to see
usersTimeZoneIdformstringnoTime zone the Advanced report (statisticType=HADOOP) buckets its days and hours in, as a fixed UTC offset name: UTC_0, UTC_PLUS_1 … UTC_PLUS_14, UTC_MINUS_1 … UTC_MINUS_12, and the half-hour ones such as UTC_PLUS_5_30. A value that is not one of them counts as UTC. Other report types use the network’s reporting time zone and ignore it. Default: UTC

Responses: 200 — The saved report, in the shape of the GET. Errors follow the shared conventions.

GET /rest-api/saved-reports/{id}.do

Request examples

Read a saved report.

ParameterInTypeRequiredDescription
idpathintegeryesSaved report id

Responses: 200 — {id, title, scheduled, schedule, recipients, params} · 404 — No saved report of the caller has this id. Errors follow the shared conventions.

POST /rest-api/saved-reports/{id}.do

Request examples

Change a saved report.

ParameterInTypeRequiredDescription
idpathintegeryesSaved report id
titleformstringnoNew report title, up to 256 characters; omit to keep the current one
actionCustomParameterFragmentformstringnoCustom parameter name fragment for filtering by custom parameter
actionCustomValueFragmentformstringnoCustom parameter value fragment for filtering by custom parameter
actionIdsformarray<integer>noConversion action IDs to report on; repeat the parameter or comma-separate. Restricts the conversion columns, and the per-action columns of splitColumnsBy=CONVERSION_ACTION, to these actions. Omitted: every action the caller may see.
breakdownByActionsformbooleannoWhen true, adds one conversions column per conversion action. Ignored when splitColumnsBy is set, which supersedes it
breakdownByCustomParameterformbooleannoWhen true, enables breakdown by custom parameter values
customFromformstringnoFirst day of the period (yyyy-MM-dd) when range=CUSTOM; ignored for every other range. Defaults to today
customToformstringnoLast day of the period, inclusive (yyyy-MM-dd), when range=CUSTOM; ignored for every other range. Defaults to today, so range=CUSTOM with only customFrom reports up to today. Must not be before customFrom
eqLongformobjectnoNumeric ID-based filters using bracket notation: eqLong[FIELD]=value. Repeat the parameter to filter by multiple values: eqLong[SITE]=100&eqLong[SITE]=200. Available fields: BANNER, CAMPAIGN, ADVERTISER, PLACEMENT, ZONE, SITE. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
eqStrformobjectnoString-based filters using bracket notation: eqStr[FIELD]=value. Repeat the parameter to filter by multiple values: eqStr[COUNTRY]=US&eqStr[COUNTRY]=GB. Available fields: CHANNEL, COUNTRY, PLACEMENT_TYPE, BANNER_LABEL, PLACEMENT_LABEL, ACTION, BROWSER, OPERATING_SYSTEM, UNIVERSAL_AD_ID (needs the Banner ISCI / Ad-ID Code permission), and FILL_SOURCE in the Header Bidding report. Valid keys: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY, TRAFFIC_SOURCE, FILL_SOURCE, LOCATION, CUSTOM_PARAMETER, CUSTOM_PARAMETER_NAME, CUSTOM_PARAMETER_VALUE, PLACEMENT_SIZE, SCREEN_SIZE, DEVICE_FORMAT, PROXY, DEVICE_RELEASE_YEAR, DEVICE_RAM, PRICE_BAND, IS_WEB_APP, IS_INCOGNITO_MODE, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK, DEVICE_VENDOR, DEVICE_MODEL, DEVICE_MODEL_CODE, RISK_SCORE, RISK_LEVEL, RISK_CATEGORY, PLACEMENT_TYPE, OPERATING_SYSTEM, OS_VERSION, BROWSER, BROWSER_VERSION, MOBILE_NETWORK, TIME_ZONE, REFERER, APP_PACKAGE, TOP_DOMAIN, PLATFORM, STATUS, BANNER_LABEL, PLACEMENT_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, ADVERTISER_OWNER, SITE_OWNER, USER_ADVERTISER_SHARE
groupByformarray<string>noDimensions to split rows by; repeat the parameter or comma-separate for several. General report (no statisticType): SITE, OPEN_RTB_PUBLISHER_ID, ZONE, PLACEMENT, PLACEMENT_SIZE, PLACEMENT_LABEL, ADVERTISER, CAMPAIGN, BANNER, BANNER_LABEL, TEMPLATE_ID, UNIVERSAL_AD_ID, CHANNEL, COUNTRY, COUNTRY_GROUP, ACTION, ATTRIBUTION_TYPE, ADVERTISER_OWNER, SITE_OWNER. Advanced report (statisticType=HADOOP) takes the same entity/country/channel/action dimensions except TEMPLATE_ID, ATTRIBUTION_TYPE and the owners, plus BROWSER, BROWSER_VERSION, OPERATING_SYSTEM, OS_VERSION, REFERER, APP_PACKAGE, SCREEN_SIZE, LOCATION, CUSTOM_PARAMETER, TOP_DOMAIN, DEVICE_RAM, PRICE_BAND, BROWSER_RANK, HARDWARE_RANK, PLATFORM_RANK and, depending on the analytics backend version, PLACEMENT_SIZE, CARRIER, CONNECTION_TYPE, LANGUAGE, DEVICE_VENDOR, DEVICE_MODEL, RISK_LEVEL, RISK_CATEGORY and similar device fields. Header Bidding report (statisticType=HEADER_BIDDING): FILL_SOURCE, COUNTRY, SITE, ZONE, PLACEMENT. Every dimension is also permission-gated; a value the user may not group by for the chosen report type fails the whole request with a ‘forbidden’ error. Group by date with groupRange, not here Values: PLACEMENT_ID, ZONE_ID, SITE_ID, BANNER_ID, CAMPAIGN_ID, ADVERTISER_ID, PLACEMENT, ZONE, SITE, OPEN_RTB_PUBLISHER_ID, BANNER, CAMPAIGN, ADVERTISER, CHANNEL, ACTION, ACTION_ID, ATTRIBUTION_TYPE, COUNTRY, COUNTRY_GROUP, CARRIER, CONNECTION_TYPE, LANGUAGE, ACCEPT_LANGUAGE, TIME_ZONE_NAME, BROWSER_COUNTRY … (+43 more, 68 total).
groupRangeformstringnoTime frame for grouping analytical data. Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24. Default: NONE Values: NONE, HOUR, DAY, WEEK, MONTH, YEAR, HOUR_24.
hadoopAppPackageformstringnoAdvanced report (statisticType=HADOOP) only: count only in-app requests whose app package / bundle id contains this text.
hadoopCustomParmNameformstringnoAdvanced report (statisticType=HADOOP) only: count only requests carrying this custom parameter (the name the ad tag passes). Empty: any.
hadoopCustomParmValueformstringnoAdvanced report (statisticType=HADOOP) only: with hadoopCustomParmName, count only requests where that custom parameter has this value.
hadoopRefDomainformstringnoAdvanced report (statisticType=HADOOP) only: count only requests whose referrer URL contains this text.
hourFromformintegernoStart hour filter (0-23). Only applicable when groupRange=HOUR
hourToformintegernoEnd hour filter (0-23). Only applicable when groupRange=HOUR
jsonKeysformstringnoAnalytics report (/rest-api/analytics/{format}) in JSON, and a saved report mailed as JSON: how each row names its fields. name (default) — the column’s display name in the user’s interface language, e.g. “Impressions” or “Impressionen”; a name several columns share (the Base, Publisher and Advertiser Impressions, Clicks, CTR…) keeps its last occurrence and each earlier one is keyed by its column id, e.g. publisher_impressions. id — every field is keyed by its column id (impressions, publisher_impressions, sumGross): the same in every language and never repeated, so scripts should use it. Other formats and operations ignore it Values: name, id.
limitformintegernoMaximum number of rows returned (for pagination). On the /rest-api/analytics/{format} report endpoints omitting it returns up to the network’s records-per-request limit and a larger value is rejected; elsewhere the default is 50
offsetformintegernoNumber of result entries to skip (for pagination). Default: 0
rangeformstringnoTime period for the report. Values: TODAY (default), YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM. CUSTOM reads the period from customFrom/customTo Values: TODAY, YESTERDAY, CURRENT_WEEK, LAST_WEEK, LAST_2_WEEKS, CURRENT_MONTH, LAST_7_DAYS, LAST_30_DAYS, LAST_MONTH, LAST_3_MONTH, LAST_6_MONTH, CURRENT_YEAR, LAST_YEAR, CUSTOM.
reportsLayoutSettingsformarray<string>noMetric column ids to output; only applied when useReportsLayoutSettings=true. These are internal column keys, not display names — ‘gross’ or ‘revenue’ match nothing, and an id that names no column of the report type is skipped (the report endpoints name it in the X-Ignored-Report-Columns response header). General report: impressions, clicks, ctr, requests and fill_rate (absent when grouping or filtering by advertiser/campaign/banner), conversions (also keeps the per-action columns), i2c, ccr, sumGross (Gross), sumNet (Net), sumMinimalNet, profit, apProfit, ecpmGross, ecpmNet, ecpmProfit, unique_visitors, confirmation_status, and the publisher_/advertiser_ variants such as publisher_impressions, publisher_sumNet (Revenue), advertiser_sumGross (Charges), advertiser_ecpmGross. Advanced report (HADOOP): requests, impressionsEligible, clicksEligible, ctrEffective, fillRate, sumGross, sumNet, profit, ecpmGross, ecpmNet, ecpmProfit and more. The complete list for the caller and report type is GET /rest-api/analytics/columns.do?statisticType=…
splitByAttributionformbooleannoAdds a nested click-through / view-through pair under each conversion-action column. Only meaningful with splitColumnsBy=CONVERSION_ACTION; ignored otherwise.
splitColumnsByformstringnoThe single dimension spread across report columns. Leave unset to keep the legacy shape, where breakdownByActions/breakdownByCustomParameter decide and the attribution columns are always present. Values: NONE, CONVERSION_ACTION, CUSTOM_PARAMETER, ATTRIBUTION_TYPE.
statisticTypeformstringnoReport type. Omit it for the General report (the default): aggregated totals — impressions, clicks, CTR, conversions, gross, net, profit, eCPM, requests, fill rate — grouped by site/zone/placement, advertiser/campaign/banner, country, channel or action. HADOOP — the Advanced report, computed from the raw ad-server logs: adds ad requests, opportunities and device/browser/OS/referer/app/location dimensions; only when Hadoop analytics is configured on the network (legacy names HADOOP_ADREQUESTS, HADOOP_SECURITY and BROWSER_OS are read as HADOOP). IMPRESSIONS_LOG, CLICKS_LOG, CONVERSIONS_LOG, ACTIONS_LOG — one row per raw event instead of totals. TARGETING_COOKIE — cookie-targeting report. HEADER_BIDDING — the Header Bidding report: fills, unfilled requests, fill rate, gross and eCPM per fill source, needs the Header Bidding report permission Values: TARGETING_COOKIE, CLICKS_LOG, HADOOP, CONVERSIONS_LOG, IMPRESSIONS_LOG, ACTIONS_LOG, HEADER_BIDDING.
useReportsLayoutSettingsformbooleannoWhen true, only the metric columns listed in reportsLayoutSettings are output (grouping and date columns always stay); the column layout saved in the UI is not applied. Default: false — every metric column the user has permission to see
usersTimeZoneIdformstringnoTime zone the Advanced report (statisticType=HADOOP) buckets its days and hours in, as a fixed UTC offset name: UTC_0, UTC_PLUS_1 … UTC_PLUS_14, UTC_MINUS_1 … UTC_MINUS_12, and the half-hour ones such as UTC_PLUS_5_30. A value that is not one of them counts as UTC. Other report types use the network’s reporting time zone and ignore it. Default: UTC

Responses: 200 — The saved report, in the shape of the GET · 404 — No saved report of the caller has this id. Errors follow the shared conventions.

DELETE /rest-api/saved-reports/{id}.do

Request examples

Delete a saved report.

ParameterInTypeRequiredDescription
idpathintegeryesSaved report id

Responses: 200 — Deleted · 404 — No saved report of the caller has this id. Errors follow the shared conventions.

POST /rest-api/saved-reports/{id}/recipients.do

Request examples

Add a recipient to a saved report’s e-mails.

ParameterInTypeRequiredDescription
idpathintegeryesSaved report id
emailformstringnoE-mail address

Responses: 200 — The saved report with its recipients, in the shape of the GET · 404 — No saved report of the caller has this id. Errors follow the shared conventions.

DELETE /rest-api/saved-reports/{id}/recipients.do

Request examples

Remove recipients from a saved report’s e-mails.

ParameterInTypeRequiredDescription
idpathintegeryesSaved report id
emailformstringnoE-mail address

Responses: 200 — The saved report with its recipients, in the shape of the GET · 404 — No saved report of the caller has this id, or the email is not one of its recipients. Errors follow the shared conventions.

POST /rest-api/saved-reports/{id}/schedule.do

Request examples

Schedule a saved report’s e-mail.

ParameterInTypeRequiredDescription
idpathintegeryesSaved report id
formatformstringyesFile format mailed Values: CSV, XLSX, PDF, HTML, JSON.
hourformintegeryesHour of the day in UTC, 0-23
daysOfTheMonthformarray<integer>noDays of the month, 1-31
daysOfTheWeekformarray<string>noDays of the week, e.g. MONDAY,FRIDAY Values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

Responses: 200 — The saved report with its schedule, in the shape of the GET · 404 — No saved report of the caller has this id. Errors follow the shared conventions.

DELETE /rest-api/saved-reports/{id}/schedule.do

Request examples

Remove a saved report’s e-mail slots.

ParameterInTypeRequiredDescription
idpathintegeryesSaved report id
daysOfTheMonthformarray<integer>noDays of the month, 1-31
daysOfTheWeekformarray<string>noDays of the week, e.g. MONDAY,FRIDAY Values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
formatformstringnoFile format mailed; required when adding slots Values: CSV, XLSX, PDF, HTML, JSON.
hourformintegernoHour of the day in UTC, 0-23; required when adding slots, and when removing given days

Responses: 200 — The saved report with its schedule, in the shape of the GET · 404 — No saved report of the caller has this id, or none of the slots sent is scheduled. Errors follow the shared conventions.

Related pages

Please disable Adblock
Are you using adblock? Disable it and reload the page to proceed to the destination page.

A registration has already been submitted from this page. Please try again in 10 minutes.