@mailbiz/tracker-core
TypeScript icon, indicating that this package has built-in type declarations

0.1.10 • Public • Published

Mailbiz Tracker Core

npm version License

Core module to be used by Mailbiz JavaScript based trackers.

Maintainer quick start

Part of the Mailbiz JavaScript Tracker monorepo.
Build with Node.js (12 LTS or 14 LTS) and Rush.

Setup repository

npm install -g @microsoft/rush 
git clone https://github.com/Mailbiz/Mailbiz.Tracker.Javascript.git
rush update

Building Tracker Core

cd libraries/tracker-core
rushx build

Running tests

rushx test

Package Installation

With npm:

npm install @mailbiz/tracker-core

Usage

CommonJS Example

const trackerCore = require('@mailbiz/tracker-core').trackerCore;

// Create an instance with base 64 encoding set to false (it defaults to true)
const core = trackerCore(false);

ES Module Example

import { trackerCore } from '@mailbiz/tracker-core';

// Create an instance with base 64 encoding set to false (it defaults to true)
const core = trackerCore(false)

Example

// Add a name-value pair to all payloads
core.addPayloadPair('vid', 2);

// Add each name-value pair in a dictionary to all payloads
core.addPayloadDict({
    'ds': '1160x620',
    'fp': 4070134789
});

// Add name-value pairs to all payloads using convenience methods
core.setTrackerVersion('js-3.0.0');
core.setPlatform('web');
core.setUserId('user-321');
core.setColorDepth(24);
core.setViewport(600, 400);
core.setUseragent('Mailbiz/0.0.1');

// Track a page view with URL and title
const pageViewPayload = core.track(buildPageView({ pageUrl: 'http://www.example.com', pageTitle: 'landing page'});

console.log(pageViewPayload.build());
/*
{
    'e': 'pv',
    'url': 'http://www.example.com',
    'page': 'landing page',
    'uid': 'user-321',
    'vd': 2,
    'ds': '1160x620',
    'fp': 4070134789
    'tv': 'js-3.0.0',
    'p': 'web',
    'cd': 24,
    'vp': '600x400',
    'ua': 'Mailbiz/0.0.1',
    'timings' : {
        'created_at': 1406879959702
    },                          // timestamp
    'hash': '0718a85a-45dc-4f71-a949-27870442ed7d'  // UUID
}
*/

Other features

Core instances can be initialized with three parameters. The first is a boolean and determines whether custom contexts and unstructured events will be base 64 encoded. The second are optional Core Plugins, these can be used to intercept payload creation and add contexts on every event. The third is an optional callback function which gets applied to every payload created by the instance.

const core = trackerCore(true, [], console.log);

The above example would base 64 encode all unstructured events and custom contexts and would log each payload to the console.

Use the setBase64Encoding method to turn base 64 encoding on or off after initializing a core instance:

const core = trackerCore(); // Base 64 encoding on by default

core.setBase64Encoding(false); // Base 64 encoding is now off

Documentation

For more information on the Mailbiz JavaScript Tracker Core's API, view its docs page.

Licensed and distributed under the BSD 3-Clause License (An OSI Approved License).

Copyright (c) 2022 Mailbiz.

All rights reserved.

Package Sidebar

Install

npm i @mailbiz/tracker-core

Homepage

bit.ly/sp-js

Weekly Downloads

6

Version

0.1.10

License

BSD-3-Clause

Unpacked Size

332 kB

Total Files

12

Last publish

Collaborators

  • thiago.pitta.mailbiz
  • topogigiovanni