Packages and Configuration Options

Updated

How it works

With our Expo plugin, you’ll add configuration options in two places:

  1. In your app.json or app.config.js files, you’ll add configuration options that affect the native files we generate when you run the prebuild.
  2. In your React Native app, you’ll add configuration options that affect the SDK at runtime.

Configuring the Expo Plugin

To use the Expo plugin, you’ll need to add a customerio-expo-plugin entry to your App.json

{
   "plugins": [
      [
         "customerio-expo-plugin",
         {
            "android": {
               "googleServicesFile": "./files/google-services.json"
            },
            "ios": {
               "pushNotification": {
                  "useRichPush": true,
                  "env": {
                     "cdpApiKey": "<apiKey>",
                     "region": "<region>"
                  }
               }
            }
         }
      ]
   ]
}
OptionTypeDefaultDescription
androidobjectRequired if you want to setup Android even if it is empty. Eg ("android": {}).
android.googleServicesFilestringSet the path to your google-services.json file.
android.setHighPriorityPushHandlerbooleanThis is optional, if you choose to use a 3rd party plugin to handle notification permissions, but want our SDK to handle the notifications.
iosobjectRequired: The parent object for iOS settings, including your initialization keys.
ios.pushNotificationobjectRequired Enables push notifications for iOS.
ios.pushNotification.useRichPushbooleanfalseEnables rich push features for iOS (images and links).
ios.pushNotification.envobjectRequired Contains your API key (env.cdpApiKey) and region (env.region with one of eu or us) information.
ios.useFrameworksstring(Optional) Allows the plugin to work with static libraries. Options are static and dynamic
ios.disableNotificationRegistrationbooleantrue(Optional) Removes the registerPushNotification handler and allows you to control notification permission requests. We recommend that you set this to true (default) if you have customerio-reactnative version >= 2.2.0 installed.
ios.showPushAppInForegroundbooleantrueSet to true if you want push notifications sent by Customer.io to be shown when your app is in the foreground.
ios.handleDeeplinkInKilledStatebooleanfalseSet to true if you want the Customer.io SDK to handle deep links when your app is in a killed/closed state.

SDK packages

The SDK consists of a few packages. You must use the CioConfig and CustomerIO packages to configure and initialize the SDK in your React Native app.

Package ProductRequired?Description
CustomerIOThe main SDK package. Used to initialize the SDK and call the SDK’s methods.
CioConfigConfigure the SDK including in-app messaging support.
CioRegionUsed inside the CioConfig.region option to declare your region—EU or US.
CioLogLevelUsed inside the CioConfig.logLevel option to set the level of logs you can view from the SDK.

React configuration options

You can determine global behaviors for the SDK in using CioConfig package. You must provide configuration options before you initialize the SDK; you cannot declare configuration changes after you initialize the SDK.

Import CioConfig and then set configuration options to configure things like your logging level and whether or not you want to automatically track device attributes, etc. Note that the logLevel option requires the CioLogLevel package and the region option requires the CioRegion package.

import {
  CioLogLevel, CioRegion, CustomerIO, CioConfig
} from 'customerio-reactnative';

const App = () => {

useEffect(() => {
   const config: CioConfig = {
      cdpApiKey: 'CDP API Key', // Mandatory
      migrationSiteId: 'siteId', // Required if migrating from an earlier version
      region: CioRegion.US,
      logLevel: CioLogLevel.Debug,
      trackApplicationLifecycleEvents: true,
      inApp: {
         siteId: 'site_id',
      },
      push: {
         android: {
            pushClickBehavior: PushClickBehaviorAndroid.ResetTaskStack
         }
      }
   };
   CustomerIO.initialize(config)
   }, [])
}
OptionTypeDefaultDescription
cdpApiKeystringRequired: the key you'll use to initialize the SDK and send data to Customer.io
migrationSiteIdstringRequired if you're updating from 3.x: the credential for previous versions of the SDK. This key lets the SDK send remaining tasks to Customer.io when your audience updates your app.
regionCioRegion.EU or CioRegion.USCioRegion.USRequires the CioRegion package. You must set the region your account is in the EU (CioRegion.EU).
autoTrackDeviceAttributesbooleantrueAutomatically gathers information about devices, like operating system, device locale, model, app version, etc
trackApplicationLifecycleEventsbooleantrueSet to false if you don't want the app to send lifecycle events
logLevelstringerrorRequires the CioLogLevel package. Sets the level of logs you can view from the SDK. Set to debug or info to see more logging output.
inAppobjectRequired for in-app support. This object takes a siteId property, determining the workspace your in-app messages come from.
pushobjectTakes a single option called PushClickBehaviorAndroid. This object and option controls how your app behaves when your Android audience taps push notifications.
Copied to clipboard!
  Contents
Current release
 2.0.0-beta.1
Is this page helpful?