Dashboard
Revenue Report for Claude
Compiles the selected period's metrics — totals with period-over-period changes, content performance, attributed revenue by source/device/placement, channels — into a markdown report with an analysis prompt included. Copy it and paste into Claude.
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
Your 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.