Please note that using this function will significantly decrease data quality. Only use this function if required by your data privacy manager.

Description

When using anonymous tracking, the SDK will not generate or store an everID in the local database. This avoids user recognition in Mapp Intelligence. Optionally, the customer can suppress any parameter when anonymous tracking is enabled (such as the customer or orderID). Please note that tracking users anonymously can have an impact on both session detection (causing session breaks) as well as suppressing user recognition in between sessions. Matching users in between the Engage and Intelligence system will not work when anonymous tracking is active.

You can choose to enable anonymous tracking in the global configuration. Using this option means using anonymous tracking by default without offering users to opt-in or opt-out of anonymous tracking. It is also possible to control anonymous tracking during runtime.

The following functions are not available  when anonymous tracking is active:

  • Migrating from Intelligence version 4 to Intelligence version 5 without loss of historical data
  • Getting the everID
  • Setting the everID manually
  • User matching in between Mapp Engage and Mapp Intelligence


If you want to use anonymous tracking on first app start, you need to call MappIntelligence.shared()?.anonymousTracking before  calling MappIntelligence.shared()?.initWithConfiguration().

Data

PropertyPossible ValuesDefault
anonymousTracking

Boolean. True/false.

False
enableAnonymousTracking(suppressParams: [String]?)Arrayempty
setTemporarySessionId(ID: String)Stringempty

Methods

MethodDescription
BOOL anonymousTrackingEnables anonymous tracking without having the option to suppress additional parameters.
(void) enableAnonymousTracking:(NSArray<NSString *> *_Nullable) suppressParams;Enables anonymous tracking with the option to suppress additional parameters when anonymous tracking is enabled.
(void)setTemporarySessionId:(NSString *)Sets the temporary session ID in case anonymous tracking is used.

Examples

Anonymous tracking must be called on first position when initialising the SDK.

Enable Anonymous Tracking Globally

You need to enable anonymous tracking in the AppDelegate class.

class AppDelegate: UIResponder, UIApplicationDelegate {
 
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
 
        // Override point for customization after application launch.
        
		MappIntelligence.shared()?.anonymousTracking = true
		MappIntelligence.shared()?.setTemporarySessionId("user-xyz-123456789")
		MappIntelligence.shared()?.initWithConfiguration([123451234512345], onTrackdomain: "https://your-trackdomain.net")
		return true
    }
}
JAVA
[[MappIntelligence shared] setAnonymousTracking: YES];
[[MappIntelligence shared] setTemporarySessionId: @"user-xyz-123456789"];
[[MappIntelligence shared] initWithConfiguration: @[@111111111111111, @222222222222222] onTrackdomain:@"https://your-trackdomain.net"];
JAVA


Enable Anonymous Tracking on Runtime

You can enable anonymous tracking via a function in your application:

@IBAction func toggleAnonimousTracking(_ sender: UISwitch) {
       if (sender.isOn) {
           MappIntelligence.shared()?.enableAnonymousTracking(["cd"]) //enable anonymous tracking and suppress customer visitor ID.
		   MappIntelligence.shared()?.setTemporarySessionId("user-xyz-123456789") //optional: is used to provide a session-based user ID.
       } else {
           MappIntelligence.shared()?.anonymousTracking = false
       }
   }
JAVA
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    if (sender.isOn) {
        [[MappIntelligence shared] enableAnonymousTracking: @[@"cd"]];
		[[MappIntelligence shared] setTemporarySessionId: @"user-xyz-123456789"];
    } else {
        [[MappIntelligence shared] setAnonymousTracking: false];
    }
}
JAVA