Advanced Settings

Prev Next

1 Overview

The advanced object allows developers to fine-tune tracking behavior in Mapp Intelligence. It includes optional configuration settings that go beyond basic tracking, covering advanced scenarios such as privacy handling, data consistency, and performance optimization.

To make these options easier to navigate, we’ve grouped them into three categories:

  • Security & Privacy: Options that affect cookie behavior, anonymous tracking, and opt-out handling.

  • Tracking Behavior & Logic: Settings that influence how and when data is tracked (e.g., tab handling, pre-rendering, or request obfuscation).

  • Performance Optimization: Mechanisms to limit requests, cache tracking data, or queue them in offline scenarios.

These settings are optional and should only be used when needed. Most setups only require basic configuration via the init object.


2 Tracking Configuration

2.1 Security & Privacy

These settings enhance data security and provide control over how personal data is collected and handled. Use them to configure cookie behavior, obfuscation techniques, and user anonymity options.

 

Configuration option

Description

secureCookie

Adds the secure flag to all client-side Mapp Intelligence cookies. Use only if your entire website uses HTTPS.

optOutName

Allows you to rename the opt-out cookie.

userIdentification.enableAnonymousFunction

Enables the anonymous tracking option, allowing users to opt out of user-identifiable tracking.

userIdentification.anonymousCookieName

Renames the cookie used for anonymous tracking. Defaults to miCookieOptOut.

userIdentification.anonymousOptIn

Enables anonymous tracking by default. No user-identifiable cookie is set unless the user opts in.

userIdentification.suppressParameter

Defines parameters to exclude when the user has opted out of identifiable tracking.

userIdentification.temporarySessionId

Temporarily links actions during one session without storing a persistent ID.

userIdentification.saveTemporarySessionId

Stores the temporary session ID in the session storage so it persists across page views within a session.

advancedPermission.activated

Enable if you need to differentiate between additional usage options for the tracked data, e.g., only to your Intelligence instance or to both Intelligence and Engage.

advancedPermission.permissionCategory

  • 0 (default): only Intelligence
  • 3: Intelligence and Engage

2.2 Tracking Behavior & Logic

These options control how tracking behaves in specific browser or user scenarios. Use them to fine-tune how page views are registered, pre-rendered content is handled, and how product data is merged.

 

Configuration option

Description

requestObfuscation

Obfuscates all tracking requests by randomizing the parameter order and adding a string to the endpoint, making it harder for adblockers to detect.

registerObfuscation

Obfuscates personal data sent to Engage during registration.

parameterObfuscation

You can define any tracking parameters for obfuscation.

forceOldEverId

Forces use of the previous version of the Ever ID.

tabBrowsing

Defines how tabbed browsing is handled. Learn more.

preRendering

Controls whether pre-rendered (background-loaded) pages are tracked. Learn more.

useHashForDefaultPageName

Includes the URL hash in the automatically generated page name.

useParamsForDefaultPageName

Includes specific URL parameters in the default page name.

productMerge

Prevents merging of multiple products with the same ID.

2.3 Performance Optimization

These settings help manage request frequency and ensure data is sent even under challenging network conditions. Use them to avoid tracking overloads, configure offline queues, and enable server-side communication.

 

Configuration option

Description

requestQueue.activated

Enables queuing of requests while offline.

requestQueue.ttl

Time to keep failed requests in queue (ms).

requestQueue.resendInterval

Time between retries for sending queued requests (ms).

requestQueue.size

Maximum number of requests allowed in the queue.

requestQueue.retries

Maximum number of retries per request/session. -1 means unlimited retries.

requestQueue.retriesOption

Defines retry limit type: 1 per request, 2 per session.

requestLimit.activated

Activates global request throttling.

requestLimit.amount

Maximum number of requests allowed.

requestLimit.duration

Duration (in seconds) in which the request limit applies.

sendViaSDK

Enabling sendViaSDK allows the Pixel to recognize the app context (e.g. from SDKs like Flutter) and forward tracking data to the SDK. This is required for web-to-app tracking in embedded WebViews.

sendViaServer.activated

Enables server-to-server tracking functionality.

sendViaServer.serverDomain

Defines the domain where the S2S library is hosted.

sendViaServer.serverPath

Defines the path where the S2S library is hosted.

sendViaServer.droppedRequests

Choose which types of requests should be dropped (0 = none, 1 = orders, 2 = products, 3 = page views).

sendViaServer.blacklist

Define content IDs to exclude from tracking. Requires droppedRequests to be set accordingly.


3 Implementation Example

This is how Mapp Intelligence can be implemented in a main.js project file. You import the plugin. When executing Vue.use() with it, you need to add your global configuration, webtrekkConfig in this example:

import Vue from "vue";
import VueRouter from "vue-router";
import WebtrekkSmartpixelVue from "@webtrekk-smart-pixel/vue";
import App from "./App.vue";
import Home from "./views/Home.vue";
 
Vue.use(VueRouter);
const routerInstance = new VueRouter({
  mode: "history",
  base: process.env.BASE_URL,
  routes: [
    {
      path: "/",
      name: "home",
      component: Home
    },
    {
      path: "/about",
      name: "about",
      component: () => import("./views/About.vue")
    }
  ]
});

const webtrekkConfig = {
  secureCookie: false,
  optOutName: "webtrekkOptOut",
  requestObfuscation: false,
  forceOldEverId: false,
  registerObfuscation: false,
  parameterObfuscation: ['cd', 'uc7'],
  sendViaSDK: false,
  sendViaServer: {
    activated: false,
    serverDomain: '',
    serverPath: '',
    droppedRequests: 0,
    blacklist: [/.+/]
  },
  useHashForDefaultPageName: true,
  useParamsForDefaultPageName: ['param1', 'param2'],
  requestQueue: {
    activated: false,
    ttl: 5 * 60 * 1000,
    resendInterval: 5 * 1000,
    size: 100,
    retries: -1,
    retriesOption: 1
  },
  requestLimit: {
    activated: false,
    amount: 1000,
    duration: 30 * 60
  },
  userIdentification: {
    enableAnonymousFunction: false,
    anonymousOptIn: 'miCookieOptOut',
    anonymousCookieName: false,
    suppressParameter: []
  },
  advancedPermission: {
    activated: false,
    permissionCategory: 0
  }
};
 
Vue.use(WebtrekkSmartpixelVue, webtrekkConfig);
 
new Vue({
  router: routerInstance,
  render: h => h(App)
}).$mount("#app");
<template>
  <div>Example</div>
</template>
 
<script>
export default {
  name: "example",
  mounted() {
    this.$webtrekk.advanced({
      secureCookie: false,
      optOutName: "webtrekkOptOut",
      registerObfuscation: false,
      requestObfuscation: false,
      forceOldEverId: false,
      parameterObfuscation: ['cd', 'uc7'],
      sendViaSDK: false,
      sendViaServer: {
        activated: false,
        serverDomain: '',
        serverPath: '',
        droppedRequests: 0,
        blacklist: [/.+/]
      },
      useHashForDefaultPageName: true,
      useParamsForDefaultPageName: ['param1', 'param2'],
      requestQueue: {
        activated: false,
        ttl: 5 * 60 * 1000,
        resendInterval: 5 * 1000,
        size: 100,
        retries: -1,
        retriesOption: 1
      },
      requestLimit: {
        activated: false,
        amount: 1000,
        duration: 30 * 60
      },
      userIdentification: {
        enableAnonymousFunction: false,
        anonymousOptIn: 'miCookieOptOut',
        anonymousCookieName: false,
        suppressParameter: []
      },
      advancedPermission: {
        activated: false,
        permissionCategory: 0
      }
    });
  }
};
</script>