Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Analytics and Privacy

Provider decision (2026-09-02): the author approved Simple Analytics on its free hobby plan. The loader and event wiring ship in theme/head.hbs and theme/analytics.js (MIT-licensed build software). No data reaches the provider until the author creates the account and registers neilydhan.github.io; hits from unregistered domains are discarded by the provider.

Provider record

SettingValue
ProviderSimple Analytics (https://www.simpleanalytics.com)
PlanFree hobby: 1 user, 5 websites, 30-day history, badge required, unlimited page views under fair use (per https://www.simpleanalytics.com/pricing, checked 2026-09-02; re-verify before any upgrade)
Account ownerPending: author signup required (email and password, no credit card; 14-day trial, then downgrade to the free plan). Record the account email here after creation.
Registered siteneilydhan.github.io (pending account creation)
HostingNetherlands/EU
Public data policieshttps://www.simpleanalytics.com/data-collection and https://docs.simpleanalytics.com/privacy
IP handlingDropped, not stored or hashed; no cookies or local storage; no user or device identifier
GeographyCountry only, inferred from browser time zone; deliberately narrower than the boundary below
Returning-visit metricsEstimates only; do not report them as reliable returning-reader counts
Retention30 days on the free plan; export a monthly aggregate snapshot before the window rolls off
BadgeEmbedded on every HTML page by theme/analytics.js; required by the free plan; the badge itself collects no data
Do Not TrackHonored by provider default; the event wiring also checks DNT and never delays navigation
Script originsscripts.simpleanalyticscdn.com (loader), queue.simpleanalyticscdn.com (beacon), simpleanalyticsbadges.com (badge image)

Approved measurement boundary

The implementation may collect only aggregate web-use events needed to improve the book:

  • page URL or path and page title;
  • referring website and campaign parameters;
  • browser, operating system, device class, language, and approximate screen size;
  • country or coarse region derived from the network request;
  • visit/session counts and returning-visit counts using a cookie-free or short-lived anonymous method;
  • explicit events for chapter views and clicks to PDF, EPUB, citation, teaching, contribution, and release links.

It must not collect names, email addresses, wallet addresses, form contents, exact location, cross-site browsing histories, advertising identifiers, keystrokes, or session recordings. It must not sell data, build advertising profiles, or use the book site for cross-site tracking. IP addresses should not be retained in visitor-level reports. Use the shortest practical retention period and publish the chosen provider, hosting region, retention, and opt-out mechanism before enabling collection.

GitHub separately records repository and release activity under GitHub's own terms. Public asset download counters and authenticated repository Insights may be used for monthly reporting.

Events

EventTriggerPurpose
chapter_viewA chapter page under chapters/ loadsCompare chapter reach and reading paths
download_pdfA PDF or release link is clickedMeasure deep reading intent
download_epubAn EPUB link is clickedMeasure format demand
citeA citation or DOI link is clickedMeasure academic intent
teachThe instructor guide is openedMeasure course-adoption interest
contributeAn issue or contribution link is clickedMeasure community participation

No custom event metadata is attached. After the account is created, verify in the dashboard that data arrives, compare events with GitHub release asset counts after seven days, and report monthly aggregates only.