# Reports

## Campaign Reporting

All report endpoints will return a CSV file with the respective report as it's contents.

```
GET /reports/:campaign_token #=> Get a report at campaign level
GET /reports/:campaign_token/:plan_token #=> Get a report at plan level
```

The endpoint for campaign and plans is the same. If you only pass `campaign_token` the report will be scoped to campaign level, merging data from all plans. \
\
Optionally you can add `plan_token` to scope the report to a specific plan.

<pre><code>Expects:
<strong>- campaign_token: The campaign token can be found on the campaign endpoint
</strong>- campaign_type: rtb | direct
- report_type: The report varies based on the campaign_type

Returns: csv with the expected report type as its content
</code></pre>

```
Expects

- campaign_token: The campaign token can be found on the campaign endpoint
- plan_token: The plan token can be found on the campaign endpoint
- campaign_type: rtb | direct
- report_type: The report varies based on the campaign_type

Returns: csv with the expected report type as its content
```

## Report Types

Report types can vary depending on `campaign_type` parameter.

\
For RTB we provide the following reports:

```
matched_screen_locations
active_screen_locations
creative_specs
media
screen_report
overall_results
plan_report
```

For Direct we provide the following reports:

```
booked_units
daily_delivery
```

### Report Type Details&#x20;

#### \[DIRECT] Booked Units

This reports filter units that were booked for a direct/guaranteed buy campaign

Expected headers:

```
Geopath tab panel ID, Face ID, Location Description, Market, Size, Screen Type, Unit Type, Vendor, Start date, End date, Price for duration, 4 Week rate card price
```

#### \[DIRECT] Daily Delivery

The `daily_delivery` report provides a refined view of campaign performance for Direct campaigns on our OOH platform. In Direct 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 &#x20;

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:

```
date, plan_name, market_name, impressions, spend
```

#### \[RTB] Matched Screen Locations

This reports filter screens that match all the filters for a plan

Expected headers:

```
name, plan_name, screen_id, screen_name, device_id, direction, address, lat, lon, screen_is_active, video, audio, banner, venue_type, market, publisher, Dimensions (WxH), impressions, average_cpm, daily_spend, last_active
```

#### \[RTB] 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:

```
campaign_name, plan_name, screen_id, screen_name, device_id, direction, address, lat, lon, screen_is_active, video, audio, banner, venue_type, market, publisher, Dimensions (WxH), impressions, average_cpm, daily_spend, last_active
```

#### \[RTB] Creative Specs

This report shows creative details for the screens on a plan

Expected headers:

```
Campaign, Plan, Network, Venue Type, Width, Height, Supports Video, Supports Audio, Supports Image, Min Duration, Max Duration, Screens
```

#### \[RTB] Media

This report returns high level operational details for a plan, like location, audiences and day parting

```
Plan, Name,	Market,	POI radius,	Dates, Day Parting, Audiences, Screen type, Estimated Impressions, Available Screens, Estimated CPM ($), Media Budget, Campaign Link	
```

#### \[RTB] Screen Report

This report returns details about screens that went to production on a plan

<pre><code><strong>campaign, plan, id, device_id, screen_name, programmatic_publisher_id, lat, lon, created_at, updated_at, video, banner, ssp_id, address, venue_type, group, image_url, plays, play_time, delivered_impressions, delivered_cpm
</strong></code></pre>

#### \[RTB] 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

```
date, publisher, venue_type, geography, campaign, plan, impressions, plays, unique_screens, spend, cpm
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.adquick.com/reports.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
