JavaScript Event Tracking

Track events that happen on your app's frontend or on your site using the Encharge Javascript tracking code.

The Javascript tracking code will automatically record pageviews.

Make sure you have installed the Encharge JS snippet by following the instructions in the app.

If there is a chance that the Encharge JS snippet will be run after code that calls it, add the following line of code before calling any of its methods:

if (!window.EncTracking) window.EncTracking={queue:[],track:function(e){this.queue.push({type:"track",props:e})},identify:function(e){this.queue.push({type:"identify",props:e})}};

Identify

The identify method can be used to:

  • Uniquely identify the current person.

  • Enrich his or her profile with additional traits

We recommend calling identify on the following events:

  • After a user registers

  • After a user logs in

  • When a user updates their info (for example changes his plan or updates his address)

EncTracking.identify({
email: "emily.doe@gmail.com",
userId: "123"
});

You can pass comma-separated tags property to the identify method to easily add tags to the user. For example: EncTracking.identify({ email: "emily.doe@gmail.com", tags: "tag1, tag2"});

Track

Use track method to record actions that users take in your app.

Please note that pageviews are tracked automatically, so you don't need to emit events for them.

The track method uses the same request body as our Ingest API.

For example, to log that one of your users sent a message, you'd use the following:

// Make sure this code is placed after the Encharge Tracking JS snippet
window.EncTracking.track(
{
// Name of this event (required)
"name": "Sent Message",
// Properties of this event (optional)
"properties": {
"numberOfRecipients": 12
},
// Fields for the current user performing the event (required)
"user": {
// `email` or `userId` is required to uniquely identify this person
"email": "mscott@dundermifflin.com",
// Any other fields will be added to this person.
"name": "Michael Scott",
}
}
);

The Encharge Javascript tracking code sends these events to the Encharge Ingest API, and is subject to the same terms.

You can omit calling the identify method by sending the user traits in the user property of the track method (see the example above).

Single-page app Pageviews

Usually, the Encharge JS snippet tracks pageviews automatically. However, in some single-page apps, you might need to explicitly trigger pageview. You can do so as follows:

// Make sure this code is called after the Encharge Tracking JS snippet has loaded
window.EncTracking.client.recordEvent('pageviews',
{
"page": {
"url": "https://google.com",
// Page title is optional
"title": "New Page"
}
}
)