The advanced object contains advanced tracking configuration possibilities with following options:


Configuration optionsDescription
secureCookie
Adds the "secure" flag to all client-side Mapp Intelligence cookies.  A secure cookie can only be transmitted over an encrypted connection (HTTPS).


Use this feature only if your entire website is accessible via SSL. If you are not sure if this is the case for your website, don't use this flag.

optOutNameAlternative name for the opt-out cookie.
requestObfuscationObfuscates all track requests to make it harder for adblockers to identify and block Mapp Intelligence track requests.
  • Random string appended after tracking endpoint ("wt")
  • Random order of all tracking parameters (including "p")

This feature is deactivated by default and can be activated with the "requestObfuscation" key.

forceOldEverIdForces to use the old Mapp Intelligence EverID.
execCDBActivates / deactivates the Cross Device Bridge.
useCDBCacheActivates / deactivates the image cache for the Cross Device Bridge.
sendViaSDK
Activates / deactivates the Web-to-App tracking functionality.  This is relevant if you want to track WebViews in your mobile app using the Smart Pixel.

This function enables synchronous sending of requests to Mapp Intelligence when your users open web content directly in the app. Only in this way can the analysis data be evaluated correctly. An example of this is the display of visits to previous or subsequent pages in chronological order. This also helps to ensure that the correct user path is displayed in the path analysis and that the customer journey is evaluated correctly.

This function is disabled by default.

Please note that activating this feature can lead to a slightly increased security risk when exchanging data. This is because the pixel creates a data exchange to your SDK (which you use to track the app) and does not send the data directly to your Mapp Intelligence account.

sendViaServerSupport server-to-server tracking functionality.
  • activated
Activate pixel configuration to support server-to-server tracking.
  • serverDomain
Indicate the domain where the server-to-server library is hosted. If you leave it empty the requests are sent to the Mapp Intelligence trackserver directly and not via the server to server library.
  • serverPath
Indicate the path where the server-to-server library is saved on your server. If you leave it empty the requests are sent to the Mapp Intelligence trackserver directly and not via the server-to-server library.
  • droppedRequests

Discard pixel requests:

  • 0: None
  • 1: Orders
  • 2: Products
  • 3: All page requests

Indicate the type of requests that have to be discarded by the pixel. It is possible to further narrow down the requests if you indicate specific content IDs under Discard specific requests.

  • blacklist

Indicate specific page requests that need to be discarded by the pixel. Please note:

  • If you would like to only discard a specific order or product request, you need to set Discard pixel requests to Orders or Products, respectively and indicate the specific content ID of the order or product to be discarded here.
  • If you like to only discard a specific page request, you need to set Discard pixel requests to All page requests and indicate the content ID to be discarded here.
useHashForDefaultPageNameIncludes the URL hash in the default page name.
useParamsForDefaultPageNameIncludes specific URL parameter(s) in the default page name.
requestQueueOffline queue for all tracking requests.
  • activated
Activates / deactivates the offline tracking functionality.
  • ttl
Specifies the maximum time of a request to be stored in the queue (in seconds).
  • resendInterval
Specifies the interval between resend attempts, if the request failed to sent (in milliseconds).
  • size
Specifies the maximum number of possible requests saved in the queue.
  • retries
Specifies the maximum number of retries before the request is deleted or no more requests are sent for the entire session. The default value is -1, which means infinite retries.
  • retriesOption

Specifies the option of retries:

  • 1: The limit is set for each request
  • 2: The limit is set for the entire session
requestLimit

The maximum number of permissible requests is limited in order to reduce the risk of sending large numbers of requests in error. This could be caused by an incorrect pixel implementation or by bot traffic. As soon as the standard limit of 1000 requests (pages and actions) every 30 minutes is exceeded, no further requests are sent by the pixel for the remaining time.

  • activated
Activates / deactivates the request limitation.
  • amount
Maximum number of requests permitted to be sent in the specified time period.
  • duration
Time interval in seconds for sending the maximum X number of requests.
userIdentificationAnonymised tracking.
  • enableAnonymousFunction
Enable if you want to give users the option to opt-out of user-identifiable cookies and parameters when tracking. By default, this function will still track with user-identifiable cookies, but the user can opt-out using the respective function.
  • anonymousCookieName
Alternative name for the anonymous tracking cookie. If you do not provide a name, miCookieOptOut will be used.
  • anonymousOptIn
Enable if you want to use anonymous tracking by default. Enabling this option will not set any user-identifiable cookie until the user actively agrees to its usage.
  • suppressParameter

It is possible to exclude additional parameters if the user sets the user-identifiable opt-out cookie. Please indicate the respective parameters in the array.

  • temporarySessionId
In order to keep the session and the user during a single session, we offer the possibility to set a temporary session ID that keeps the session together but is not permanently stored on a device.
  • saveTemporarySessionId
If you enable this option, the temporary session ID will be stored in the session storage, so you don't have to set it on every page.

Methods

The advanced object contains the following four methods:

MethodDescription

set

Overwrites all existing values.

add

Overwrites only the corresponding values.

get

Returns the current configuration.

remove

Removes the current configuration or individual values.


set

/**
 * @param {{
 *      [secureCookie=false]: boolean,
 *      [optOutName=webtrekkOptOut]: string,
 *      [requestObfuscation=false]: boolean,
 *      [forceOldEverId=false]: boolean,
 *      [execCDB=true]: boolean,
 *      [useCDBCache=false]: boolean,
 *      [sendViaSDK=false]: boolean,
 *      [sendViaServer]: {
 *          [activated=false]: boolean,
 *          [serverDomain='']: string,
 *          [serverPath='']: string,
 *          [droppedRequests=0]: number,
 *          [blacklist=[/.+/]]: string[]|RegExp[]
 *      },
 *      [useHashForDefaultPageName=false]: boolean,
 *      [useParamsForDefaultPageName=[]]: string[],
 *      [requestQueue]: {
 *          [activated=true]: boolean,
 *          [ttl=5*60*1000]: number,
 *          [resendInterval=5*1000]: number,
 *          [size=100]: number,
 *          [retries=-1]: number,
 *          [retriesOption=1]: number
 *      },
 *      [requestLimit]: {
 *          [activated=true]: boolean,
 *          [amount=1000]: number,
 *          [duration=30*60]: number
 *      },
 *      [userIdentification]: {
 *          [enableAnonymousFunction=false]: boolean,
 *          [anonymousCookieName=miCookieOptOut]: string,
 *          [anonymousOptIn=false]: boolean,
 *          [suppressParameter=[]]: string[],
 *          [temporarySessionId='']: string,
 *          [saveTemporarySessionId=false]: boolean
 *      }
 * }} data
 *
 * @returns {wtSmart.advanced}
 */
wtSmart.advanced.set(data);
JS

add

/**
 * @param {{
 *      [secureCookie]: boolean,
 *      [optOutName]: string,
 *      [requestObfuscation]: boolean,
 *      [forceOldEverId]: boolean,
 *      [execCDB]: boolean,
 *      [useCDBCache]: boolean,
 *      [sendViaSDK]: boolean,
 *		[sendViaServer]: {
 *          [activated]: boolean,
 *          [serverDomain]: string,
 *          [serverPath]: string,
 *          [droppedRequests]: number,
 *          [blacklist]: string[]|RegExp[]
 *      },
 *      [useHashForDefaultPageName]: boolean,
 *      [useParamsForDefaultPageName]: string[],
 *      [requestQueue]: {
 *          [activated]: boolean,
 *          [ttl]: number,
 *          [resendInterval]: number,
 *          [size]: number,
 *          [retries]: number,
 *          [retriesOption]: number
 *      },
 *      [requestLimit]: {
 *          [activated]: boolean,
 *          [amount]: number,
 *          [duration]: number
 *      },
 *		[userIdentification]: {
 *			[enableAnonymousFunction]: boolean,
 *			[anonymousCookieName]: string,
 *			[anonymousOptIn]: boolean,
 *			[suppressParameter]: string[]
 *          [temporarySessionId]: string,
 *          [saveTemporarySessionId]: boolean
 *		}
 * }} data
 *
 * @returns {wtSmart.advanced}
 */
wtSmart.advanced.add(data);
JS

get

/**
 * @returns {{
 *      secureCookie: boolean,
 *      optOutName: string,
 *      requestObfuscation: boolean,
 *      forceOldEverId: boolean,
 *      execCDB: boolean,
 *      useCDBCache: boolean,
 *      sendViaSDK: boolean,
 *		sendViaServer: {
 *          activated: boolean,
 *          serverDomain: string,
 *          serverPath: string,
 *          droppedRequests: number,
 *          blacklist: RegExp[]
 *      },
 *      useHashForDefaultPageName: boolean,
 *      useParamsForDefaultPageName: string[],
 *      requestQueue: {
 *          activated: boolean,
 *          ttl: number,
 *          resendInterval: number,
 *          size: number,
 *          retries: number,
 *          retriesOption: number
 *      },
 *      requestLimit: {
 *          activated: boolean,
 *          amount: number,
 *          duration: number
 *      },
 *		userIdentification: {
 *			enableAnonymousFunction: boolean,
 *			anonymousCookieName: string,
 *			anonymousOptIn: boolean,
 *			suppressParameter: string[]
 *          temporarySessionId: string,
 *          saveTemporarySessionId: boolean
 *		}
 * }}
 */
wtSmart.advanced.get();
JS

remove

/**
 * @param {string[]} [removeList]
 *
 * @returns {wtSmart.advanced}
 */
wtSmart.advanced.remove(removeList);
JS

Example

window.wtSmart = window.wtSmart || [];
window.wtSmart.push(function(wtSmart) {
	// set advanced config
	wtSmart.advanced.set({
		secureCookie: false,
		optOutName: 'webtrekkOptOut',
		requestObfuscation: false,
		forceOldEverId: false,
		execCDB: true,
		useCDBCache: false,
		sendViaSDK: true,
		sendViaServer: {
        	activated: true,
            serverDomain: 'sub.domain.tld',
            serverPath: 'path/to/my/s2s/lib',
            droppedRequests: 3,
            blacklist: ['*']
        },
    	useHashForDefaultPageName: true,
    	useParamsForDefaultPageName: ['param1'],
		requestQueue: {
        	activated: false,
        	ttl: 5 * 60 * 1000,
        	resendInterval: 5 * 1000,
        	size: 100,
            retries: -1,
            retriesOption: 1
    	},
 		requestLimit: {
			activated: true,
			amount: 1000,
			duration: 30*60
		},
 		userIdentification: {
			enableAnonymousFunction: true,
			anonymousCookieName: 'miCookieOptOut',
			anonymousOptIn: true,
			suppressParameter: ['cd', 'uc5', 'uc7']
		}
	});

	// add advanced config
	wtSmart.advanced.add({
		useCDBCache: true
	});

	// get advanced config
	var config = wtSmart.advanced.get();
  
	// remove complete advanced config
	wtSmart.advanced.remove();

	// remove only optOutName from advanced config
	wtSmart.advanced.remove(['optOutName']);
});
JS