0.0.29 • Published 6 months ago

@searchspring/beacon v0.0.29

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

beacon.js

beacon.js is a TypeScript library for sending tracking events to SearchSpring's Beacon API. A full API reference is available here

Installation

npm install --save @searchspring/beacon
<script src="https://snapui.searchspring.io/beacon.js"></script>

Beacon Globals

import { Beacon } from '@searchspring/beacon';

// Initialize Beacon with globals
const beacon = new Beacon({ siteId: 'abc123', currency: { code: 'USD' } });
optiondescriptiondefault valuerequired
siteIdRequired siteIdproduction✔️
currency.codeISO 4217 currency code
cartarray of current cart products
cart[].uidproduct uid
cart[].sku(optional) product sku
cart[].childUid(optional) product child uid
cart[].childSku(optional) product child sku
cart[].qty(optional) product qty
cart[].price(optional) product price

Beacon Config

In addition to providing globals, a config object can be provided as the second parameter.

import { Beacon } from '@searchspring/beacon';

// Initialize Beacon with globals and config
const beacon = new Beacon(
    { siteId: 'abc123', currency: { code: 'USD' } },
    { mode: 'development' }
);
optiondescriptiondefault valuerequired
modeapplication mode (production, development)production
initiatorunique identifier for the beaconbeaconjs/{version}
apisconfigure various api options
apis.fetchFetchAPI reference to usewindow.fetch
requesters.personalization.originalternative endpoint for personalization preflight apihttps://{siteId}.a.searchspring.io
requesters.beacon.originalternative endpoint for beacon apihttps://beacon.searchspring.io/beacon/v2
hrefset hrefwindow.location.href
userAgentset userAgentnavigator.userAgent

Tracking Events

This section lists all available events and their corresponding schemas names provided to the data object. Refer to the API reference for data payloads and examples for each event.

An optional siteId can be provided to each event to override the siteId provided in the Beacon globals constructor.

beacon.events.autocomplete.render({
    data: AutocompleteSchemaData,
    siteId: 'abc123'
});

Shopper Login

beacon.events.shopper.login({ id: 'shopper-id' });

Autocomplete Render

beacon.events.autocomplete.render({
    data: AutocompleteSchemaData
});

Autocomplete Impression

beacon.events.autocomplete.impression({
    data: AutocompleteSchemaData
});

Autocomplete Add to Cart

beacon.events.autocomplete.addToCart({
    data: AutocompleteAddToCartSchemaData
});

Autocomplete Click Through

beacon.events.autocomplete.clickThrough({
    data: AutocompleteSchemaData
});

Autocomplete Redirect

beacon.events.autocomplete.redirect({
    data: AutocompleteRedirectSchemaData
});

Search Render

beacon.events.search.render({
    data: SearchSchemaData
});

Search Impression

beacon.events.search.impression({
    data: SearchSchemaData
});

Search Add to Cart

beacon.events.search.addToCart({
    data: SearchAddToCartSchemaData
});

Search Click Through

beacon.events.search.clickThrough({
    data: SearchSchemaData
});

Search Redirect

beacon.events.search.redirect({
    data: SearchRedirectSchemaData
});

Category Render

beacon.events.category.render({
    data: CategorySchemaData
});

Category Impression

beacon.events.category.impression({
    data: CategorySchemaData
});

Category Add to Cart

beacon.events.category.addToCart({
    data: CategoryAddToCartSchemaData
});

Category Click Through

beacon.events.category.clickThrough({
    data: CategorySchemaData
});

Recommendations Render

beacon.events.recommendations.render({
    data: RecommendationsSchemaData
});

Recommendations Impression

beacon.events.recommendations.impression({
    data: RecommendationsSchemaData
});

Recommendations Add to Cart

beacon.events.recommendations.addToCart({
    data: RecommendationsAddToCartSchemaData
});

Recommendations Click Through

beacon.events.recommendations.clickThrough({
    data: RecommendationsSchemaData
}); 

Product Page View

beacon.events.product.pageView({
    data: ProductPageViewSchemaData
});

Cart Add

beacon.events.cart.add({
    data: CartSchemaData
});

Cart Remove

beacon.events.cart.remove({
    data: CartSchemaData
});

Order Transaction

beacon.events.order.transaction({
    data: OrderTransactionSchemaData
});

Methods

setCurrency

If a currency is not provided in the Beacon globals constructor, or if switching currencies, the setCurrency method can be used to set the currency code.

const beacon = new Beacon({ siteId: 'abc123' });

beacon.setCurrency({ code: 'EUR' })
0.0.29

6 months ago

0.0.28

7 months ago

0.0.27

7 months ago

0.0.26

7 months ago

0.0.25

8 months ago

0.0.24

8 months ago

0.0.23

9 months ago

0.0.22

9 months ago

0.0.21

9 months ago

0.0.20

9 months ago

0.0.19

9 months ago

0.0.18

9 months ago