Connect Tracker SDK for Flutter

Getting started with Mobile App Tracking - Flutter

CircleCI version

Install ConnecTracker SDK

Integrate Mobile App Tracking into your app

import 'package:flutter_connecttracker/connecttracker.dart';
import 'package:flutter_connecttracker/connecttracker_options.dart';
...

var options = ConnectTrackerOptions("android_app_key", "ios_app_key");
final _flutterConnecttrackerPlugin = ConnectTracker();
final initialized =  await _flutterConnecttrackerPlugin.init(options) ?? false;

Initialze with more options

import 'package:flutter_connecttracker/connecttracker.dart';
import 'package:flutter_connecttracker/connecttracker_options.dart';
...


var options = ConnectTrackerOptions("android_app_key", "ios_app_key");
// Disable or enable ad Id tracking on both platform
options.isAdIdTrackingDisabled = true;
// Request App Tracking Permission on iOS
options.requestAppTrackingPermission = true;
// Enable location services callbacks on both platforms.
options.useLocation = true;
// Set up push notification
options.usePushNotifications = true;
// Set up Sandbox for both platforms
options.isSandbox = true;

final _flutterConnecttrackerPlugin = ConnectTracker();
final initialized =  await _flutterConnecttrackerPlugin.init(options) ?? false;

Run the app in the iOS simulator or Android emulator and check the app_open events are being sent to the Connected Interactive dashboard.

// Notifies the SDK that the app has been opened using a deeplink
_flutterConnecttrackerPlugin.appWillOpenUrl("schema://deeplink");
// Resolves a deeplink generated by an email client and passes the deeplink to the SDK
_flutterConnecttrackerPlugin.resolveDeeplink("schema://deeplink", ["prefix1", "prefix2"]);
Tracking management methods
// Turn off tracking
_flutterConnecttrackerPlugin.turnOffTracking();
// Turn on tracking
_flutterConnecttrackerPlugin.turnOnTracking();

// Check if the SDK is initialized
_flutterConnecttrackerPlugin.isInitialized();

// Check if tracking is on
_flutterConnecttrackerPlugin.isTrackingOn();

// Delete user data from the SDK
_flutterConnecttrackerPlugin.deleteUserData();

Location and Permission methods

// Request location permission
_flutterConnecttrackerPlugin.onWillRequestLocationPermission();
// Location permission denied
_flutterConnecttrackerPlugin.onLocationPermissionDenied();
// Location permission granted
_flutterConnecttrackerPlugin.onLocationPermissionGranted();

Application lifecycle methods

// Application is paused
_flutterConnecttrackerPlugin.onApplicationPaused();

Add a custom event

Setup Custom Event Tracking

To track custom events place the following code to your project:

_flutterConnecttrackerPlugin.trackEvent("YOUR_EVENT_NAME", null)

If you want to track events that have a value such as a monetary value, you could call the following code:

_flutterConnecttrackerPlugin.trackEvent("YOUR_EVENT_NAME", "YOUR_VALUE")

To enable event callbacks, set the property callbacks in your ConnectTrackerOptions before calling _flutterConnecttrackerPlugin.trackEvent.

var options = ConnectTrackerOptions("android_app_key", "ios_app_key");
var callbacks = ConnectTrackerCallbacks();
options.callbacks = callbacks;

Implement the Callback functions.

callbacks.onSessionStartSuccess = (value) {
    // Handle the value as a dictionary to get session start details
    print(value['trackingId']);
};
callbacks.onSessionStartFailed = (value) {
    // Handle the value as a dictionary to get session start details
    print(value['trackingId']);
};

callbacks.onEventTracked = (value) {
    // Handle the value as a dictionary to get session start details
    print(value['trackingId']);
};

callbacks.onEventTrackedFailed = (value) {
    // Handle the value as a dictionary to get session start details
    print(value['trackingId']);
};

callbacks.onAppTrackingPermissionDenied = (value) {
    // value matches the iOS ATTrackingManagerAuthorizationStatusAuthorized constant (3)
    print(value);
};

callbacks.onAppTrackingPermissionDenied = (value) {
    // value matches any of these permission status
    // ATTrackingManagerAuthorizationStatusNotDetermined(0), ATTrackingManagerAuthorizationStatusRestricted(1), ATTrackingManagerAuthorizationStatusDenied(3)
};

callbacks.onAttributionChanged = (value) {
    print(value['trackingId']);
};