The Thunderhead ONE SDK React Native Module for iOS and Android.
To install the ONE React Module, navigate to your app’s folder and run the following command:
// yarn
yarn add react-native-one
// npm
npm install react-native-oneFor iOS, run pod install in Terminal from the iOS project to install the Thunderhead native SDK dependency.
// navigate to iOS project folder
pod installNote:
- Requires iOS 9+.
 
For Android, add the Thunderhead SDK repository url and packagingOptions to your app gradle file.
android {
  // add packagingOptions under the `android` section.
  packagingOptions {
    pickFirst '**/*.so'
  }
}
repositories {
  maven {
   url 'https://thunderhead.mycloudrepo.io/public/repositories/one-sdk-android'
  }
}Note:
- Requires minimum API level 21+.
 
To initialize the ONE React Native Module, call the following method:
import { NativeModules } from 'react-native';
const One = NativeModules.One;
export const ONE_PARAMETERS = {
  "siteKey": "<YOUR-SITE-KEY>",
  "touchpointUri" : "<YOUR-TOUCHPOINT-URI>",
  "apiKey" : "<YOUR-API-KEY>",
  "sharedSecret" : "<YOUR-SHARED-SECRET>",
  "userId" : "<YOUR-USER-ID>",
  "adminMode" : false,
  "hostname" : "<YOUR-HOSTNAME>"
}
One.init(
  ONE_PARAMETERS.siteKey,
  ONE_PARAMETERS.touchpointUri,
  ONE_PARAMETERS.apiKey,
  ONE_PARAMETERS.sharedSecret,
  ONE_PARAMETERS.userId,
  ONE_PARAMETERS.adminMode,
  ONE_PARAMETERS.hostname
);- See example of usage here
 
To send an Interaction request without properties, call the following method:
One.sendInteraction("/interactionPath", null);- See example of usage here
 
To send an Interaction request with properties, call the following method:
One.sendInteraction("/interactionPath", {key: 'value'});- See example of usage here
 
To send a response code, call the following method:
One.sendResponseCode("/interactionPath", "yourResponseCode");- See example of usage here
 
To get the tid for the current app, call the following public method:
One.getTid();- See example of usage here
 
To opt an end-user out of all tracking options, when the end-user does not give permission to be tracked in the client app, call the following method:
// Opts out of all tracking options.
One.optOut(true);To opt back in, call the following method:
// Opt in for all tracking options.
One.optOut(false);To opt an end-user out of city/country level tracking, call the following method:
// Calling this will opt the end-user back in for all tracking.
One.optOutCityCountryDetection(true);To opt an end-user out of all keychain Tid storage, call the following method:
One.optOutKeychainTidStorage(true);To configure logging, call the following method:
One.enableLogging(true)- See example of usage here
 
The Thunderhead team is available 24/7 to answer any questions you have. Just submit a ticket here or visit our docs page for more detailed installation and usage information.
For Salesforce Marketing Cloud Interaction Studio questions, please submit a support ticket via https://help.salesforce.com/home