Reports
Report Types
Report types can vary depending on campaign_type parameter.
For RTB (Programmatic) we provide the following reports:
Code
For Direct (Guaranteed) we provide the following reports:
Code
Report Type Details
[Guaranteed] Booked Units
This reports filter units that were booked for a direct/guaranteed buy campaign
Expected headers:
Code
[Guaranteed] Daily Delivery
The daily_delivery report provides a refined view of campaign performance for Guaranteed campaigns on our OOH platform. In Guaranteed campaigns, impressions and spend are initially distributed linearly across the campaign's duration due to upfront planning and payment. To better align with actual exposure patterns, we generate an impression report after the campaign ends — these are built by capturing daily exposure counts per unit via device ids from mobile location data. We filter the exposures by playlog data provided by the suppliers for digital units. These playlogs indicate when and where ads played on digital screens throughout the booking period. We use this data to weight the linear impressions and spend, producing a more accurate daily distribution while preserving the total campaign-level numbers. Scenarios where the daily_delivery report might be incomplete or linear:
1. digital units playlogs are incomplete
2. unavailable exposures for the units are not collected or unavailable to be collected
This report will output a daily aggregation of Spend and Impressions grouped by Markets. The report will be available one day after the Campaign end date.
Expected headers:
Code
[Guaranteed] Campaign Exposures
The campaign_exposures report provides a flat daily view of campaign performance for Guaranteed campaigns on our OOH platform. Unlike daily_delivery, impressions and spend are distributed linearly across the campaign's duration — the report does not reweight the linear distribution using measured exposures or supplier playlog data. Instead it outputs a flat daily breakdown of spend, impressions, and estimated exposure counts as collected, preserving the total campaign-level numbers.
Exposure data is collected via device IDs from mobile location data, and filtered by playlog data provided by suppliers for digital units. Scenarios where exposure data might be incomplete or empty for a given day:
- Supplier playlog data for digital units is incomplete
- Exposure data has up to a 6-day lag to complete its collection cycle
Because of this lag, this report is not incremental — exposure data for past days can change on each request. We recommend overwriting previous data on every call rather than appending.
The has_playlogs field indicates whether supplier playlog data was available for that day's digital units. When false, exposure figures may be understated since playlog-based filtering was not applied.
This report will output a daily aggregation of Spend, Impressions, Exposures, Conversions, and related metadata. An optional grouping parameter controls the level of breakdown:
grouping value | Description | Headers |
|---|---|---|
campaign (default) | One row per campaign per day | date, campaign_id, exposure_completion_date, has_playlogs, impressions, spend, estimated_exposures, estimated_distinct_exposures, web_conversions, app_conversions, footfall_conversions |
unit | One row per unit per day | date, campaign_id, campaign_unit_id, exposure_completion_date, has_playlogs, impressions, spend, estimated_exposures, estimated_distinct_exposures, web_conversions, app_conversions, footfall_conversions |
market | One row per market per day | date, campaign_id, market_name, exposure_completion_date, has_playlogs, impressions, spend, estimated_exposures, estimated_distinct_exposures, web_conversions, app_conversions, footfall_conversions |
media_type | One row per media format per day | date, campaign_id, media_format, exposure_completion_date, has_playlogs, impressions, spend, estimated_exposures, estimated_distinct_exposures, web_conversions, app_conversions, footfall_conversions |
media_owner | One row per supplier per day | date, campaign_id, media_owner, exposure_completion_date, has_playlogs, impressions, spend, estimated_exposures, estimated_distinct_exposures, web_conversions, app_conversions, footfall_conversions |
If grouping is omitted, the campaign preset is used. Passing an unrecognized value returns a 422 with an error listing valid options.
[Programmatic] Matched Screen Locations
This reports filter screens that match all the filters for a plan
Expected headers:
Code
[Programmatic] Active Screen Locations
This report filter screens that match all the filters for a plan, and cross against screens that were recently used across other plans
Expected headers:
Code
[Programmatic] Creative Specs
This report shows creative details for the screens on a plan
Expected headers:
Code
[Programmatic] Media
This report returns high level operational details for a plan, like location, audiences and day parting
Expected headers:
Code
[Programmatic] Screen Report
This report returns details about screens that went to production on a plan
Expected headers:
Code
[Programmatic] Overall Results
This report return details about the results that were obtained from a successful launched plan, like delivered impressions, how many times the ad was played, the number of unique screens that were executed
Expected headers:
Code