Run a report reference
The companion to Run a report — every control of the Analytics Filter tab in full (date range, time granularity, group by, split columns by, the Columns settings matrix, value filters including labels, templates and custom parameters, the Publishers and Advertisers trees and the Grids view), reading the report tab, report tabs and the row actions.
The companion to Run a report: that page walks the main path and lists the caveats; this page describes every control of the Filter tab and the report tab in full.
Date range
The control is a calendar popover with the preset list down its side — Today, Yesterday, Current week, Last week, Last 2 weeks, Current month, Last 7 days, Last 30 days, Last month, Last 3 months, Last 6 months, Current year, Last year, and Custom range. Clicking two dates in the two-month calendar beside the list is what makes a Custom range, and it applies as soon as the second date lands. A preset stays relative: a saved “Last 7 days” still means the last seven days next month. In a General report the presets follow the network’s calendar — the network’s time zone (UTC unless your network has been set to another zone), weeks starting on Monday; an Advanced report reads them in its own Time zone. Last 7 days and Last 30 days include today in both. A range your role may not use stays in the list, greyed out with a padlock, rather than disappearing; each range is its own Analytics Report Time Range … permission.
Time granularity
The control that splits your rows over time. None (the default) means the whole window collapses into one figure per row; Day gives one row per day, and Hour, Week, Month, Year and 24 Hours the obvious equivalents. 24 Hours is an hour-of-day profile: every day in the window folded onto a single 24-hour clock. Which steps you can pick depends on the report type:
| Report type | Time granularity offered |
|---|---|
| General | None, Hour, Day, Week, Month, Year, 24 Hours |
| Advanced | None, Hour, Day, 24 Hours |
| Header Bidding | None, Hour, Day, Week, Month, Year |
| Targeting Cookie | None, Day, Week |
| Impressions / Clicks / Conversions Log | (no control — a log is a list of events) |
The list holds only the steps your role may use. If 24 Hours is missing, ask your network admin for Analytics Report Breakdown By 24 Hour.
Hour and 24 Hours read the hourly aggregates, while every other granularity reads the daily ones. If the hourly data is behind, switching granularity can change the totals or empty the report on a network where the daily one is fine.
Group by
The dimensions that become the rows of your report. The list is grouped under the same headings the Add filter menu uses (Publishers, Advertisers, Geo & inventory, Device & browser, Traffic quality, Conversion actions, Attribution, Custom tracking, Labels and templates), and which entries appear depends on the report type. The order you tick them in is the order their columns appear in — Site then Placement reads as a drill-down, the other way round does not.
There is no Date among the Group by dimensions. Bucketing by time is Time granularity, a separate control — and the two combine: Group by Country with granularity Day gives you one row per country per day.
Removing Action from Group by silently clears the action-custom-parameter split and its filter values — they only mean anything with an Action grouping. Grouping by Attribution type blanks the delivery metrics rather than repeating them on every row (every non-conversion column comes back empty): one ad-log row is spread across the attribution types present, so summing them would multiply each figure by the number of rows it is spread over. The figures stay available in the un-split report and in the column split.
Split columns by
What runs across the columns instead of down the rows. Group by shapes the rows; this shapes the columns. It is a multi-select, and the list arrives in four groups:
| Group | Options |
|---|---|
| Your funnels | each conversion funnel you have saved, by name — see Funnels |
| Conversion actions | Conversion action (one column per action), VAST quartiles, Viewability, Video player interactions (the same per-action split, with that family’s actions picked and ordered for you) |
| Attribution | Attribution type (the post-click and post-view arms), Expired windows (conversions that arrived after their action’s window had closed, and were never credited) |
| Other dimension | Custom parameter — the Parameter / Value / Count trio; takes the columns alone, and only once Action is in your Group by |
Every one of these splits divides conversions, so picking one ticks the column it needs for you. A per-action split — a funnel, Conversion action, or one of the three families — needs the Conversions column itself, in each perspective your columns already use, and the report comes back without its per-action columns if that tick is missing. The attribution pair is satisfied by any metric that grows post-click / post-view arms, Revenue included, and only ticks Conversions when your columns have none. An option that cannot apply right now stays in the list, greyed, with the reason underneath — “Group by conversion action first” on Custom parameter, for example.
A per-action split reads its columns from the Conversion Action Filter: a family or a funnel writes its actions there, and Conversion action waits for you to pick them. Whatever the filter held before is set aside. Turning the split back to Off undoes what the split did: the filter you had before comes back, so the next report is not filtered by the split’s actions, and the Conversions column it ticked for you is unticked. Columns a per-action split has no room for — Requests, Fill rate, Conv. fraud — drop out of the matrix while it is on and come back ticked when it goes.
The Conversion action split refuses to run with zero or more than 25 actions selected — you get “Please select up to 25 conversion actions for the breakdown” instead of a report. Past 20 columns (actions × attribution arms) the form warns; past 40 it refuses and suggests moving attribution into Group by. The VAST quartile / viewability / interaction presets pick their own actions, so they never trip the first rule.
Columns settings
The collapsible section at the top of the form. It is a matrix: one row per metric, one tick-column per perspective (Base, Advertiser, Publisher). Tick a row label to take every perspective of that metric at once, tick a perspective heading to take every metric in it. The rows sit in the same families the result grid bands its columns by — Delivery, Conversions, Attribution, Expired windows, Custom parameters, Money, Uniques, and Other last — so the section you pick a metric from is the band it arrives under.
Preset chips (Traffic, Revenue, Conversions, Advertiser charges, Publisher payout) pick a whole set at once; touching any checkbox flips the chips to Custom. A chip is hidden when the perspective it needs is not yours, and Header Bidding shows no chips at all. Show IDs adds the entity-ID columns. A line under the matrix reads “Report will have N columns” and lists them as chips in the order they will appear. At least one metric must stay ticked — emptying the matrix raises “At least one option must be selected” and the change is refused. Your picks stick per report type: this browser remembers them, and every run also saves them to your account. If what your account has saved for a report type is an empty set, the matrix opens with every column ticked rather than none, and Run report never sends a report without a column — it says “Choose at least one column in Columns settings, then run the report.” instead. A pick the current shape of the report does not offer — a column a split or a group-by leaves out — stays remembered and is ticked again as soon as the column is back; only a preset chip, another report type or a saved report replaces the picks outright.
The Columns settings section and the Column preset dropdown in the Advanced row are two different controls. The section picks which metrics; the Advanced dropdown picks a named preset of Advanced columns.
The Conversions column, and I2C, CCR and Conv. fraud with it, counts only conversions of your own conversion actions. Playback telemetry — the system actions behind VAST quartiles, viewability and player interactions — is left out of it, so one video impression does not inflate the count by the number of events it fired; the money those events carry still lands in Gross and Net. To see the events themselves, pick them in the Conversion Action Filter (an action you pick is counted, whatever it is), group by Action, or split columns by VAST quartiles, Viewability or Video player interactions. Days before release 149 still count them: the events were not marked as system ones until then. On a network whose Advanced report runs on compacted logs the count comes from a pre-aggregated figure that still includes them.
Filters
Active filters show as chips carrying their values; everything else hides behind Add filter, which opens a searchable menu grouped into Geo & inventory, Device & browser, Traffic quality, Conversion actions, Custom tracking and Labels and templates. Which groups and entries appear depends on the report type — a General report offers Country, Placement Type, Placement Size, OpenRTB Publisher ID, Conversion Action Filter, Channel, Placement Label, Banner Label, Banner Template and ISCI / Ad-ID — each only if your role holds its permission. Advanced adds the whole device, browser and traffic-quality range and keeps Placement Label, Banner Label and Banner Template, but drops the ISCI / Ad-ID filter; Header Bidding offers only Country and Fill Source. Click a chip to re-open its editor (with Clear and Done), or its ✕ to remove it. An empty filter means “All” — it is not sent to the server at all. Placement Size takes several sizes at once, like Country and Placement Type: rows of any of the chosen sizes are kept.
- A filter you open from the menu keeps its chip on the bar even before you give it a value, so you can swap one value for another without the chip vanishing under you. The ✕ is what removes it.
- Once a Placement Label or Banner Label filter holds two or more labels, its editor shows Match Any Label (the default: carrying any one of them is enough) and Match All Labels (the entity must carry every label you selected) under the label picker. The two label filters share this one setting — switching it in either changes both — and with Match All Labels on, the chip adds ”· match all” after the labels. General and Advanced filter labels the same way, and both use the labels the placements and banners carry now. A placement that lost a label last week also drops out of the days before. Grouped by the same label field, the report has rows only for the labels you filtered on: a placement that also carries another label is not reported under that one too. A placement carrying two of the labels still sits in both rows, but the totals count it once, as they would without the label group-by — on the Advanced report as on the General one. The Advanced report works those totals out in the same run as its rows, so it reports ready only when both are; if that part of the run fails, the totals fall back to the sum of the rows, which counts such a placement in each of its rows.
- Banner Template works the same way on both reports: it keeps the banners built from the chosen templates now, whatever template they had on the day.
- On the Advanced report, a label or Banner Template filter (or a Banner Template grouping) that covers more placements or banners than your network allows (20,000 by default) inside your other filters is refused: narrow it by site, zone, placement, advertiser, campaign, banner, label or template and run it again. A dashboard widget built that way shows the same message, and a scheduled mailing of it is not sent.
- Conversion action custom parameter (a Parameter name / Parameter value pair) is offered only while Action is in your Group by and your role may use custom parameters.
- Custom parameter, on the Advanced report, is a row per parameter: a name, and the values
it may hold. Several values of one parameter count a request holding any of them; a row left
without a value counts every request that carried the parameter. Add parameter adds a row,
and from two rows up a switch asks whether a request must carry all of these (the default,
the way Country and Browser narrow each other) or any of these. The name field suggests the
parameters registered under Admin → Custom parameters; for a
parameter registered with a list of values, the values field offers that list, and takes a
typed value only if the list accepts values outside it. A list that accepts nothing else also
offers Other (not in list) — the value such a list records for anything outside it — once
custom parameters are recorded from Admin → Custom parameters;
the filter chip, Query details and the report rows all show it by that name. On a parameter
registered as a list (The request can carry several values), a value counts a request when it
is one of the items the request sent, split as targeting splits them:
18+counts18+alone andnews,18+— recorded as~other,18+when the list takes no other value — and Other (not in list) counts that request too. Grouping by Custom parameter still shows the whole recorded value,~other,18+, and that whole value, copied from a row or kept in a saved report, still counts the requests that recorded it.
Filters you cannot see do not apply. A colleague’s saved report that uses a filter you do not have on screen runs for you without that filter, which is enough to make your numbers differ from theirs.
Publishers and Advertisers filters
Check-trees — sites, zones and placements on one side; advertisers, campaigns and banners on the other. Only the checkboxes reach the report. Everything else in each panel is a way to find the entity you want to tick:
| Control | What it does |
|---|---|
| Search | narrows the tree to nodes whose name matches |
| Filter in | limits the tree to one level — Sites / Zones / Placements, or Advertisers / Campaigns / Banners |
| Category | limits it to one publisher or advertiser category — shown only if your role uses categories |
| Label + Matching type | limits it to entities carrying the chosen labels; Match Any Label (the default) or Match All Labels — shown only if your role uses labels |
| Sharing type + Username | limits it to what a given user owns (Is owner) or has been shared (Can edit / Can view) |
| Expand all / Collapse all | open or close every loaded level |
| Select all / Deselect all | tick every root node, or clear the whole selection |
| eye button (top right) | Hide inactive — pressed by default, so the trees start with active entities only |
Ticking nothing means every entity, not none: the report’s Query details will read Site(s): All, Advertiser(s): All, and so on. Tick a parent and only that parent’s traffic is counted, at whatever depth your Group by asks for. Both panels share one open/closed state.
A Header Bidding report shows the Publishers tree alone: it counts auction rounds on a publisher’s page and has no demand dimension to filter on.
The Grids view
If your account is set to the Grids view, each panel is instead a flat list of the entities you sent here with Add to report on the Publishers and Advertisers grids; the checkboxes and the empty-means-all rule work the same way. You can also add to the list right here: the row above it has Site / Zone / Placement fields on the Publishers side and Advertiser / Campaign / Banner on the Advertisers side, plus Reset and Add.
- Any one field is enough. Pick only an advertiser and Add adds the advertiser; pick a banner on its own and it adds that banner. When several fields are filled, the deepest one is added — an advertiser plus a campaign adds the campaign. A parent you pick narrows the suggestions in the fields below it.
- The added row arrives ticked and the report filter updates at once; an entity already in the list is just ticked, not listed twice. Reset empties the fields.
- The other panel narrows the suggestions. Once the Advertisers list has ticked entries, the Publishers fields offer only sites, zones and placements linked to those banners (a ticked advertiser or campaign stands for its banners), and the other way round; a line under the fields says so. With the other panel empty, they offer everything you may view.
- Zone and Placement (Campaign and Banner) appear only if your role may filter reports at that depth.
Jumping in from an entity
Hover any entity in the Advertisers or Publishers tree and choose Analytics on its hover card. The Filter tab opens pre-filled with that single entity over the last 7 days — review it and press Run report. The deep link applies once and then strips itself from the address bar, so refreshing will not re-apply the entity over edits you have made since.
Reading the report tab
Run report — in the page header, or the copy at the bottom of the form — opens a new tab next to Filter, named after the report rather than numbered: Totals · Today, Country · Last 7 days, Impressions Log · Yesterday. Advanced and the three event logs run as background jobs and show a wait N% progress bar first.
- The title line carries the report’s subject and period, plus a Query details link that opens the exact question that was asked: dates and hours of the day, time granularity, group-by, time zone (the network’s, when the report did not pick one), every entity filter, and every other filter the report ran with — labels, banner template, placement type, custom parameters, risk, country and the rest — with each value by name.
- KPI tiles — the summary totals, one tile per metric, as many as fit the width. Grouping columns never become tiles: grouped by Custom parameter, the parameter name and value stay in the grid. The star on a tile pins it so it always ranks first; All totals (N) expands the full metric × perspective matrix underneath. A report that comes back without totals — an Advanced report with no rows, for one — shows — on every tile.
- The toolbar on the right holds the view switch with three states — Report in details (the grid alone), Graph and report (the graph above the grid) and Graph (the graph alone). It is only offered once the report has a Group by or a time granularity — a totals-only report has nothing to plot — and the browser remembers your choice for the next report. Then come the comfortable / compact row-density pair (shown whenever the grid is), Export (see Export reports), Columns, and Refresh.
- The detail grid is banded by metric family, in the same order Columns settings listed them. Columns hides a whole band at a time — that is a display toggle local to this tab, not a re-query. Click a header to sort: first click ascending, second descending, third back to unsorted. 50 rows per page.
A report with Group by empty and Time granularity None has nothing to break rows on, so it returns exactly one row — the totals for the whole window — and offers no graph. That is the default state of the form, so a first report looks empty of detail even when the numbers are right.
A report run without a single column from Columns settings has nothing to draw, so its tab shows “This report has no columns to show” in place of the tiles and the grid — also when it is grouped or broken down by time, whose own columns only name the rows. Tick a column in Columns settings and run it again. The form itself never sends such a report, so this only meets one started some other way. Event logs are the exception: their columns are the fields of each event, so they draw whatever was picked.
To refine, click back to the Filter tab. The form keeps everything you set — including the tree selections — so you can adjust one thing and run again.
Working with report tabs
- Tabs are named by the report, and a second run that reads the same gets the technical index appended: Totals · Today #1, Totals · Today #2. Close one and the survivor drops its suffix.
- There is no limit on how many can be open at once.
- The forms live in your server session, so a browser refresh restores every tab and the one you
were on — the
?reports=[1,2]&tab=2in the address bar is that state, andtabis the report’s session index, not its position in the strip. - ✕ closes the tab server-side too, cancelling a background job that is still running.
- A sign-out, a session timeout or a server restart does not restore tabs — the strip silently drops every tab the server no longer holds, and the reports have to be run again. Save a template to keep the question; see Saved and scheduled reports. A tab whose filter or grouping your role has lost a permission for since the report ran shows the refusal, naming the permission (Your role lacks the PLACEMENT_LABELS permission.), instead of the report.
- You can only have so many reports running at once. A report holds a database connection or a Spark job for its whole run, so a network caps how many one user may have in flight (a hundred by default). Past that the next one is refused with “You already have N reports running” instead of waiting — waiting would hold the connection too. Let one finish, or close the tabs you no longer need. The cap counts each user’s reports separately, and Epom support can raise or remove it. Only the reports you run count — the report grid and its chart, an export, a report over the API; dashboard widgets, the statistics in the entity trees and scheduled reports do not.
Row actions on the detail grid
When your Group by allows it, selecting rows enables toolbar actions (in the Report in details and Graph and report views — the graph-only view has no rows to select):
| Action | Appears when |
|---|---|
| Set banners OFF | grouped by Banner; also needs update rights on the campaigns |
| Block channel | grouped by Banner and Channel |
| Block / Unblock site | grouped by Site plus Campaign or Banner |
| Block / Unblock placement | grouped by Placement plus Campaign or Banner |
| Preliminary confirm / Confirm / Finalize | grouped by Advertiser alone (or Advertiser + Advertiser Owner) — see Finances & billing |
Each action also needs its own permission — see User roles. On a Can View share the row actions stay hidden.
Per-role notes
- Publisher and advertiser — the Columns settings matrix shows one perspective (Publisher or Advertiser), so the only preset chip is Publisher payout or Advertiser charges; the trees offer no Category or Label pickers.
- Network manager — perspectives, report types, tree pickers and filters follow what your network administrator granted the role.
- Share-limited user — reports cover only the entities shared with you; on a Can View share the row actions stay hidden.