Skip to content

Analytics

Every feed request writes one datapoint to the feedforge Analytics Engine dataset:

FieldContent
blob1feed id
blob2UA class: aggregator, browser, or other
blob3daily reader hash
double1subscriber count reported in the UA string

FeedBurner estimated subscribers from aggregator self-reporting plus unique client signatures; feedforge does the same. Many readers send a UA like FreshRSS/1.24 ... 42 subscribers — that count lands in double1. The reader hash is SHA-256(ip | user-agent | UTC day) truncated to 16 hex chars, so it counts daily unique readers without tracking anyone across days.

Analytics Engine data is queried through the Cloudflare GraphQL API:

SELECT blob1 AS feed, count() AS requests, sum(double1) AS reported_subscribers
FROM feedforge
WHERE timestamp > NOW() - INTERVAL '1' DAY
GROUP BY feed

Daily unique subscribers ≈ count of distinct blob3 per feed per day.