Skip to content

Reporting Dashboard -- Relevance to Humology Tasks

Linear Project

What It Is

A standalone Vue + Vite web app hosted on Cloudflare Workers/Pages at reports.cavai.com. Two access paths:

  1. Client Dashboard -- Cavai account login, see all campaigns in workspace, drill into reports
  2. 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 TaskDashboard Connection
#20 -- Breakdown by country/device/envDashboard is the natural UI for exposing these breakdowns. Lars committed to Q2 (30 Jun).
#21 -- Sharing reports with clientsReport links are exactly this feature -- passworded, scoped, no account needed.
#22a -- Impression discrepancyDashboard should use Bunny Analytics (#24), not primary analytics. Kevin recommends this.
#28 -- Report schedulingOut of scope for v1, but the architecture supports adding it later.
#19 -- Device ID / UUIDCustom 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 totals
  • GET /v2/aggregation-api/buckets -- time-series data
  • GET /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:

  1. Use Bunny Analytics endpoints directly, or
  2. 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_id and GET /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

  1. Ask Haakon for access to the Cavai/reporting repo
  2. Raise Bunny Analytics integration early -- before v1 is locked
  3. The dashboard solves #21 (report sharing) and #20 (breakdown dimensions) if data sources are right
  4. Country and device breakdowns should be prioritized in the filter/drill-down system
  5. Consider making Humology a beta tester for the dashboard -- they're the most analytics-demanding client

Internal documentation