Unified React Native Setup

The unified React Native setup works with Marketing Cloud Engagement and Marketing Cloud Mobile App Messaging and gives you a single, consistent way to integrate either product with the React Native module.

If you’re an existing Marketing Cloud Engagement customer integrated to the Engagement-specific React Native plugin, and if you want to migrate to the React Native unified plugin, see Migrate to React Native Unified Plugin.

Note

Who Should Use This Setup 

Use this setup if:

  • You’re integrating React Native for the first time.
  • You’re implementing MobilePush (Marketing Cloud Engagement) with React Native and you aren’t already on the Engagement-specific React Native module.
  • You’re implementing Mobile App Messaging with React Native.

Prerequisites 

  • Make sure these components meet the baseline requirements:
ComponentsMinimum Requirement
React Native0.85.1 or later (with New Architecture enabled)
React19.0 or later (tested against 19.2.3)
Node.js20 or later
iOS15.1 or later (Xcode 16 or later)
AndroidminSdk 26, compileSdk 36 or later
Ruby (CocoaPods)3.1.0 or later

The React Native unified plugins run only on React Native New Architecture (TurboModules) and don’t support the bridge architecture. Make sure you enable the new architecture app-wide before adopting these plugins. For more information, see About the New Architecture.

Important

Select your Package 

Integrating Marketing Cloud features into a React Native app required stitching together separate SDKs and bridge modules per feature. This React Native unified plugin consolidates Push, In-App Messaging, Marketing Cloud Engagement, and Mobile App Messaging in one consistent requestSdk() API. This way, you pick the product you need and additionally add the features that you actually use.

The React Native unified plugin offers these packages:

  • Product packages: Represent a Marketing Cloud product. Depending on app usage, install either or both @sfmc/react-native-marketingcloudsdk (Marketing Cloud Engagement) and @sfmc/react-native-mobileappmessaging (Mobile App Messaging).
  • Core package: (@sfmc/react-native-sfmc-core) is the core foundational dependency that both product packages depend on. When you install a product package, the system installs this core package automatically.
  • Feature packages: (@sfmc/react-native-push and @sfmc/react-native-iam) are optional add-ons. Install only the feature that your app needs.
PackageTypeDescription
@sfmc/react-native-sfmc-coreCoreCore module for identity management, custom attributes, structured event tracking, and SDK logging.
@sfmc/react-native-marketingcloudsdkProductProduct module for Marketing Cloud Engagement including inbox, tags, attributes, analytics, and registration management.
@sfmc/react-native-mobileappmessagingProductProduct module for Marketing Cloud Mobile App Messaging including analytics and registration management.
@sfmc/react-native-pushFeatureModule for push registration and push notification.
@sfmc/react-native-iamFeatureModule for in-app messaging SDK readiness and programmatic in-app message display.

@sfmc/react-native-iam (In-App Messaging) and @sfmc/react-native-mobileappmessaging (Mobile App Messaging) packages are not the same and are not interchangeable. In-App Messaging delivers messages inside your running app. Whereas, Mobile App Messaging is a Marketing Cloud product for device registration and analytics.

Important

Architecture 

  • The unified plugins require React Native 0.85.1 with the New Architecture (TurboModules). The plugins don’t support the bridge architecture.
  • TurboModule specs are codegen-driven. Each package defines a Native<Name>Module.ts specification, and React Native codegen generates the Java and Objective-C++ bindings.
  • Native Package Identifiers: The plugin’s native code is located under com.salesforce.mc.{sfmccore, push, iam, marketingcloudsdk, mobileappmessaging} on Android, with equivalent module prefixes on iOS. Use these identifiers when you set up ProGuard/R8 keep rules or diagnose native stack traces.

Next Steps