MMP SDKs for Flutter
Attribution plugins for Flutter apps, from pub.dev and each vendor's own docs: who publishes the package, its licence and the lowest iOS and Android version it supports.
8 of the 9 MMPs tracked here publish an official Flutter SDK: Adjust, Airbridge, AppMetrica, AppsFlyer, Kochava, Linkrunner, Singular and Tenjin. Branch documents a route maintained by someone else.
Flutter pinout: one pin per MMP
Filled pins have an official SDK. Pins are in A to Z order.
Flutter SDKs compared
Last checked 2 Nov 2026. Package, version and licence from pub.dev; minimum OS from podspecs, Gradle files and vendor docs.
| MMP | Status | Package | Registry | Version | Licence | Minimum OS | Repo | Install docs | Notes |
|---|---|---|---|---|---|---|---|---|---|
| Official | adjust_sdk | pub.dev | 5.8.0 | MIT | iOS 12; Android API 21 | Source | Install docs | ||
| Official | airbridge_flutter_sdk | pub.dev | 4.12.0 | Not published | iOS 12.0; Android not published | Not public | Install docs | ||
| Official | appmetrica_plugin | pub.dev (publisher appmetrica.yandex.com) | 4.1.0 | Proprietary (AppMetrica licence) | iOS 15.0; Android API 21 | Source | Install docs | ||
| Official | appsflyer_sdk | pub.dev | 7.0.4 | MIT | iOS 13.0; Android API 21 | Source | Install docs | Verified publisher appsflyer.com on pub.dev; plugin also ships a Package.swift for SPM. | |
| Vendor-documented | flutter_branch_sdk | pub.dev | 9.3.7 | MIT | iOS 13.0; Android API 21 | Source | Install docs | Branch documents this plugin; it is published on pub.dev by an individual maintainer. | |
| Official | kochava_measurement | pub.dev | 5.0.0 | Proprietary (Kochava terms) | iOS 15.5; Android API 21 | Source | Install docs | Legacy package kochava_tracker (2.6.0, 2024) is superseded. | |
| Official | linkrunner | pub.dev | 4.4.2 | MIT | iOS 15.0; Android API 21 | Source | Install docs | ||
| Official | singular_flutter_sdk | pub.dev | 1.9.1 | MIT | iOS 12.0; Android API 21 | Source | Install docs | ||
| Official | tenjin_plugin | pub.dev (publisher tenjin.com) | 1.5.0 | BSD-3-Clause | iOS 12.0; Android API 21 | Source | Install docs | Plugin bundles Install Referrer, AAID and App Set ID as transitive dependencies. |
"Not published" means no primary source states the value; it does not mean there is no minimum. Registry and repo links are for reference.
What the SDK needs from you
The setup steps that apply to any attribution SDK in a Flutter app. Each vendor datasheet lists that vendor's own requirements.
- InstallRun
flutter pub add <package>. Check who publishes it on pub.dev: a verified vendor publisher is the official route; an individual publisher may be a vendor-endorsed wrapper or a community port. - Minimum versionsRaise
platform :iosinios/PodfileandminSdkinandroid/app/build.gradleto at least what the plugin's podspec and Gradle file ask for. - Android permissions
INTERNETandACCESS_NETWORK_STATEcome from the plugin's manifest in most cases. Apps targeting Android 13 or later needcom.google.android.gms.permission.AD_IDto read the advertising ID. - Play Install ReferrerSeveral Flutter plugins bundle the Install Referrer library as a dependency of their Android SDK; others ask you to add it to
build.gradle. - ATT promptAdd
NSUserTrackingUsageDescriptiontoios/Runner/Info.plist. Show the prompt from Dart (the plugin may expose a method) or with a separate ATT package, before the SDK sends its first event if you want the IDFA on the install. - Deep linksEnable Associated Domains in Xcode for universal links and add an App Links intent filter to
AndroidManifest.xml. Flutter's own deep link handling can intercept links, so follow the vendor's note on turning it off if the SDK should receive them.
Questions
Which MMPs have an official Flutter SDK?
8 of the 9 MMPs tracked here publish an official Flutter SDK: Adjust, Airbridge, AppMetrica, AppsFlyer, Kochava, Linkrunner, Singular and Tenjin. Branch documents a route maintained by someone else.
How do I install an MMP SDK in a Flutter app?
flutter pub add the package, then check the iOS deployment target in the Podfile and minSdk in android/app/build.gradle.
Is every Flutter MMP plugin published by the vendor?
No. Branch documents a Flutter plugin that is published on pub.dev by an individual maintainer rather than by Branch itself. The table marks this as vendor-documented rather than vendor-published.
Does Flutter's built-in deep linking conflict with an MMP SDK?
It can. When Flutter's deep linking flag is on, the framework may handle a universal link before the attribution SDK sees it, so vendors' docs often tell you to turn it off or hand the link to the SDK.
What is an MMP SDK?
An MMP SDK is the library a mobile measurement partner asks you to add to your app. It records the first open, in-app events and deep link opens, and sends them to the MMP so installs can be matched to the ad or link that drove them.
Is every MMP SDK open source?
No. Many wrappers and SDKs are MIT licensed, but some native SDKs are proprietary: AppsFlyer's native iOS and Android SDKs, Kochava's SDKs and AppMetrica's Flutter plugin are published under proprietary terms. The licence column in each table shows what the registry or repository states.
Other frameworks
- FW-RNReact Nativenpm install the vendor package, then run pod install in the ios folder. Autolinking wires up the native side.9 of 9 official
- FW-EXExponpx expo install the package, add its config plugin to app.json, then npx expo prebuild and run a development build. Expo Go cannot load these native SDKs.6 of 9 official
- FW-UNUnityAdd the package by Git URL in Unity Package Manager or import the .unitypackage, then resolve native dependencies (often with EDM4U) before building for iOS and Android.8 of 9 official
- FW-CPCapacitornpm install the plugin, then npx cap sync to copy it into the iOS and Android projects.4 of 9 official
- FW-CDCordovacordova plugin add the package, then rebuild both platforms.7 of 9 official
- FW-IOSiOS (native)Add the Swift package in Xcode or the pod to your Podfile, then initialise the SDK early in the app's launch.9 of 9 official
- FW-ANDAndroid (native)Add the artifact to your Gradle dependencies (and the vendor's Maven repository if it is not on Maven Central), then initialise the SDK in Application.onCreate.9 of 9 official
- FW-WEBWebAdd the vendor's script tag or npm package to the site, then initialise it with your app or project key.7 of 9 official