Analytics
Views, unique views, clicks, CTR — what's counted, what's not.
What's tracked
Every table records two event types:
- view — fired by the embed JS once per page-load via
navigator.sendBeacon - click — fired when a visitor clicks a product CTA. Server logs it before 302-redirecting to Amazon, so click counts are reliable even if the visitor immediately closes the tab.
Both events store:
- the table ID
- the product ASIN (clicks only — views are not per-product yet)
- a salted SHA-256 hash of the visitor's IP, for unique counting
- a truncated user-agent
No cookies, no LocalStorage, no third-party tracking IDs.
Where to see it
Open any table → Stats tab. Four big numbers up top:
- Views — total impressions in the window
- Unique views — count of distinct IP hashes
- Clicks — total CTA clicks in the window
- CTR — clicks ÷ views, displayed as a percentage
Then a sparkline of daily views, then a per-product table sorted by clicks descending.
Period toggle: 7 days, 30 days, all time.
The tables list page also shows a 30-day views column.
Uniqueness reset
The salt used in the IP hash rotates every day at 00:05 UTC. So a visitor who came back two days ago will count as a fresh unique view today — yesterday's count and today's count don't overlap. This is the privacy-preserving alternative to cookie-based unique counting.
Retention by plan
| Plan | History kept | |---|---| | Free | 7 days | | Tables Monthly | 90 days | | Tables Annual | 90 days |
A daily cleanup cron deletes events older than the plan's retention. If you upgrade, events from before the upgrade aren't recovered — only events from that point on benefit from the longer retention.
Latency
- Views appear in stats within ~5 seconds of the page load.
- Clicks appear within ~1 second of the click.
Stats are not cached (the embed JSON is cached for 5 min at Cloudflare; the stats endpoint is per-request).
Per-product CTR notes
Per-product views = total table views, because the embed renders every product at once. So if a table has 100 views and Product A got 8 clicks while Product B got 2, the breakdown is:
| Product | Views | Clicks | CTR | |---|---|---|---| | A | 100 | 8 | 8.0% | | B | 100 | 2 | 2.0% |
This is how Lasso, AAWP, and similar tools report it. It tells you which product converts best among visitors who saw the same table. We do not (yet) fire a separate beacon per product card via intersection-observer.
What we don't track yet
- Geography / country
- Referrer
- Device class beyond user-agent string
- Per-product view events (intersection-observer style)
These are post-launch items.