The Snap Tracker service is responsible for sending beacon events. Its class directly extends the beacon.js Beacon
class, therefore all methods and properties of the Beacon class are available on the Tracker class and are not documented below.
Snap Tracker is a dependency of @searchspring/snap-controller
npm install --save @searchspring/snap-tracker
import { Tracker } from '@searchspring/snap-tracker';
option | description | default value | required |
---|---|---|---|
id | unique identifier for the tracker | track | |
framework | unique identifier for the framework utilizing the tracker | snap | |
mode | application mode (production, development) | production | |
doNotTrack | array of TrackerEvents, used to block specific types of tracking | ➖ | |
initiator | unique identifier for the beacon | beaconjs/{version} | |
apis | configure various api options | ||
apis.fetch | FetchAPI reference to use | window.fetch | |
requesters.personalization.origin | alternative endpoint for personalization preflight api | https://{siteId}.a.searchspring.io | |
requesters.beacon.origin | alternative endpoint for beacon api | https://beacon.searchspring.io/beacon/v2 | |
href | set href | window.location.href | |
userAgent | set userAgent | navigator.userAgent |
Snap Tracker is a dependency of Snap Controller and Tracker events can be invoked via the tracker
reference of any Snap Controller.
const globals = { siteId: 'abc123' };
const tracker = new Tracker(globals);
const controller = new SearchController(config, {
...
tracker,
...
});
console.log(tracker.track.product.click === controller.tracker.track.product.click) // true
console.log(tracker.track.product.click === window.searchspring.tracker.track.product.click) // true
See Integration Tracking for how and where to implement tracking events.
See beacon.js Tracking Events for a list of available events.