This is a sciter.js package for in-app analytics.
The general idea is to record what users do within the application in order to optimize the user experience within the app.
Two types of events are recorded:
- events that are triggered by user actions (e.g. clicking a button)
- events that are triggered by the application (e.g. a page is loaded)
The following application analytics providers have been implemented:
- git clone the repository
- install packages
npm install
- install the latest sciter sdk
npm run install-sdk
- update the mixpanel project token or amplitude api key
- start the demo
npm run scapp
- A recent version of Node.js
node
(tested with 16 LTS) and its package managernpm
.- On Windows download and run the installer
- On Linux check the installation guide
- install package
npm install sciter-analytics
import Mixpanel from "node_modules/sciter-analytics/src/mixpanel.js";
import Amplitude from "node_modules/sciter-analytics/src/amplitude.js";
- copy the
src
dir to your project
Add to your project inside <script type="module">
import Mixpanel from "src/mixpanel.js";
import Amplitude from "src/amplitude.js";
const mixpanel = new Mixpanel({
// project token
token: "c557e826f1a76aaa4ed02e4681f95ae4",
// user unique id
userId: Utils.uuid(),
debug: true,
});
// add user properties
mixpanel.properties({
// reserved properties
$name: "John Doe",
$email: "[email protected]",
// custom properties
address: "Some street",
birthday: "1987-02-11",
});
// log event
mixpanel.event("App started");
// watch for event
mixpanel.watch("focus", "plaintext", "plaintext focused");
// send data
mixpanel.send();
const amplitude = new Amplitude({
apikey: "0fad02b65a75f270c199db6b920fbf92",
userId: Utils.randomStr(10),
debug: true,
eventProperties: {
appName: "Sciter analytics",
appRelease: "debug",
},
});
amplitude.event("Start app");
// watch app close
amplitude.watch("closerequest", undefined, "App close request");
// watch app install click
amplitude.watch("click", "#installApp1", "Install app", {
appName: "app 1",
});
amplitude.watch("click", "#installApp2", "Install app", {
appName: "app 2",
});
amplitude.watch("click", "#installApp3", "Install app", {
appName: "app 3",
});