There is no list of supported browser major versions: the website script is written as ES2020, and client or runtime requirements are whatever each package declares. The full capability comparison is on SDK overview.
Website script
@webcount/tracker is version 1.0.0. The build artifact is w.js. The TypeScript target is ES2020 with the DOM library. The script uses the History API (pushState, replaceState, popstate) and sends with navigator.sendBeacon, falling back to fetch with keepalive. There is no separate legacy build for browsers that lack those APIs.
Vue, Nuxt, React, and Next.js do not have their own analytics package. They reuse this script. Hash routers must set data-hash. See Pageviews & SPAs.
Client SDKs
| Platform | Version | Minimum and install |
|---|---|---|
| WeChat, Alipay, and Douyin mini programs | 0.1.0 | npm package @webcount/miniprogram, entry points wx, my, and tt. The IDE must be able to build npm |
| Android | 0.1.0 | com.webcount:android, minSdk 21 |
| iOS | 0.1.0 | Swift package WebCount, iOS 13 |
| HarmonyOS | 0.1.0 | @webcount/harmony. The console snippet page notes API 12+ |
| React Native | 0.1.0 | @webcount/react-native, peer dependency react-native 0.72 or newer |
| Flutter | 0.1.0 | webcount_flutter, Dart 3.0 or newer, Flutter 3.10 or newer |
| uni-app | 0.1.0 | @webcount/uni-app. Mini program targets use the mini program core. App targets depend on the adapter |
Mini programs, HarmonyOS, React Native, and uni-app share the JavaScript core that keeps a local queue. That core reads a minimum SDK version from remote config and stops sending when the running build is older. Android and iOS 0.1.0 do not read remote config, so that minimum does not apply to them. Remote config: Collection controls.
Non-web clients must register an app id in the console that matches appId at init. Otherwise the upload is rejected silently.
Server SDKs
These packages are thin wrappers around POST /api/v1/track. The library version string is 1.0.0.
| Language | Call | Runtime |
|---|---|---|
| Node.js | WebCount from @webcount/node | The code uses global fetch, so Node.js 18 or newer |
| PHP | Webcount\WebCount | Constructor property promotion requires PHP 8, plus the curl extension |
| Python | webcount.WebCount | Standard library only. The source uses from _, which matches Python 3.7 or newer |
| Java | com.webcount.WebCount | java.net.http.HttpClient, so Java 11 or newer |
| Go | package webcount | Standard-library net/http |
The key needs track:write. Field names follow SDK overview. Do not post a browser-collect payload to Track unchanged.
API
The HTTP API prefix is /api/v1 (setGlobalPrefix). There is no parallel v2 prefix. The published document declares OpenAPI 3.0.3 and info version 1.0.0. Auth for query, export, and manage routes: API overview and Authentication.
Collect is /api/v1/pulse. Server ingest is /api/v1/track and /api/v1/server/events. Do not swap those two server paths. Track stores event objects. Server events follow the access-log path.
What changes on upgrade
- Before a small SDK bump, read published product entries on Changelog for field or default changes.
- Raising the minimum SDK version in remote config stops older JavaScript-core clients. Android and iOS 0.1.0 are not affected.
insert_idkeeps the first row when a duplicate falls within one day of the event time. Replay scripts must reuse the old key so the same order is not stored again.- If the plan's platform list does not include apps or mini programs, a newer SDK still will not make those events appear. See Plans & quotas.