Reports
Reports give you aggregate views over the Click Log. Use them for "how is my campaign performing" questions — not for individual click investigation.
The reports tab supports:
- Multiple grouping dimensions — group clicks by link, source, country, device, channel, etc.
- Calculated metrics — beyond raw counts, derived metrics like conversion rate, ROI, EPC, ROAS.
- Date range filtering — last 24h, 7 days, 30 days, custom.
- Sub-reports — group by link, then drill in to see grouping by country within that link.
Watch: Reading Click Tracking Reports — 0:00–6:00 (video coming soon)
Grouping
The first decision is what to group by. Pick a dimension at the top of the page.
| Group By | What You See |
|---|---|
| Link | One row per tracked link |
| Lander | One row per landing page |
| Offer | One row per offer |
| Source | One row per traffic source |
| Country | One row per country |
| Region / City | Geographic drill-downs |
| Device Type | Desktop / mobile / tablet |
| OS / Browser | Detailed device breakdowns |
| Channel | Direct, Paid Search, Paid Social, etc. |
| UTM Source / Medium / Campaign | Group by any UTM dimension |
| Click ID Platform | Google Ads, Meta, TikTok, etc. |
| Token 1 through Token 10 | Custom variable from your source mappings |
Combine groupings to drill in. Grouping by Source first, then by Country within a source, isolates "Facebook traffic from Brazil" from "Facebook traffic from US".
Metric Reference
Every metric the report can display. The first set are aggregations (raw sums); the second set are calculated.
Aggregated Metrics
| Metric | Computation |
|---|---|
total_clicks | COUNT(*) — every click recorded |
unique_clicks | COUNT(*) WHERE is_unique = true — first click per session |
total_conversions | SUM(conversions_count) — total conversions across all clicks in the group |
total_revenue | SUM(revenue) — total revenue from conversions |
total_cost | SUM(cost) — total ad cost across the clicks |
bot_clicks | COUNT(*) WHERE is_bot = true |
avg_time_on_page | Average active seconds across clicks (only includes clicks with engagement data) |
avg_scroll_depth | Average max scroll % across clicks |
Calculated Metrics
| Metric | Formula | Meaning |
|---|---|---|
| Profit | revenue − cost | Money kept after ad spend |
| ROI | (revenue − cost) / cost × 100% | Return on investment, percentage |
| ROAS | revenue / cost | Return on ad spend, multiplier |
| CTR | conversions / clicks × 100% | Conversion rate |
| EPC | revenue / clicks | Earnings per click |
| Bot Rate | bot_clicks / clicks × 100% | Fraction of traffic that's bots |
ROI = -50% means you spent $1 to make $0.50 — a $0.50 loss per dollar spent. Watch this column on every paid campaign.
Engagement Metrics (from AIDA)
| Metric | Computation |
|---|---|
| Attention Rate | % of clicks where has_attention = true |
| Interest Rate | % of clicks where has_interest = true |
| Desire Rate | % of clicks where has_desire = true |
| Avg Time on Page | Average time_on_page (seconds) |
| Avg Scroll Depth | Average scroll_depth (%) |
These only populate when the Tracking Pixel is installed on landing pages. Clicks that go through pure server-side /c/<slug> redirects without a pixel on the destination don't have AIDA data.
Date Range
The toolbar at the top has a date-range picker. Default is last 7 days.
| Quick Option | Range |
|---|---|
| Last 24h | Last 24 hours |
| Last 7d | Last 7 days |
| Last 30d | Last 30 days |
| Month to date | First of current month → now |
| Year to date | January 1st → now |
| Custom | Pick any start/end |
All grouping/metric calculations respect the selected range.
Filters
Add filters at the top to constrain which clicks the report includes. Same filter operators as the Click Log. Use to answer:
- "ROI by source for only clicks where
country_code = US?" - "Conversion rate for only clicks via the
Spring Promolink?" - "EPC for mobile-only traffic from the last 30 days?"
Filters and grouping compose: filter the rows in, then group what's left.
Sub-Reports / Drilldown
Click any row to drill into a sub-report. This sets the row's value as a filter and lets you re-group within it.
Example flow:
- Group by Source → see one row per source.
- Click the "Facebook" row → enters a sub-report filtered to
utm_source=facebook. - Re-group by Country → see Facebook traffic broken down by country.
- Click "United States" → drills further into US Facebook traffic.
- Re-group by Device Type → see US Facebook by mobile vs desktop.
Use sub-reports to find the lowest-ROI segments to pause, or the highest-EPC ones to scale.
Sorting
Click any metric column header to sort. Default is total_clicks descending.
For ROI/EPC/CTR rankings, sort by the calculated metric column. Hide noisy small-volume rows with a min-clicks filter (e.g. only show groups with total_clicks ≥ 100).
Comparing Time Periods
For trend analysis, the toolbar's Compare option overlays a previous period:
- Last 7d vs Previous 7d
- Last 30d vs Previous 30d
- Year-over-year
The report shows both columns side by side with a delta % column ("clicks up 23% vs last period").
Exporting
Click Export to download the current report (with filters, grouping, date range, comparison) as CSV.
Common Workflows
Find your best/worst sources
- Set date range to last 30 days.
- Group by Source.
- Sort by ROI descending.
- Top rows = your money makers. Bottom rows (especially negative ROI) = pause those.
Compare A/B variants for a link
- Filter
slug = your-link. - Group by Lander (or
destination_urlif using direct URLs). - Compare CTR and EPC across variants.
Find which countries convert best
- Group by Country.
- Sort by CTR descending.
- Top 5 = candidates to scale ad spend in.
- Bottom 5 (with non-trivial volume) = either bad creative for that geo or genuinely poor-fit market.
Find best ad creative
If you tag your creatives via utm_content:
- Group by UTM Content.
- Compare CTR + EPC.
- Best-performing UTM content = best creative angle. Scale it.
Detect bot/fraud traffic
- Group by Source.
- Add Bot Rate column.
- Sources with >5% bot rate or anomalously low engagement (avg_time_on_page near 0, all
has_attention = false) — investigate, possibly pause.
Next Steps
- Click Log — Drill from any row into the individual clicks behind it
- Sources — Configure Token mappings so you can group by
v1-v10 - Tracking Pixel — Install to populate engagement metrics
- Conversion Pixel — Install to populate revenue + conversion metrics