Tracking Service

Prev Next

The Tracking service lets you capture shopper interactions across your site, including page views, product views, category visits, add-to-cart actions, purchases, element impressions, clicks, and search activity, as well as custom events, so you can measure engagement, optimize experiences, and feed behavioral data back into XGEN’s AI models.


There are 3 ways to pass the locale to the track service events:

Note: The locale is a required field for all track events, but it is optional to pass directly in each event because there are 3 way to set the locale:

1. Pass the locale directly as a parameter. Example: xg.track.pageView({ locale: '<locale>' })

2. Use the xg.track.setLocale(<locale>: string) method to set the locale for any subsequent track events

3. Set the locale when creating the XGenClient instance

    cons xg = new XGenClient({
    	// ...other params,
    	locale: () => '<locale>',

    	// or

    	locale: '<locale>',
    })

There are also 3 ways to pass the group that a user belongs to:

Note: The group is not required, but is useful for segmenting users during A/B testing.

1. Pass the group directly as a parameter. Example: xg.track.pageView({ group: '<group>' })

2. Use the xg.track.setGroup(<group>: string) method to set the group for any subsequent track events

3. Set the group when creating the XGenClient instance

    cons xg = new XGenClient({
    	// ...other params,
    	group: () => '<group>',

    	// or

    	group: '<group>',
    })


Methods

// tracks a page view event.
xg.track.pageView({ locale });

// tracks the view of a item/product
xg.track.itemView({ item, context, locale });

// tracks the view of a category
xg.track.categoryView({ category, items, context, locale });

// tracks an add to cart event for an item/product
xg.track.addToCart({ item, context, locale });

// tracks a purchase order event for item(s)/product(s)
xg.track.purchaseOrder({ items, orderId, tax, discount, context, locale });

// tracks the view of a specific dom element
xg.track.elementView({ element, context, locale });

// tracks the render of a specific dom element
xg.track.elementRender({ element, context, locale });

// tracks the click of a specific dom element
xg.track.elementClick({ element, item, context, locale });

// tracks a search query event (tracked by default when calling xg.search.getResults())
xg.track.searchQuery({ query, queryId, deploymentId, page, context, locale });

// tracks the results of a search query (tracked by default when calling xg.search.getResults())
xg.track.searchResult({ query, queryId, deploymentId, page, context, locale });

// tracks a click of a search item/product
xg.track.searchClick({ query, queryId, deploymentId, page, item, items, context, locale });

// tracks a group assignment event
xg.track.groupAssignment({ group, previousGroup, context, locale });

// tracks a custom event
xg.track.customEvent({ category, action, name, value, locale });

// batch tracking - this will batch tracking events until send() is called
const batch = xg.track.createBatch();

batch.pageView();
batch.itemView({ item, context });

// optionally takes in a locale, group, url, and referrer to send the tracking events for
//ex. batch.send({locale: 'en', url: 'https://example.com/pdp', referrer: 'https://example.com/, group: 'group'})
batch.send();

All Tracking Events Return

{
  message: string;
  success: boolean;
}


pageView

pageView

Description: Tracks a page view event.

Parameters

Name

Type

Required

Description

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


itemView

itemView

Description: Tracks a item/product view event.

Parameters

Name

Type

Required

Description

item

object

The item/product to track

item.id

string

The id of the item/product

item.name

string

The name of the item/product

item.price

string

The price of the item/product

item.currency

string

The currency of the item/product. Ex. USD

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


categoryView

categoryView

Description: Tracks a category view event.

Parameters

Name

Type

Required

Description

category

string

The category to track

items

string[]

The ids of the first few category items/products

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


addToCart

addToCart

Description: Tracks an add to cart event.

Parameters

Name

Type

Required

Description

item

object

The item/product to track

item.id

string

The id of the item/product

item.name

string

The name of the item/product

item.price

string

The price of the item/product

item.currency

string

The currency of the item/product. Ex. USD

item.quantity

number

The quantity of the item/product

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


purchaseOrder

purchaseOrder

Description: Tracks a purchase order event.

Parameters

Name

Type

Required

Description

items

object[]

The array of items/products to track

item.id

string

The id of the item/product

item.name

string

The name of the item/product

item.price

string

The price of the item/product

item.currency

string

The currency of the item/product. Ex. USD

item.quantity

number

The quantity of the item/product

orderId

string

The unique identifier of the order

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


elementView

elementView

Description: Tracks the view of a specific dom node.

Parameters

Name

Type

Required

Description

element

object

Information about the dom node to track

element.id

string

The id of the dom node. For tracking XGen, this should match the recommendation experience ID. If tracking a competitor, prefix the id with competitor-

element.items

string[]

An array of the items/product ids shown in the element

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


elementRender

elementRender

Description: Tracks the render of a specific dom node.

Parameters

Name

Type

Required

Description

element

object

Information about the dom node to track

element.id

string

The id of the dom node. For tracking XGen, this should match the recommendation experience ID. If tracking a competitor, prefix the id with competitor-

element.items

string[]

An array of the items/product ids shown in the element

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


elementClick

elementClick

Description: Tracks the render of a specific dom node.

Parameters

Name

Type

Required

Description

element

object

Information about the dom node to track

element.id

string

The id of the dom node. For tracking XGen, this should match the recommendation experience ID. If tracking a competitor, prefix the id with competitor-

element.items

string[]

An array of the items/product ids shown in the element

item

string

The id of the item/product clicked. This should match the prod_code in the XGen platform.

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


searchQuery

searchQuery

Description: Tracks the search query. This is an event right before the search request is sent.

Parameters

Name

Type

Required

Description

query

object

Information about the dom node to track

queryId

string

The id of the search query

deploymentId

string

The id of the deployment. For tracking XGen, this should match the search experience ID. If tracking a competitor, prefix the id with competitor-

isTypeToSearch

boolean

Whether the query is a type-to-search query (defaults to false)

page

number

The page number of the search query

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


searchResult

searchResult

Description: Tracks the results of the search request.

Parameters

Name

Type

Required

Description

query

object

Information about the dom node to track

queryId

string

The id of the search query

deploymentId

string

The id of the deployment. For tracking XGen, this should match the search experience ID. If tracking a competitor, prefix the id with competitor-

items

string[]

An array of the items/product ids in the search results

isTypeToSearch

boolean

Whether the query is a type-to-search query

page

number

The page number of the search query

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


searchClick

searchClick

Description: Tracks a click event on a search result.

Parameters

Name

Type

Required

Description

query

object

Information about the dom node to track

queryId

string

The id of the search query

deploymentId

string

The id of the deployment. For tracking XGen, this should match the search experience ID. If tracking a competitor, prefix the id with competitor-

item

string

The id of the item/product clicked. This should match the prod_code in the XGen platform.

items

string[]

An array of the items/product ids in the search results

isTypeToSearch

boolean

Whether the query is a type-to-search query

page

number

The page number of the search query

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


groupAssignment

groupAssignment

Description: Tracks when a user gets assigned to a specific AB group.

Parameters

Name

Type

Required

Description

group

object

The group of the user

group.id

string

The id of the AB group

group.name

string

The name of the AB group

previousGroup

object

The previous group of the user (if applicable)

previousGroup.id

string

The id of the AB group (previous)

previousGroup.name

string

The name of the AB group (previous)

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.


customEvent

customEvent

Description: Tracks a custom event.

Parameters

Name

Type

Required

Description

category

string

The category of the event type

action

string

The action of the event

name

string

The name of the event

value

string

The value of the event

locale

string

The locale of the event

group

object

The group if there is an AB test active (recommended to set the group globally when instantiating the XGenClient)

group.id

string

The id of the AB group

group.name

string

The name of the AB group

url

string

The url the event was sent from (passed by default in the browser)

referrer

string

The referrer the event was sent from (passed by default in the browser)

context

object

Additional information about the event.