- Prepare your Schema
- Prepare your Catalog
- Upload your Feed
- Full Feed Upload
- Delta Feed Upload
- Check Product Count
- JavaScript Based Integration
- HTML Based Integration
- Introduction to GTM
- Requirements
- Introduction
- Events
- API Integration
- Browse Endpoint
- Authentication
- Header
- Request Parameter
- Response Components
- Explanation Request Parameter
- PDP API Format
- Taxonomy API Format
- Taxonomy Feed API
- System Requirements
- Install SDK
- Initialize SDK
- Unbxd Commerce Search
- Integrating Unbxd Autosuggest
- Unbxd Analytics
- Unbxd Browse
- Unbxd Recommendations
- Sample App
- Installation
- Unbxd Analytics
- Unbxd Commerce Search
- Unbxd Autosuggest
- Unbxd Browse
- Unbxd Recommendations
- Sample iOS App
- Libraries
- Quickstart
- Authentication
- Types of Pages to Render
- Configuring the Page
- Callback Functions
- Helper Functions
- Available Configurations
- Installation
- Configuration
- Components
- Composer
- Direct Plugin Feed Upload
- Authentication
- General Settings
- Configuration
- Catalog Sync
- Catalog Sync Information
- Product Feed Generator
- Feed View
- Indexing Queue View
- Analytics Integration
- Upgrade
- Uninstall
- Installation
- Configuration
- Configure Feed
- Cron Job
- Features
- Uninstall
Analytics API
Introduction
Whether you’re a large enterprise or an SME (small-to-medium enterprise) online store owner, your resources are finite. As your business grows, your shoppers are looking for a retail experience that is intuitive and personalized.
Tracking visitor analytics and behaviour anonymously is critical to provide accurate and visitor-specific search and category page results.
To help us analyse and understand your shoppers better, Unbxd captures information for every visitor anonymously by creating the following three sets of cookies:
- userId: An identifier for the shopper. This cookie never expires. For generating userId value, the below logic needs to be used to generate and store userId value in cookie.
This will ensure that it is generated in the right format and of correct length. UserId is a unique identifier for a shopper on a particular device which is generated only for a new user and should remain the same unless a user explicitly deletes this cookie.
var date = new Date(); var uid = ‘uid-’ + date.getTime() + ‘-’ + Math.floor(Math.random() * 100000);
- visitId – An identifier for the session/visit. This cookie expires when the shopper is idle for more than 30 minutes. If it is not defined for a new user, it should be created as per the logic mentioned in below code. Just modify the object name from Unbxd accordingly to what you want to use in the below code:
Unbxd.getVisitId = function getVisitId() { var visitId = Unbxd.readCookie(Unbxd.cookies.visitId); var now = new Date().getTime(); var expire = new Date(now + 30 * 60000); if (!visitId) { visitId = 'visitId-' + now + '-' + Math.floor(Math.random() * 100000); Unbxd.setCookie(Unbxd.cookies.visitId, visitId, expire); } else { // extend visitId expire time if exists // visitId should expire on more than 30min inactivity Unbxd.setCookie(Unbxd.cookies.visitId, visitId, expire); } return visitId; };
As mentioned above, visitId can be reset after shopper is idle for 30 mins and they should fire the visitor event again as in the below code for expire condition.
Note: It is mandatory is that you need to fire visitor event for Analytics, whenever the visitId is reset based on the expire logic. - visit – This stores whether the visitor is a ‘first_time’ or ‘repeat’ shopper. This cookie expires when the shopper is idle for more than 30 minutes.
NOTE: Session cookies have an inactivity timer. Sessions expire when they are idle for more than 30 minutes.
The information within these cookies are used to create a non-identifiable persona that allows us to analyze your shopper’s past click-through behaviors, shopping history, and product preferences, in real time. We use this information to provide site-level aggregate reporting.
Unique tracking codes within site interactions help us measure the performance user interactions anonymously.
Anonymous shopper profiles help fetch personalized search results. It also helps in generating detailed reports.
In other words, information is aggregated and analysed for two purposes:
- Providing relevant and personalised search & category pages results
- Generating reports
As a merchandiser or product manager you can make informed decisions and make your shopper’s experience a delightful one.
Events
Events are any action a visitor takes on your eCommerce store. Once deployed, the JS code tracks shopper events, using information stored within a cookie titled ‘unbxd.userId’. This file tracks, stores, and relays useful session-based information to Unbxd.
This section helps you understand more about the session-based events we track, like:
- Visitor: Identifies new and returning shoppers
- Category Page: Category pages are the product listing pages, a visitor visits while browsing on the ecommerce website. For example, pages for categories such as Women -> Dresses, Men ->Shirts, etc on the website. These are also called browse or navigation pages. This event tracks the number of visits for a particular category page.
-
Category Page impressions: Is every time the category pages is loaded. It further helps us improve suggestions and results by tracking product’s uniqueId.
- Product Click: Is when a shopper clicks on a product in the PLP.
- Product View: Is the number of times a shopper has visited a specific Product Details Page (PDP)
- Add to Cart: Is the number of times shoppers have added products to a cart. This event can be fired from both PDP and PLP.
- Cart Removal: Is the number of times a shopper has removed a product from the cart.
- Orders: Is the number of orders that have been successfully completed.
API Integration
In this method, you integrate the API references for every event that you want Unbxd to track.
NOTE: In case you are using a web browser, it is recommended that you use the Browser-based integration.
The calls have to be in the form of an HTTP GET request to the URL:
tracker.unbxdapi.com/v2/1p.jpg
Some of the common attributes used in the APIs are described below:
- referrer: The url of the previous page, will be empty if the user opened that particular url directly.
- uid: The unique identifying number for shoppers. Usually we set the “uid” for a particular user in a particular browser. The “uid” is stored within the “uid” cookie, and we store this ID every time we need user-specific event information.
Every request needs to be passed with the following HTTP headers:
- X-Forwarded-For
- user-agent
Visitor
The Visitor event is the first event that gets created when a shopper visits your site.
There are two types of shoppers we track:
- First-time shoppers
- Repeat shoppers
All shopper events are tracked against an anonymous User ID that is allotted to every shopper visiting your site. Site-level information, like the “userID”, “siteName”, and “visitType” parameter, are stored in two cookies titled ‘unbxd.userId’ and ‘visitId’.
Both these files are created for the first time when a shopper visits your site for the first time. When a shopper does not have the ‘userID’ cookie or if the shopper has cleared the cookie from their device, that shopper is called as a ‘first-time shopper’. Conversely, when a shopper already has the ‘userID’ cookie, that shopper is a ‘repeat shopper’.
User ID is a random numerical value with the timestamp of the visit and is device/browser-specific.
For instance, a shopper accessing your site on Google Chrome and Mozilla Firefox on the same computer will have two sets of cookies for each browser.
NOTE: The ‘visitID’ cookie is set to expire after 30 continuous minutes of inactivity. If a shopper returns to your site after the cookie expires, that shopper will be a ‘first-time shopper’.
Here’s how a Visitor API will look like.
https://tracker.unbxdapi.com/v2/1p.jpg?data={"url":"{{url-of-the-website}}","referrer":"{{reference-link}}","visit_type":"{{first-or-repeat}}","visitId":"{{visitId}}"}&UnbxdKey={{unbxd_sitekey}}&action=”visitor”&uid=”uid-1642414737751-2003”&t=”1662364656435|0.29442892143527755”
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘visitor’ |
url |
string |
Website url where search is performed |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
t |
This timestamp parameter should be according to the formula shared below t : current_time | random number between 0 to 1 t = new Date().getTime() + ‘|’ + Math.random(); |
|
referrer |
string |
link from where the page is opened(optional) |
Category Page
A category page event is tracked to understand the browse/category interests of your visitors, as in which all category pages are visited by the user. Each browse results page is tracked to enable per category page analytics of the visitor. Add the script below on categoryPage before Unbxd analytics library is loaded.
Here’s how a Category Page API will look like.
https://tracker.unbxdapi.com/v2/1p.jpg?data={"page":"categoryPathId:\"117>119\"","page_type":'{{category-page-type}}',"url":"{{url-of-the-website}}","referrer":"","visit_type":"{{first_or_repeat}}","requestId":"{{unx-request-id}}","visitId":"{{visit-id}}"}&UnbxdKey={{unbxd-sitekey}}&action=categoryPage&uid={uid}}&t=1662366067115|0.6477022776525343
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘categoryPage’ |
pid |
string |
Unique id for the product, to be taken from API response, if relevantDocumentType=”parent”, In search api response, or null |
url |
string |
Website url where search is performed |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
page* |
string |
Category path used for category api call (value of “p” parameter). |
page_type* |
string |
Page type for category path, BOOLEAN or CATEGORY_PATH based on page. |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
t |
This timestamp parameter should be according to the formula shared below t : current_time | random number between 0 to 1 t = new Date().getTime() + ‘|’ + Math.random(); |
|
referrer |
string |
Link from where the page is opened (Optional) |
Category Page Impression
A category page impression event is fired when results of the category page loads for the first time, and whenever the results change on applying pagination, autoscroll, sort, and filters.For each of these actions, unique Ids of the products visible on the category page should be tracked.
Here’s how a Category Page API will look like.
https://tracker.unbxdapi.com/v2/1p.jpg?data={"page":"categoryPathId:\"117>119\"","page_type":'{{category-page-type}}',"pids_list":"{{list-of-products-uniqueId}}","url":"{{url-of-the-website}}","referrer":"","visit_type":"{{first_or_repeat}}","requestId":"{{unx-request-id}}","visitId":"{{visit-id}}"}&UnbxdKey={{unbxd-sitekey}}&action=browse_impression&uid={uid}}&t=1662366068017|0.9865798147898728
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be browse_impression |
pid |
string |
Unique id for the product, to be taken from API response, if relevantDocumentType=”parent”, In search api response, or null |
url |
string |
Website url where search is performed |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
page* |
string |
Category path used for category api call (value of “p” parameter). |
page_type* |
string |
Page type for category path, BOOLEAN or CATEGORY_PATH based on page. |
referrer |
string |
Link from where the page is opened (Optional) |
Product Click
The Product Click event is generated every time a shopper clicks on a product in a Product Listing Page (PLP) or in a recommendation widget. This helps us understand your shoppers’ search preferences. This information is analyzed to list and promote ‘Popular Products’ in the autosuggest dropdown and display personalized ‘Recommended For You’ recommendations.
Here’s how a Product Click API will look like.
https://tracker.unbxdapi.com/v2/1p.jpg?data={"page":"categoryPathId:\"117>119\"","page_type":'{{category-page-type}}',"pid":"{{uniqueId-of-the-product}}","pr":"","requestId":"{{unx-request-id}}","url":"{{url-of-the-website}}","referrer":"","visit_type":"{{first_or_repeat}}","visitId":"{{visit-id}}"}&UnbxdKey={{unbxd-sitekey}}&action=click&uid={uid}}&t=1662365583875|0.7442797542869459
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘click’ |
pid |
string |
Unique id for the product, to be taken from API response, if relevantDocumentType=”parent”, In search api response, or null |
url |
string |
Website url where search is performed |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
page* |
string |
Category path used for category api call (value of “p” parameter). |
page_type* |
string |
Page type for category path, BOOLEAN or CATEGORY_PATH based on page. |
referrer |
string |
Link from where the page is opened (Optional) |
Product View
The Product Details Page (PDP) view indicates the total number of times a product has been visited by shoppers irrespective of the source; search result page, category page, search engine, email, marketing campaigns and so on.
Here’s how a PDP API will look like:
https://tracker.unbxdapi.com/v2/1p.jpg?data={"pid":"{{uniqueid-of-the-product}}","referrer":"","url":"{{url-of-the-website}}","visit_type":"{{first-or-repeat}}","requestId":”{{request-id}},”UnbxdKey”=”{{unbxd-sitekey}}&action=product_view,”uid”:”{{uid}}”&t={{time-spent}}
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘product_view’ |
url |
string |
URL of product display page (PDP), on which product is viewed. |
pid |
string |
Unique id of the product viewed. |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
t |
This timestamp parameter should be according to the formula shared below t : current_time | random number between 0 to 1 t = new Date().getTime() + ‘|’ + Math.random(); |
|
referrer |
string |
Link from where the page is opened (Optional) |
Add to Cart
The Add to Cart (or known as Cart) event is generated when a shopper adds a product to the shopping cart.
https://tracker.unbxdapi.com/v2/1p.jpg?data={"pid":"{{uniqueid-of-the-product}}","qty":”{{no-of-units}}","variantId":"{{variantId-of-the-variant}}","url":"{{url-of-the-website}}","referrer":"","visit_type":"{{first-or-repeat}}","requestId":"{{request-id}}"&UnbxdKey=”{{unbxd-sitekey}}&action=cart&uid={{uid}}&t={{time-spent}}
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘cart’ |
qty |
string |
The number of units added to the cart. This should be the string value of the quantity added. For example, if 2 quantities of a product is added then its value would be “2” (instead of 2). |
url |
string |
Url of the page where product is added to cart. |
pid |
string |
Unique id of the product viewed. |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
t |
This timestamp parameter should be according to the formula shared below t : current_time | random number between 0 to 1 t = new Date().getTime() + ‘|’ + Math.random(); |
|
referrer |
string |
Link from where the page is opened (Optional) |
Cart Removal
The Remove From Cart event tracks every instance a product is removed from cart as well. Information it helps us better understand the visitor’s preferences.
When a product with variants is removed from the cart, here’s how the API will look like.
https://tracker.unbxdapi.com/v2/1p.jpg?data={"pid":"{{uniqueId-of-the-product}}","variantId":"{{variantId-of-the-variant}}","qty":"{{no_of_units}}","url":"{{url-of-the-website}}","requestId":"{{unx-request-id}}","referrer":"","visit_type":"{{first_or_repeat}}","ver":"4.0.28","_uf":1187461382,"visitId":"{{visit-id}}"}&UnbxdKey={{unbxd-sitekey}}&action=cartRemoval&uid={uid}}&t=1662365583875|0.7442797542869459
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘cartRemoval’ |
url |
string |
Url of the page where product is removed from cart. |
pid |
string |
Unique id of the product viewed. |
variantId |
string |
VariantId of the variant-product.It is necessary only if variants are present. (optional) |
qty |
string |
Quantity being removed by the user as string. |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
variantId |
string |
VariantId of the variant-product.It is necessary only if variants are present. (optional) |
referrer |
string |
link from where the page is opened (Optional) |
Orders
The Orders event is generated every time a shopper places an order successfully on your site.
Here’s how an Order API will look like.
https://tracker.unbxdapi.com/v2/1p.jpg?data={"pid":"{{uniqueId-of-the-product}}","qty":"{{quantity-selected}}","price":"{{unit-price-for-product}}","url":"{{url-of-the-website}}","referrer":"","visit_type":"{{first_or_repeat}}","requestId":"{{unx-request-id}}","visitId":"{{visit-id}}"}&UnbxdKey={{unbxd-sitekey}}&action=order&uid={{uid}}1658904085468-92302&t=1662367087116|0.07798836811209986
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘order’ |
query |
string |
The search query entered by user |
pid |
string |
Unique id for the product, to be taken from API response, if relevantDocumentType=”parent”, In search api response, or null |
price |
string |
Unit price of the product (variant, if variant is selected) |
url |
string |
Url of the order success page where the API for order event is fired |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
referrer |
string |
Link from where the page is opened (Optional) |
Facets
A Facet event tracks the guided navigation on the Browse/Category Page. The category api will list the specific filters the shopper has selected to narrow down the results on the browse results page.
Here’s how an Order API will look like.
http://tracker.unbxdapi.com/v2/1p.jpg?data={"page":"categoryPathId:\"117>119\"","page_type":'{{category-page-type}}',"facets":{“facet-name”:[value],},"url":"{{url-of-the-website}}","referrer":"","requestId":"{{unx-request-id}}","visit_type":"{{first_or_repeat}}","visitId":"{{visit-id}}"}&UnbxdKey={{unbxd-sitekey}}&action=search&uid={{uid}}5&t=1662365253141|0.6835012308821242
NOTE: Action for this event will be “search”, as in the API above and does not need to be changed.
Payload details:
Attribute Name |
Datatype |
What value to be passed |
action |
string |
Indicates the type of event. In this case, the value will be ‘search’ |
page* |
string |
Category path used for category api call (value of “p” parameter). |
page_type* |
string |
Page type for category path, BOOLEAN or CATEGORY_PATH based on page. |
pid |
string |
Unique id for the product, to be taken from API response, if relevantDocumentType=”parent”, In search api response, or null |
url |
string |
Website url where search is performed |
requestId |
string |
To be extracted from Unbxd search api response headers, from unx-request-id |
visit_type |
string |
Can be either “first_time” or “repeat” |
UnbxdKey |
string |
UnbxdSitekey value |
uid |
string |
Need to be extracted from cookie, unbxd.userId. |
t |
This timestamp parameter should be according to the formula shared below t : current_time | random number between 0 to 1 t = new Date().getTime() + ‘|’ + Math.random(); |
|
referrer |
string |
Link from where the page is opened (Optional) |
- Did this answer your question?
On this Section
- To create a Query Rule
- To Edit a Query Rule
- Delete a Query Rule
- Campaign States
- Create Campaigns
- Edit Campaigns
- Preview Campaigns
- Duplicate Campaigns
- Delete Campaigns