Frameworks
Electron, Tauri and browser extensions
Stickybeak is analytics for websites. It counts pages served over the web from your own domain, so it doesn't work inside desktop apps, mobile app shells or browser extensions that load their pages from somewhere else.
What isn't supported
| Where the page runs | Why it isn't counted |
|---|---|
| Electron apps that load local files | Pages opened from file:// are skipped by the script. |
| Tauri, Capacitor and Ionic apps | Their pages are served from localhost or a custom scheme like tauri://, not from your domain. |
| Chrome, Firefox and Safari extensions | Extension pages use an extension-specific URL rather than your website's domain. Chrome Manifest V3 also disallows remotely hosted JavaScript in extension pages. |
| Content scripts injected into other sites | The page belongs to someone else's domain, so Stickybeak turns the events away. |
| Native iOS and Android apps | There's no web page to run in. See Expo and React Native Web for the web build. |
| Widgets embedded in an iframe | The script ignores frames by default and runs in the top-level page. |
Stickybeak only accepts events that report a page on the domain you added, or one of its subdomains. App shells and extension pages use a different host or protocol, so their events are rejected. This domain check is not authentication: someone who deliberately forges a tracker request can still send false events.
What does work
- App shells that load your live website. If an Electron window calls
loadURL("https://example.com"), the page is your website and is counted like any other visit, as long as that site has the snippet installed. Capacitor documentsserver.urlfor live reload, not as a production hosting setup. - Your extension's or app's website. Install Stickybeak on the marketing site and track the clicks that matter there, like
data-goal="install_extension"on the store link. See Custom goals.