Manage your app
Understand visitor analytics
Measure page views and estimated daily visitors for each environment.
Start collecting page views
Each environment has its own analytics key. Use the staging key in staging and the production key in production. The key identifies the destination for public analytics events; it is not an API token.
For apps that use hash routes such as #/dashboard, enable the hash-route option before copying the script. Query-only changes and ordinary page anchors are ignored by default.
- Open your project’s Overview and enable visitor analytics.
- Copy the script tag shown for that project into your app’s HTML template. Add it once per page, after any consent your app requires.
- If your app uses a Content Security Policy, allow the displayed collector origin in script-src and connect-src.
- Deploy the change and open a published app URL. The dashboard shows when the first event arrives.
Read the numbers
Page views count accepted browser events over the last seven days. Today’s visitor estimate counts browser tabs with a temporary identifier for the current UTC day. New tabs can count separately. These are not signed-in customers or unique people, and daily estimates should not be added together as a weekly unique count.
The script tracks initial page loads and supported browser navigation changes in single-page apps. Health checks, asset fetches, and server-to-server API requests do not run it.
Blocking scripts, disabled JavaScript, privacy settings, and automated traffic can change the results. If session storage is unavailable, page views can still count but those events are excluded from the visitor estimate. Use these numbers to follow trends. They are not billing measurements.
Each environment accepts up to 120 events per minute and 10,000 per day. The daily table flags a reached project limit. Shared intake limits can also drop events without a project-level flag. Counts can be incomplete.
What the script collects
Requests use the project’s public collection key and contain a random event ID, an optional temporary browser-tab ID, and a timestamp. Page paths, query strings, referrers, raw IP addresses, and raw user-agent strings are not stored in analytics records.
The temporary browser-tab ID lives in session storage and rotates each UTC day. The script respects Do Not Track and Global Privacy Control. Add the collection to your app’s privacy notice and consent flow where required.
The server stores hashed identifiers for duplicate and daily-visitor checks. Event hashes have a 30-minute retention window, daily browser hashes have a two-day window, and daily totals have a 30-day window. Background cleanup removes expired records in batches. Turning collection off stops new events; it does not erase retained totals immediately. Public events can be forged despite origin checks and rate limits.
Availability and credits are separate
Observed availability summarizes recorded health checks. It is not a continuous uptime monitor or an SLA measurement. Credits used shows charges attributed to this project after refunds, with pending holds shown separately.