PBJ Analytics Changelog (v1.3.0): From Pageviews to Full Behavioral Analytics
PBJ Analytics is our self-contained, privacy-friendly website analytics plugin. It records pageviews, referrers, unique visitors, custom events, and device/browser/country breakdowns entirely inside your own WordPress database — no Google Analytics, no third-party services, no cookies. Here’s everything that has shipped so far.
Version 1.3.0
- White-label mode for anonymous or client sites (off by default). Enable with the
pbj_analytics_whitelabelfilter: the tracking beacon is inlined under a neutralsite-metricshandle andSiteMetricsglobal, public REST endpoints get a neutralmetrics/v1alias, and the event opt-in attribute becomesdata-track-event— so no plugin-named URL, script ID, or variable appears anywhere in the page source. Tracking behavior is otherwise identical, and both branded and neutral endpoints keep collecting.
Version 1.2.1
- Fixed “Avg. time on site” always reading 00:00. Engagement was only computed from the raw hits table when it spanned the entire selected date range — otherwise a fallback hard-coded the average to zero, which fired on virtually every install. Engagement, bounce rate, and pages-per-session are now always computed from whatever portion of the range the raw data covers.
Version 1.2.0 — the big analytics release
A major expansion that took PBJ Analytics from pageview counting to full behavioral analytics:
- Sessions & journeys: 30-minute sliding-window sessions, top navigation paths (A → B), entry pages, and exit pages.
- Engagement: time on page via an end-of-page beacon, scroll-depth milestones (25/50/75/100%), and new-vs-returning visitors — still cookieless.
- Acquisition: full referrer URLs, UTM parameter capture, server-side channel classification (Direct / Organic / Paid / Social / Email / Referral), and a search-engine breakdown.
- Conversion: configurable funnels with cumulative session counts and conversion percentages, plus goals counted from event labels.
- New dimensions: internal site search queries, outbound clicks, 404 tracking, region and city, language, screen-size buckets, and per-author/per-category breakdowns.
- Dashboard: per-page drill-down (referrers, channels, countries, devices, time, scroll for any URL), a live last-5-minutes panel, period-vs-period deltas on every KPI, and CSV export on the major tables.
- Reporting: optional weekly HTML email digest and an optional tokenized public read-only dashboard.
- Bots: per-bot URL lists — see exactly what GPTBot, ClaudeBot, and Googlebot are fetching, including their 404s.
- Schema upgraded to database version 3 with automatic migration, plus a new engagement REST endpoint.
Version 1.1.0
- Bot & AI-crawler analytics. Bots tracked separately from human traffic, recorded server-side since most crawlers don’t run JavaScript, split into AI crawlers / search engines / other bots with a new dashboard section. A “Track bots” setting (on by default) controls it.
- Fixed dashboard charts rendering far too tall; added the
bot_categorycolumn (database version 2, migrated automatically).
Version 1.0.0
- Initial release: pageviews, referrers, cookieless unique visitors (daily-rotated salted hash — no personal identifiers stored), custom events, device/browser/country breakdowns, a charted admin dashboard, configurable data retention, and a self-hosted updater.
PBJ Analytics is our self-contained, privacy-friendly website analytics plugin. It records pageviews, referrers, unique visitors, custom events, and device/browser/country breakdowns entirely inside your own WordPress database — no Google Analytics, no third-party services, no cookies. Here’s everything that has shipped so far.
Version 1.3.0
- White-label mode for anonymous or client sites (off by default). Enable with the
pbj_analytics_whitelabelfilter: the tracking beacon is inlined under a neutralsite-metricshandle andSiteMetricsglobal, public REST endpoints get a neutralmetrics/v1alias, and the event opt-in attribute becomesdata-track-event— so no plugin-named URL, script ID, or variable appears anywhere in the page source. Tracking behavior is otherwise identical, and both branded and neutral endpoints keep collecting.
Version 1.2.1
- Fixed “Avg. time on site” always reading 00:00. Engagement was only computed from the raw hits table when it spanned the entire selected date range — otherwise a fallback hard-coded the average to zero, which fired on virtually every install. Engagement, bounce rate, and pages-per-session are now always computed from whatever portion of the range the raw data covers.
Version 1.2.0 — the big analytics release
A major expansion that took PBJ Analytics from pageview counting to full behavioral analytics:
- Sessions & journeys: 30-minute sliding-window sessions, top navigation paths (A → B), entry pages, and exit pages.
- Engagement: time on page via an end-of-page beacon, scroll-depth milestones (25/50/75/100%), and new-vs-returning visitors — still cookieless.
- Acquisition: full referrer URLs, UTM parameter capture, server-side channel classification (Direct / Organic / Paid / Social / Email / Referral), and a search-engine breakdown.
- Conversion: configurable funnels with cumulative session counts and conversion percentages, plus goals counted from event labels.
- New dimensions: internal site search queries, outbound clicks, 404 tracking, region and city, language, screen-size buckets, and per-author/per-category breakdowns.
- Dashboard: per-page drill-down (referrers, channels, countries, devices, time, scroll for any URL), a live last-5-minutes panel, period-vs-period deltas on every KPI, and CSV export on the major tables.
- Reporting: optional weekly HTML email digest and an optional tokenized public read-only dashboard.
- Bots: per-bot URL lists — see exactly what GPTBot, ClaudeBot, and Googlebot are fetching, including their 404s.
- Schema upgraded to database version 3 with automatic migration, plus a new engagement REST endpoint.
Version 1.1.0
- Bot & AI-crawler analytics. Bots tracked separately from human traffic, recorded server-side since most crawlers don’t run JavaScript, split into AI crawlers / search engines / other bots with a new dashboard section. A “Track bots” setting (on by default) controls it.
- Fixed dashboard charts rendering far too tall; added the
bot_categorycolumn (database version 2, migrated automatically).
Version 1.0.0
- Initial release: pageviews, referrers, cookieless unique visitors (daily-rotated salted hash — no personal identifiers stored), custom events, device/browser/country breakdowns, a charted admin dashboard, configurable data retention, and a self-hosted updater.