@@ -17,8 +17,7 @@ var client = function(sitekey, privatekey) {
1717 this . apiHostname = API_HOSTNAME ;
1818 this . settings = new Settings ( ) ;
1919 this . sessionId = ( 'a-' + ( Math . random ( ) * 100000000 ) ) . substring ( 0 , 10 ) ;
20- this . personalizationToken = null ;
21- var personalizationToken = undefined ;
20+ this . personalizationToken = cookie . getCookie ( PERSONALIZATION_TOKEN_COOKIE_NAME ) || util . generateUUID ( ) ;
2221
2322 /**
2423 * Fetch search results
@@ -204,28 +203,25 @@ var client = function(sitekey, privatekey) {
204203 this . setCollectAnalytics = function ( collectAnalytics ) { this . settings . setCollectAnalytics ( collectAnalytics ) ; }
205204 this . setAnalyticsTag = function ( tagName ) { this . settings . setAnalyticsTag ( tagName ) }
206205 this . setThrottleTime = function ( delay ) { this . settings . setThrottleTime ( delay ) ; }
207- this . setStatsSessionId = function ( id ) { this . sessionId = id ; }
206+ this . setStatsSessionId = function ( id ) {
207+ this . sessionId = id ;
208+ this . personalizationToken = id ;
209+ }
208210 this . getStatsSessionId = function ( ) { return this . sessionId ; }
209211 this . enableLogicalOperators = function ( enableLogicalOperators ) { this . settings . enableLogicalOperators ( enableLogicalOperators ) } ;
210212 this . setSearchOperator = function ( operator ) { this . settings . setSearchOperator ( operator ) } ;
211213
212214 this . sendStatsEvent = function ( type , keyword , data ) {
213215
214-
215- if ( ! personalizationToken && isAddSearchCookieEnabled ) {
216- personalizationToken = cookie . getCookie ( PERSONALIZATION_TOKEN_COOKIE_NAME ) ;
217-
218- if ( ! personalizationToken ) {
219- personalizationToken = util . generateUUID ( ) ;
220- cookie . setCookie ( PERSONALIZATION_TOKEN_COOKIE_NAME , personalizationToken , personalizationCookieExpireDays ) ;
221- }
216+ var usePersonalizationToken = isPersonalizationTrackingEnabled && isAddSearchCookieConsented ;
217+ if ( usePersonalizationToken && ! cookie . getCookie ( PERSONALIZATION_TOKEN_COOKIE_NAME ) ) {
218+ cookie . setCookie ( PERSONALIZATION_TOKEN_COOKIE_NAME , this . personalizationToken , personalizationCookieExpireDays ) ;
222219 }
223220
224221 if ( type === 'search' ) {
225222 let payload = {
226223 action : 'search' ,
227- session : this . sessionId ,
228- userToken : isPersonalizationTrackingEnabled ? personalizationToken : undefined ,
224+ session : usePersonalizationToken ? this . personalizationToken : this . sessionId ,
229225 keyword : keyword ,
230226 numberOfResults : data . numberOfResults ,
231227 analyticsTag : this . getSettings ( ) . analyticsTag
@@ -236,8 +232,7 @@ var client = function(sitekey, privatekey) {
236232 else if ( type === 'click' ) {
237233 let payload = {
238234 action : 'click' ,
239- session : this . sessionId ,
240- userToken : isPersonalizationTrackingEnabled ? personalizationToken : undefined ,
235+ session : usePersonalizationToken ? this . personalizationToken : this . sessionId ,
241236 keyword : keyword ,
242237 docid : data . documentId ,
243238 position : data . position ,
@@ -255,13 +250,11 @@ var client = function(sitekey, privatekey) {
255250 * Personalization
256251 */
257252 var isPersonalizationTrackingEnabled = false ;
258- var isAddSearchCookieEnabled = true ;
253+ var isAddSearchCookieConsented = true ;
259254 var personalizationCookieExpireDays = 180 ;
260255
261- this . setPersonalizationToken = function ( userToken ) { personalizationToken = userToken } ;
262-
263- this . getPersonalizationTokenInCookie = function ( ) {
264- return cookie . getCookie ( PERSONALIZATION_TOKEN_COOKIE_NAME ) ;
256+ this . getPersonalizationToken = function ( ) {
257+ return this . personalizationToken ;
265258 } ;
266259
267260 this . enablePersonalizationTracking = function ( isEnabled , cookieExpireDays ) {
@@ -271,8 +264,8 @@ var client = function(sitekey, privatekey) {
271264 }
272265 } ;
273266
274- this . enableAddSearchCookie = function ( isEnabled ) {
275- isAddSearchCookieEnabled = ! ! isEnabled ;
267+ this . consentAddSearchCookie = function ( isEnabled ) {
268+ isAddSearchCookieConsented = ! ! isEnabled ;
276269 } ;
277270
278271
0 commit comments