Appearance
Reporting Dashboard -- Relevance to Humology Tasks
Linear Project
- Name: Client dashboard / reporting site
- ID: cc1d9b86-8646-4583-a67d-7fa84e24f66a
- URL: https://linear.app/cavai/project/client-dashboard-reporting-site-eea9d3710158
- Lead: Haakon Mydland
- Status: In Progress (started 27 Apr 2026)
- Repo: https://github.com/Cavai/reporting (404 for Nicolay -- need access from Haakon)
What It Is
A standalone Vue + Vite web app hosted on Cloudflare Workers/Pages at reports.cavai.com. Two access paths:
- Client Dashboard -- Cavai account login, see all campaigns in workspace, drill into reports
- Shareable Report Links -- password-protected, no account needed, specific campaigns/creatives
Architecture: SPA frontend (Cloudflare Pages) -> Cloudflare Worker (proxy/auth) -> Cavai Analytics API + D1 database (report link configs).
How It Connects to Humology Tasks
Directly Relevant
| Humology Task | Dashboard Connection |
|---|---|
| #20 -- Breakdown by country/device/env | Dashboard is the natural UI for exposing these breakdowns. Lars committed to Q2 (30 Jun). |
| #21 -- Sharing reports with clients | Report links are exactly this feature -- passworded, scoped, no account needed. |
| #22a -- Impression discrepancy | Dashboard should use Bunny Analytics (#24), not primary analytics. Kevin recommends this. |
| #28 -- Report scheduling | Out of scope for v1, but the architecture supports adding it later. |
| #19 -- Device ID / UUID | Custom metrics from Bunny Analytics can be surfaced in dashboard views. |
Bunny Analytics Integration
The dashboard spec says it fetches from "Cavai Analytics API" using endpoints like:
GET /v2/aggregation-api/counts-- lifetime totalsGET /v2/aggregation-api/buckets-- time-series dataGET /v2/aggregation-api/flow-- per-creative flow data
Key question: Does this include Bunny Analytics data, or only primary analytics?
Humology's custom analytics layer (#24, built by Kevin, prefix cavai_bunny_analytics) is separate from the standard Cavai analytics. For the dashboard to be useful for Humology, it needs to either:
- Use Bunny Analytics endpoints directly, or
- Expose Bunny Analytics as a data source option
This is worth raising with Haakon early -- the dashboard spec doesn't mention Bunny Analytics at all.
What's Missing
- Bunny Analytics as data source -- not mentioned in spec
- Custom event reporting (#11) -- not in v1 views
- City/geo breakdown -- not in v1 (country could be added to filters)
- Exchange/publisher breakdown -- not in v1 (domain endpoint exists but listed as "future")
Assessment
The reporting dashboard is highly relevant to several Humology tasks, but the current spec is designed around standard Cavai analytics, not the bespoke Bunny Analytics layer. If Humology is the primary early user, the dashboard should be configured to pull from Bunny Analytics.
Repo Status
No reporting repo found locally under /Users/nicolay/CavaiProduct/. The GitHub URL (github.com/Cavai/reporting) returns 404 for Nicolay -- likely a private repo with restricted access. Need to ask Haakon for access.
Bunny Analytics Backend (for integration reference)
- Endpoints:
GET /analytics/bunny/hourly-summary/:creative_idandGET /analytics/bunny/metrics/:creative_id - Implementation: DuckDB Parquet queries in
Application-Backend/start/routes/analytics.ts - Columns:
impressions,link_clicks,creative_actions,clicks,watched_25/50/75/100,seconds_total_active,custom_metrics(MAP column) - The dashboard Worker could proxy to these endpoints alongside the standard aggregation API
Recommendations
- Ask Haakon for access to the
Cavai/reportingrepo - Raise Bunny Analytics integration early -- before v1 is locked
- The dashboard solves #21 (report sharing) and #20 (breakdown dimensions) if data sources are right
- Country and device breakdowns should be prioritized in the filter/drill-down system
- Consider making Humology a beta tester for the dashboard -- they're the most analytics-demanding client