@ht-sdks/events-sdk-node
v1.0.3
Published
HT Events Node SDK
Downloads
4,234
Keywords
Readme
Events Node.js SDK
This SDK lets you track user event data from your Node applications.
Supported Versions of Node
See https://nodejs.dev/en/about/releases/ for currently supported and recommended versions of Node. Unsupported versions may work for this SDK, but Node versions older than 12 will require ES2019 polyfills.
Installing the SDK
Run the following command to install the Node.js SDK via npm:
$ npm install @ht-sdks/events-sdk-node
Using the SDK
Create a global client:
const Analytics = require('@ht-sdks/events-sdk-node');
const client = new Analytics(WRITE_KEY, {
dataPlaneUrl: DATA_PLANE_URL,
});
SDK Initialization Options
Below parameters are optional and can be passed during SDK initialization:
| Name | Type | Default value | Description |
| :--------------------- | :------- | :------------ | :------------------------------------------------------------------------------------------------ |
| dataPlaneUrl
| String | | The data plane URL. |
| path
| String | /v1/batch
| Path to batch endpoint. |
| flushAt
| Number | 20 | The number of events to be flushed when reached this limit. |
| flushInterval
| Number | 10000 | The maximum timespan (in milliseconds) after which the events from the in-memory queue is flushed |
| maxQueueSize
| Number | 460800(500kb) | Maximum payload size of a batch request |
| maxInternalQueueSize
| Number | 20000 | The maximum length of the in-memory queue |
| logLevel
| String | 'info' | Log level. Ex: 'debug', 'error'
|
| axiosConfig
| Object | N/A | Axios config |
| axiosInstance
| Object | N/A | Axios instance |
| axiosRetryConfig
| Object | N/A | Axios retry configuration |
| retryCount
| Number | 3 | Number of times requests will be retried by axios if failed |
| errorHandler
| Function | N/A | A function that will be called if request to server failed |
| gzip
| Boolean | true | Whether to compress request with gzip or not |
Example calls
Unlike the client-side SDKs that deal with a single user at a given time, the server-side SDKs deal with multiple users simultaneously. Therefore, you must specify either the userId or anonymousId every time while making any API calls supported by the Node SDK.
Identify
client.identify({
userId: '1hKOmRA4GRlm',
traits: {
name: 'Alex Keener',
email: '[email protected]',
plan: 'Free',
friends: 21,
},
});
Track
client.track({
userId: '1hKOmRA4GRlm',
event: 'Item Viewed',
properties: {
revenue: 19.95,
shippingMethod: 'Premium',
},
});
Page
client.page({
userId: '1hKOmRA4GRlm',
category: 'Food',
name: 'Pizza',
properties: {
url: 'https://example.com',
title: 'Pizza',
referrer: 'https://google.com',
},
});
Screen
client.screen({
userId: '12345',
category: 'Food',
name: 'Pizza',
properties: {
screenSize: 10,
title: 'Pizza',
referrer: 'https://google.com',
},
});
Group
client.group({
userId: '12345',
groupId: '1',
traits: {
name: 'Company',
description: 'Google',
},
});
Alias
client.alias({
previousId: 'old_id',
userId: 'new_id',
});