WaitKitWaitKit
Concepts

Analytics

How WaitKit subscriber analytics are collected. IP geolocation for country data, user-agent parsing for device detection, source tracking, and why signup requests must come from the browser for accurate analytics.

What gets tracked

Every subscriber signup captures three analytics dimensions automatically:

DimensionSourceExample values
CountryIP geolocationUS, ET, DE, unknown
DeviceUser-agent parsingdesktop, mobile, tablet
SourceSDK source fieldlanding-page, twitter

Why client-side calling matters

The analytics dimensions depend on data that only exists in the subscriber's browser:

  • Country is derived from the subscriber's IP address, not your server's IP
  • Device is parsed from the subscriber's User-Agent header
  • Source can be read from the browser URL (?source= or ?s=)

If you call subscribers.create() from a server (Next.js Server Action, Express route handler, etc.), every subscriber will appear to come from your deployment server's location and device, making the Countries and Devices analytics meaningless.

Always call the join endpoint from the browser.

How each dimension works

Country

The API derives the country from the subscriber's IP address.

Device

The API classifies the device as desktop, mobile, or tablet from the subscriber's user-agent.

Source

The source field is set by the SDK (or API caller). If no source is provided, it defaults to "landing-page". See the Source Tracking guide for the full resolution chain.

Analytics endpoints

The dashboard provides these analytics views:

ViewWhat it shows
OverviewTotal, today, this week, this month counts with % change vs prior period
GrowthTime-series data for charting (hourly/daily/weekly/monthly granularity)
CountriesBreakdown by country with percentages
DevicesBreakdown by device type with percentages
SourcesBreakdown by signup source with percentages

Time-range filtering (7d, 30d, 90d, all) adjusts the granularity - shorter ranges use hourly or daily buckets, longer ranges use weekly or monthly.

On this page