---
title: MMP SDK Hub: Attribution SDKs by Framework
description: Which MMPs ship an official SDK for React Native, Flutter, Expo, Unity, Capacitor, Cordova, iOS, Android or web: packages, licences, minimum OS and docs.
url: https://mmpsdk.com/
---

# Find the attribution SDK for *your stack*

Pick a framework and see which mobile measurement partners publish an SDK for it: the package to install, its licence, the lowest OS version it supports and a link to the install docs.

**Short answer**

Of 81 framework and vendor pairs checked across 9 MMPs and 9 frameworks, 67 have an official SDK. React Native, Flutter, native iOS and native Android are covered by almost every vendor; Expo, Capacitor, Cordova and the web are where coverage splits. Airbridge, AppsFlyer, Kochava, Linkrunner and Singular publish official SDKs for at least 8 of the 9 frameworks.

## SDK picker

> Interactive tool (sdk picker): runs in the browser at https://mmpsdk.com/#sdk-picker. Its text content follows.

1. Choose your framework

2. Compare the SDKs

Official Vendor-documented Community only None found

| MMP | Status | Package | Registry | Version | Licence | Minimum OS | Repo | Install docs | Notes |
|---|---|---|---|---|---|---|---|---|---|
| [Adjust](https://mmpsdk.com/mmp/adjust/) | Official | [react-native-adjust](https://www.npmjs.com/package/react-native-adjust) | npm | 5.8.0 | MIT | iOS 12; Android API 21 | [Source](https://github.com/adjust/react_native_sdk) | [Install docs](https://dev.adjust.com/en/sdk/react-native) |  |
| [Airbridge](https://mmpsdk.com/mmp/airbridge/) | Official | [airbridge-react-native-sdk](https://www.npmjs.com/package/airbridge-react-native-sdk) | npm | 4.11.0 | MIT | Not published | Not public | [Install docs](https://help.airbridge.io/en/developers/react-native-sdk-v4) | A restricted variant airbridge-react-native-sdk-restricted is also published. |
| [AppMetrica](https://mmpsdk.com/mmp/appmetrica/) | Official | [@appmetrica/react-native-analytics](https://www.npmjs.com/package/@appmetrica/react-native-analytics) | npm | 4.2.0 | MIT | Android API 21; iOS follows React Native | [Source](https://github.com/appmetrica/appmetrica-react-native-plugin) | [Install docs](https://appmetrica.yandex.com/docs/en/sdk/react-native/analytics/quick-start) |  |
| [AppsFlyer](https://mmpsdk.com/mmp/appsflyer/) | Official | [react-native-appsflyer](https://www.npmjs.com/package/react-native-appsflyer) | npm | 7.0.2-v2 | MIT | iOS 13.0; Android API 21 (default) | [Source](https://github.com/AppsFlyerSDK/appsflyer-react-native-plugin) | [Install docs](https://dev.appsflyer.com/hc/docs/rn_installation) | The npm latest tag is 7.0.2-v2; release candidates are on a separate tag. |
| [Branch](https://mmpsdk.com/mmp/branch/) | Official | [react-native-branch](https://www.npmjs.com/package/react-native-branch) | npm | 7.0.0 | MIT | iOS 12.0; Android API 16 (default) | [Source](https://github.com/BranchMetrics/react-native-branch-deep-linking-attribution) | [Install docs](https://help.branch.io/developer-hub/react-native-basic-integration) |  |
| [Kochava](https://mmpsdk.com/mmp/kochava/) | Official | [react-native-kochava-measurement](https://www.npmjs.com/package/react-native-kochava-measurement) | npm | 5.0.0 | Proprietary (Kochava terms) | iOS 15.5; Android API 21 | [Source](https://github.com/Kochava/reactnative-kochavameasurement-releases) | [Install docs](https://support.kochava.com/articles/sdk-integration/48867-reactnative-sdk/) | Docs list React Native 0.80 as minimum; optional per-store modules ship as separate npm packages (e.g. react-native-kochava-measurement-google). |
| [Linkrunner](https://mmpsdk.com/mmp/linkrunner/) | Official | [rn-linkrunner](https://www.npmjs.com/package/rn-linkrunner) | npm | 3.4.2 | MIT | iOS 15.0; Android API 24 | [Source](https://github.com/RathodDarshil/rn-linkrunner) | [Install docs](https://docs.linkrunner.io/sdk/react-native?utm_source=mmpsdk&utm_medium=referral&utm_campaign=home) | iOS side depends on the LinkrunnerKit pod 4.3.2. |
| [Singular](https://mmpsdk.com/mmp/singular/) | Official | [singular-react-native](https://www.npmjs.com/package/singular-react-native) | npm | 4.3.1 | MIT | iOS 12.0; Android API 21 | [Source](https://github.com/singular-labs/react-native-sdk) | [Install docs](https://support.singular.net/hc/en-us/articles/360038415852) |  |
| [Tenjin](https://mmpsdk.com/mmp/tenjin/) | Official | [react-native-tenjin](https://www.npmjs.com/package/react-native-tenjin) | npm | 1.8.1 | MIT | Android API 24 (default); iOS follows React Native | [Source](https://github.com/tenjin/tenjin-react-native-sdk) | [Install docs](https://github.com/tenjin/tenjin-react-native-sdk#readme) | Wraps TenjinSDK 1.20.0 (iOS) and com.tenjin:android-sdk 2.0.2. |

9 of 9 MMPs publish an official React Native SDK: Adjust, Airbridge, AppMetrica, AppsFlyer, Branch, Kochava, Linkrunner, Singular and Tenjin.

[Full React Native page, with setup checklist](https://mmpsdk.com/frameworks/react-native/)

Runs in your browser; nothing you choose is sent anywhere. Vendors are listed A to Z. Checked 2 Nov 2026 against npm, pub.dev, CocoaPods, Maven Central, GitHub and each vendor's docs.

## Coverage: 9 MMPs by 9 frameworks

Each cell is the best route the vendor offers for that framework, checked 2 Nov 2026. Select a cell for the framework's full table.

Official Vendor-documented Community only None found

| MMP | [React Native](https://mmpsdk.com/frameworks/react-native/) | [Flutter](https://mmpsdk.com/frameworks/flutter/) | [Expo](https://mmpsdk.com/frameworks/expo/) | [Unity](https://mmpsdk.com/frameworks/unity/) | [Capacitor](https://mmpsdk.com/frameworks/capacitor/) | [Cordova](https://mmpsdk.com/frameworks/cordova/) | [iOS](https://mmpsdk.com/frameworks/ios/) | [Android](https://mmpsdk.com/frameworks/android/) | [Web](https://mmpsdk.com/frameworks/web/) | Official |
|---|---|---|---|---|---|---|---|---|---|---|
| [Adjust](https://mmpsdk.com/mmp/adjust/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Vendor-documented](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [None found](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 7 of 9 |
| [Airbridge](https://mmpsdk.com/mmp/airbridge/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Community only](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [AppMetrica](https://mmpsdk.com/mmp/appmetrica/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Community only](https://mmpsdk.com/frameworks/capacitor/) | [Community only](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [None found](https://mmpsdk.com/frameworks/web/) | 6 of 9 |
| [AppsFlyer](https://mmpsdk.com/mmp/appsflyer/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 9 of 9 |
| [Branch](https://mmpsdk.com/mmp/branch/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Vendor-documented](https://mmpsdk.com/frameworks/flutter/) | [Vendor-documented](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 7 of 9 |
| [Kochava](https://mmpsdk.com/mmp/kochava/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [None found](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [Linkrunner](https://mmpsdk.com/mmp/linkrunner/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Vendor-documented](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [Singular](https://mmpsdk.com/mmp/singular/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [None found](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [Tenjin](https://mmpsdk.com/mmp/tenjin/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [None found](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Community only](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [None found](https://mmpsdk.com/frameworks/web/) | 6 of 9 |

## Framework datasheets

- [FW-RN **React Native** npm install the vendor package, then run pod install in the ios folder. Autolinking wires up the native side. *9 of 9 official*](https://mmpsdk.com/frameworks/react-native/)
- [FW-FL **Flutter** flutter pub add the package, then check the iOS deployment target in the Podfile and minSdk in android/app/build.gradle. *8 of 9 official*](https://mmpsdk.com/frameworks/flutter/)
- [FW-EX **Expo** npx 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*](https://mmpsdk.com/frameworks/expo/)
- [FW-UN **Unity** Add 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*](https://mmpsdk.com/frameworks/unity/)
- [FW-CP **Capacitor** npm install the plugin, then npx cap sync to copy it into the iOS and Android projects. *4 of 9 official*](https://mmpsdk.com/frameworks/capacitor/)
- [FW-CD **Cordova** cordova plugin add the package, then rebuild both platforms. *7 of 9 official*](https://mmpsdk.com/frameworks/cordova/)
- [FW-IOS **iOS (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*](https://mmpsdk.com/frameworks/ios/)
- [FW-AND **Android (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*](https://mmpsdk.com/frameworks/android/)
- [FW-WEB **Web** Add the vendor's script tag or npm package to the site, then initialise it with your app or project key. *7 of 9 official*](https://mmpsdk.com/frameworks/web/)

## Vendor datasheets

- [VN-01 **Adjust** Official SDKs: React Native, Flutter, Unity, Cordova, iOS, Android and Web *7 of 9*](https://mmpsdk.com/mmp/adjust/)
- [VN-02 **Airbridge** Official SDKs: React Native, Flutter, Expo, Unity, Cordova, iOS, Android and Web *8 of 9*](https://mmpsdk.com/mmp/airbridge/)
- [VN-03 **AppMetrica** Official SDKs: React Native, Flutter, Expo, Unity, iOS and Android *6 of 9*](https://mmpsdk.com/mmp/appmetrica/)
- [VN-04 **AppsFlyer** Official SDKs: React Native, Flutter, Expo, Unity, Capacitor, Cordova, iOS, Android and Web *9 of 9*](https://mmpsdk.com/mmp/appsflyer/)
- [VN-05 **Branch** Official SDKs: React Native, Unity, Capacitor, Cordova, iOS, Android and Web *7 of 9*](https://mmpsdk.com/mmp/branch/)
- [VN-06 **Kochava** Official SDKs: React Native, Flutter, Expo, Unity, Cordova, iOS, Android and Web *8 of 9*](https://mmpsdk.com/mmp/kochava/)
- [VN-07 **Linkrunner** Official SDKs: React Native, Flutter, Expo, Capacitor, Cordova, iOS, Android and Web *8 of 9*](https://mmpsdk.com/mmp/linkrunner/)
- [VN-08 **Singular** Official SDKs: React Native, Flutter, Expo, Unity, Cordova, iOS, Android and Web *8 of 9*](https://mmpsdk.com/mmp/singular/)
- [VN-09 **Tenjin** Official SDKs: React Native, Flutter, Unity, Capacitor, iOS and Android *6 of 9*](https://mmpsdk.com/mmp/tenjin/)

## Guides

- [GD-01 **How to Choose an Attribution SDK** A practical checklist for engineers choosing an MMP's attribution SDK: framework coverage, who maintains the package, licence, minimum OS, deep links and ATT handling. *Guide*](https://mmpsdk.com/guides/how-to-choose-an-attribution-sdk/)
- [GD-02 **Expo and MMP SDKs: Managed vs Bare Workflow** How attribution SDKs work in Expo: why Expo Go can't run them, config plugins in the managed workflow, what changes in a bare project, and which MMPs support Expo. *Guide*](https://mmpsdk.com/guides/expo-and-mmp-sdks/)
- [GD-03 **What an MMP SDK Collects from a Device** The device signals, identifiers and events an attribution SDK typically sends, which ones need consent or a permission, and how to check what a specific SDK collects. *Guide*](https://mmpsdk.com/guides/what-an-mmp-sdk-collects/)

## Questions

**Which MMPs have an official Expo SDK?**

Airbridge, AppMetrica, AppsFlyer, Kochava, Linkrunner and Singular publish an Expo config plugin or Expo-ready package. Adjust and Branch document Expo through a community-maintained config plugin, and Tenjin have no Expo route. All of them need a development build rather than Expo Go.

**Which MMPs have an official Flutter SDK?**

Adjust, Airbridge, AppMetrica, AppsFlyer, Kochava, Linkrunner, Singular and Tenjin publish their own Flutter plugin on pub.dev. Branch documents a Flutter plugin that an individual maintainer publishes.

**Which MMP SDKs support Capacitor?**

Only AppsFlyer, Branch, Linkrunner and Tenjin publish an official Capacitor plugin. Airbridge and AppMetrica have community plugins, and Adjust, Kochava and Singular have none.

**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.

**What does official mean in these tables?**

Official means the vendor publishes the package itself. Vendor-documented means the vendor's docs describe the route but someone else maintains the package or plugin. Community only means only third-party packages exist.
