Dashboard
Top Sources
Top Pages
Devices
Widget Placements
Active pages
last 30 minSources
last 30 minDevices
last 30 min🖱 Widget clicks
last 30 min — these are the money momentsMonetization Funnel
where visitors drop out between landing and earning🚫 Traffic, no widget seen
widget missing or below the fold👀 Seen, never clicked
weak placement or listings🖱 Clicked, no revenue yet
leads not converting on Esy's sideMovers vs previous period
📈 Gainers
📉 Losers
Content Performance
every page's traffic, engagement, and revenue side by side — click a column to sort. RPM = revenue per 1,000 pageviews.Esy Widget Performance
impressions & clicks from the tracker · conversions & revenue from your CSVs, joined by unique placement IDsRevenue Attribution
Recent Conversions
AI Briefs
compiles the selected sites + period into a markdown report with an analysis prompt — copy it into ClaudeYour account
Scan this with Google Authenticator, 1Password, or Authy, then enter the 6-digit code to turn on two-factor:
Or enter manually:
Users
Sites
1 — Install the tracker (once per site, in <head>)
2 — Esy widget codes (no changes needed)
The tracker intercepts ESY.Widget() and rewrites placement into a unique tracking ID per impression (e.g. school_listing--hk3f9x2k1q) before the widget loads. Esy echoes that ID back in the conversion CSV, so each uploaded conversion joins to the exact impression — page, device, browser, and traffic source. Your existing widget codes keep their simple placement labels:
Verify on one page that the widget still renders with the rewritten placement (it should — Esy treats placement as a free-form label). Kill switch if ever needed: add data-esy-placement="off" to the tracker script tag.
Import history from Plausible
Pulls day × page × source × device traffic from the Plausible Stats API into this dashboard as historical events. Then upload your old conversion CSVs in the Revenue tab — they'll attribute by page URL + date against the imported traffic. Safe to re-run (a range re-import replaces itself). Get an API key at plausible.io → Settings → API Keys.
Bot cleanup
Bots are blocked two ways automatically: data-center IPs are rejected at ingest, and an auto-sweep every 20 minutes removes burst-pattern bot visitors (groups of direct, no-engagement visitors landing in the same minute). This button runs the same sweep manually over the selected site + date range — useful for cleaning up older data.