Instructions to send browse information using the Javascript Tagging Library.
Browsing data can be sent to Empathy using the trackBrowseCategory function including the parameters detailed below. This function should be executed each time a product category page is loaded.
trackBrowseCategory( categoryid, results, page, options, callback) |
Parameter | Description | Data Type | Mandatory |
---|---|---|---|
categoryid | The ID of the Product Category Page loaded | String | Yes |
results | Number of results displayed in the category | Integer | Yes |
page | The page number | Integer | Yes |
options | Object that may contain information about filters and other data like session and userID | Object | No* |
callback | Function that will be executed after sending data | Function | No |
*This parameters are not mandatory for the service but necessary for the statistics |
The options object should contains additional parameters not passed as parameters in function call:
{ lang: LANGUAGUE, scope: SCOPE, section: SECTION, user: USER_ID, session: SESSION_ID } |
Parameter | Description | Data Type | Mandatory |
---|---|---|---|
lang | Language identifier (es, en...) | String | No |
scope | Scope identifier (desktop, mobile, android app, iOS app...) | String | No |
section | Section value if it is required for the project | String | No |
user | UserID used for user based services | String* | No |
session | SessionID used for user based services | String | No |
*UserID should be an UUID identifier.
NOTE: The values for scope and lang will be provided by the Empathy Team.
The callback function will receive an object with the following contents. Also params sent in options will be included:
{ categoryId: categoryid, totalHits: results, page: page, scope: scope, referrer: document.referrer } |
/** * This example suppose that the provided scope is 'testscope' and the parameter to be included in the options parameter is the lang * parameter with value 'en' . UserID and SessionID are also included. **/ var options = { lang:'en', session: 'q1w2e3r4t5y6', scope: 'testscope', user: 'u1s2e3r', } empathyTAG.trackBrowseCategory('myCatID', 48, 1, options,function(responseData){ alert('test'); }); |
/** * This example suppose that the provided scope is 'testscope' and the parameter to be included in the options parameter is the lang * parameter with value 'en' . UserID and SessionID are also included. **/ var options = { lang:'en', session: 'q1w2e3r4t5y6', scope: 'testscope', user: 'u1s2e3r', } empathyTAG.trackBrowseCategory('myCatID', 48, 1, options); |
In most of the cases, you should implement one of these solutions to prevent receiving partial queries:
Prevent partial queries applying a delay before sending the trackQuery information, the delay time in the following example will be 2000 ms (2 seconds).
var _timeoutID; var options = { lang:'en', session: 'q1w2e3r4t5y6', scope: 'testscope', user: 'u1s2e3r', } window.clearTimeout(_timeoutID); _timeoutID = window.setTimeout(function(){ empathyTAG.trackBrowseCategory('myCatID', 48, 1, options,function(responseData){ alert('test'); }); },2000); |
Prevent partial queries filtering the query length to be considered as valid. For this example, it will be used 3 characters as minimal length.
//This variable should be filled with the query typed by the user var userQuery = 'test'; var _timeoutID; var options = { lang:'en', session: 'q1w2e3r4t5y6', scope: 'testscope', user: 'u1s2e3r', } if (userQuery.length > 3){ window.clearTimeout(_timeoutID); _timeoutID = window.setTimeout(function(){ empathyTAG.trackBrowseCategory('myCatID', 48, 1, options,function(responseData){ alert('test'); }); },2000); } |
Remember send queries when search engine returns 0 results. It's very important for future actions in search engine.
/** * This example suppose that the provided scope is 'testscope' and the parameter to be included in the options parameter is the lang * parameter with value 'en' **/ var options = { lang:'en', session: 'q1w2e3r4t5y6', scope: 'testscope', user: 'u1s2e3r', } empathyTAG.trackBrowseCategory('myCatID', 48, 1, options); |
Blank queries: Do not send a category without characters. Usually when users click in search button without write nothing in search box.
In this case be careful to not send the placeholder text (i.e. "Search...")