This section describes the installation and initialization of the Flutter Software Development Kit. It also covers global and advanced configurations.

Installation

Flutter SDK Page

  1. Run this command with Flutter. 

    $ flutter pub add plugin_mappintelligence
    CODE
    1. This will add a line like this to your package's pubspec.yaml (and run an implicit dart pub get): dependencies: plugin_mappintelligence: ^5.x.x 
    2. Alternatively, your editor might support flutter pub get. Check your editor's documentation to learn more. 
  2. Import, now in your Dart code, you can use

    import 'package:plugin_mappintelligence/plugin_mappintelligence.dart';
    import 'package:plugin_mappintelligence/object_tracking_classes.dart';
    CODE
  3. And import webview (Just for android if you use webview with the pixel SDK)

    import 'package:plugin_mappintelligence/webview_flutter.dart' ;
    CODE


Initializing the SDK 

You need to install the SDK on both Dart and in the Android folder if you want to track iOS and Android applications.

We also advise enabling batch support and switching to client timestamp support in your account when you use the SDKs. Please get in touch with your account manager for client timestamp support.

There is no need to initialize flutter plugin for Android from native Java or Kotlin code for plugin version (5.0.1 and above).


Flutter plugin can be initialized from the flutter side, e.g. from main.dart file as follows:

PluginMappintelligence.initialize(
["111111111111111"], 'http://tracker-int-01.webtrekk.net');
PluginMappintelligence.setEverId("1234567890123456");
PluginMappintelligence.setLogLevel(LogLevel.all);
PluginMappintelligence.setBatchSupportEnabledWithSize(true, 150);
PluginMappintelligence.setRequestInterval(1);
PluginMappintelligence.setSendAppVersionInEveryRequest(true);
PluginMappintelligence.enableCrashTracking(ExceptionType.allExceptionTypes);
PluginMappintelligence.build();
CODE

NOTE

Methods PluginMappintelligence.initialize() and PluginMappintelligence.build() are required, and other methods are optional.



Methods AndroidMethods iOSNotesDefaultMandatory
Builder(String array, String)initialize(String array,String)Initializes tracking. Mandatory to start tracking.emptyyes
setEverIdsetEverIdSets custom everIDemptyno
logLevel(logLevel: Logger.level)setLogLevel(LogLevel)

Enables logging. Useful when testing the integration. Should be disabled on production.

  • Android options:
    • BASIC: Logging is active
    • NONE: Logging is disabled
  • iOS options:
    • none: logging disabled
    • all: display all available logs
    • debug: informational logs such as contentID and current configuration
    • warning: missing or incorrect information that might lead to a failure
    • error: failures that occur
    • fault: failure in a key system
    • info: information logs for updating configuration or migrating from older versions of the library

Android: NONE

iOS: none

no
setBatchSupport(batchEnable: Boolean,requestsInBatch: Int)setBatchSupportEnabledWithSize(Boolean, requestsInBatch: Int)Sends requests in batches instead of individually. Recommended to increase data quality. When enabled, the default batch size is 5000 requests/batch. The maximum number is 10000/batch. We recommend to use 150/batch.false, 5000no
requestsInterval(timeUnit: TimeUnit = TimeUnit.MINUTES, interval: Long)setRequestInterval(int)Specifies the time interval of sending attempts. The minimum time interval in Android is 15 minutes and in iOS 1 minute. The maximum time interval is 60 minutes.

15

no
setSendAppVersionInEveryRequestsetSendAppVersionInEveryRequestSends the app version parameter (cs804) in every request instead of once per sessionfalseno
enableCrashTrackingenableCrashTracking

enables crash tracking. Please note that in Android, only custom crash types can be tracked and flutter's function runZonedGuarded() need to be called.

Please check documentation for iOS and Android:

Android crash tracking

iOS crash tracking

noneOfExceptionTypesno
disableAutoTracking(Boolean)
We recommend to disable autotracking in Flutter. By default, autotracking is enabled.falseno















Supported Characters and Coding Formats

Mapp Intelligence supports the UTF-8 standard.

  • A request may not be larger than 7KB.
  • Input is case-sensitive.


Parameters can have the data type text or figure.

  • Text parameters support a maximum of 255 characters. If a parameter is configured to capture multiple values simultaneously, then each single value of the parameter can consist of up to 255 characters. Each of these scalar values is stored in the database as one parameter.
  • Figure parameters support a range of decimal(12,2). That means ten digits with two decimal places (range: -9999999999.99 to 9999999999.99).


If you are using the NoScript segment of the pixel:

  • all parameters in the "<noscript>" segment must be set according to UTF-8 and URL code standards. For example, the German "ΓΌ" as "%C3%BC". This will ensure the proper transmission of all special characters and applies to all websites regardless of coding (UTF-8, ISO-8859-1, etc.).


Certain characters are automatically filtered out during tracking:

  • 0x00-0x1f
  • '
  • "
  • <>\
  • 0xA0 => space
  • Several spaces become one.
  • Trailing and ending spaces are removed.