Helika Web SDK (0.2.13)
Top of the funnel fingerprinting of your community upon first click.
Helika Web SDK Docs
The Helika SDK is a powerful toolkit for integrating Helika services into your applications. With the Helika SDK, you can easily leverage the full capabilities of Helika and build robust and scalable solutions.
Features
- Streamline integration with Helika services
- Access to a wide range of Helika APIs
This version is out of date!Current Version: 0.3.2
Installation
To install the Helika SDK, you can use npm:
npm install helika-sdk
Quick Start
You’ll need a Helika API Key in order to instantiate the Helika SDK. Please reach out to your Client Success Manager in order to receive an API key for your organization.
Here's a quick example on how to get started with the Helika SDK:
import Helika, { DisableDataSettings, EventsBaseURL } from "helika-sdk"
var helika;
try {
// Initialize the Helika SDK - it will throw if you use an invalid API key
helika = new Helika.Events(
'YOUR_API_KEY',
'YOUR_GAME_ID', // alphanumeric, only underscore, no spaces,
EventsBaseURL.EVENTS_DEV
);
} catch (e) {
console.error("api key is invalid");
}
// Optional - if you want to disable some data from getting stored due to compliance
helikaSDK.setDataSettings(DisableDataSettings.None);
// Start a session/create a new session which initiates the SDK instance with a
// sessionId which is required to fire events. This should only be called when
// the user lands on the page. We store and re-use the session_id from the local
// storage, if present.
await helikaSDK.startSession();
// Instantiate events based on your game's event taxonomy
const events = [
{
event_type: 'user_register', // required
event: { // required
event_sub_type: 'register',
user_id: 'user_1',
win_number: 1,
wallet: '0x4kd....'
discord_id: 'discord id'
}
},
{
event_type: 'user_download', // required
event: { // required
event_sub_type: 'download',
user_id: 'user_1',
twitter_id: 'twitterid'
}
}
];
// Asynchronously
// await helika.createEvent(events);
// Send an Event to Helika
helika.createEvent(events)
.then(response => {
console.log(response);
})
.catch(error => {
console.error(error);
});
API Reference
Conventions
The EventsBaseURL is an enum that dictates where to send all API requests. The SDK will handle the set-up for you. You just need to provide an API key and select whether it’s for production
or development
.
For testing purposes, we've added EVENTS_LOCAL
which logs your events to console.log() instead of sending the events.
enum EventsBaseURL {
EVENTS_LOCAL,
EVENTS_DEV,
EVENTS_PROD
}
Disable Data Settings
You can disable certain information from getting stored by using Events.setDataSettings(DisableDataSettings.All)
enum DisableDataSettings {
None,
BrowserInfo,
DeviceInfo,
IpInfo,
OsInfo,
VpnInfo,
All
}
Game Event Taxonomy
In order for out event processors to parse your events, they must adhere to a specific guideline.
Example Event
{
"event_type": "user_download",
"event": {
"userId": "user_1",
"win_number": 1,
"wallet": "0x4kd...."
}
}
Automatic Data Capture
The Helika SDK automatically appends some data fields in the event along side your customized data event.
Field | Type | Required/Optional | Description |
---|---|---|---|
game_id | string | required | The Game Identifier attribute for all events generated for this game |
created_at | DateTime | required | The timestamp when the event was created. |
session_id | u4 | required | The sdk generates a new Session ID when the Helika Object is created. |
utms | object | optional | The SDK parses the url parameters and records any important or interesting UTMs. |
helika_referral_link | string | optional | The Referral Link ID of the link that the user clicked in order to get to the game’s landing page. |
fp_data | object | optional | We keep track of all possible identifying information for the user. This will be sent on startSession() |
player_id | string | optional | If you'd like to keep track of a user's identifying information (user id, wallet address, in-game player id, etc), you can set the Player ID which get appended to all the events. |
Methods
Name | URL | Parameter | Description |
---|---|---|---|
constructor | Events() | api_key: string, game_id: string, baseURL: EventsBaseURL | Constructs the Event Service |
Start Session | Events.startSession() | ||
Create Event | Events.createEvent() | events: { game_id: string, event_type: string, event: Object }[] | This starts a user session, stores identifying user information, and UTMs that will get appended to events. |
Create UA Event | Events.createUAEvent() | events: { game_id: string, event_type: string, event: Object }[] | Sends the events to the Helika services |
Set Data Settings | Events.setDataSettings() | settings: DisableDataSettings | Disables storing certain data such as IP, location, browser info, device info, etc. |
Set Player ID | Events.setPlayerID() | playerId: string | Sets the player_id field that gets added to all events |
Get Player ID | Events.getPlayerID() | Gets the player_id that will get appended to all events | |
Set Enabled | Events.setEnabled() | enabled: boolean | Sets whether it's sending the events to our data pipeline or simply logging the event to console.log(). This is used for testing purposes. |
Is Enabled | Events.isEnabled() | Gets whether the Sending Events is enabled or disabled |
Validation
It is recommended that you verify events are being ingested correctly by sending some test events via the SDK. Successfully sent events should have a 200
status response.
Check within your portal for the events to appear in the Data Ingestion Summary.
The Data Ingestion Summary report can be found in the side menu:
Data Summary > Data Ingestion Summary
The Data Ingestion Summary will display information such as:
- Which environment the events are being sent to
- Total Event Volumes
- Types, and Sub Types Seen
- A table for the raw event stream, with raw payload.
Ingestion Delays
Please expect up to the following delays during event processing, before results are populated:
- Production: 15 minutes
- Development: 2 hours
After seeing some test events appear, this report can be used to monitor your ongoing events and event volumes, as they are added.
License
The Helika SDK is released under the MIT License.
Updated about 2 months ago