Configuration for React Native SDK
Full configuration reference for the React Native SDK
This page provides an overview of all configuration parameters for the SDK. In addition to the universal parameters, there are Android-specific and iOS-specific parameters.
Refer to Initialize the SDK for instructions.
Configuration parameters
The following parameters are specified in an Configuration object. Refer to src/Configuration.ts for the complete interface definition.
-
integrationConfig(required in new integrations)- Use this property to set your integration configuration.
- Use
ProjectConfigto set up integration with a standard Engagement project, orStreamConfigto set up Data hub event stream integration. ProjectConfigfields:projectToken(required): your Engagement project token, found in the Engagement web app under Project settings > Access management > APIauthorizationToken(required): your Engagement public API key; must be a public key (see Mobile SDKs API Access Management)baseUrl: API base URL; defaults tohttps://api.exponea.com
StreamConfigfields:streamId(required): your Data Hub stream ID, found in the Data Hub app under Event streams > select your stream > Access SecuritybaseUrl: base URL override for the stream endpoint; defaults tohttps://api.exponea.com
- The two modes are mutually exclusive; you can't provide both
projectTokenandstreamIdin the sameintegrationConfig. - Example with
ProjectConfig:integrationConfig: { projectToken: 'YOUR_PROJECT_TOKEN', authorizationToken: 'YOUR_API_KEY', baseUrl: 'https://api.exponea.com', } - Example with
StreamConfig:integrationConfig: { streamId: 'YOUR_STREAM_ID', baseUrl: 'https://api.exponea.com', }
-
projectToken(deprecated — useintegrationConfigwithProjectConfiginstead)- Your project token. You can find this in the Engagement web app under Project settings > Access management > API.
-
authorizationToken(deprecated — useintegrationConfigwithProjectConfiginstead)- Your Engagement API key.
- The token must be an Engagement public key. See Mobile SDKs API Access Management for details.
- For more information, refer to Engagement API documentation.
-
baseUrl(deprecated — useintegrationConfigwithProjectConfiginstead)- Your API base URL which can be found in the Engagement web app under Project settings > Access management > API.
- Default value
https://api.exponea.com. - If you have custom base URL, you must set this property.
-
integrationRouteMap- To track specific events to additional Engagement projects, define a mapping between event types and
ProjectConfigobjects. - The SDK always tracks each event to the default project and any projects it's mapped to.
- Applies only when
integrationConfigis aProjectConfig. Ignored forStreamConfig. - Example:
integrationRouteMap: { [EventType.BANNER]: [ { projectToken: 'other-project-token', authorizationToken: 'other-auth-token', }, ], }
- To track specific events to additional Engagement projects, define a mapping between event types and
-
projectMapping(deprecated — useintegrationRouteMapwithProjectConfiginstead)- If you need to track some events to a different Engagement project, you can define a mapping between event types and Engagement projects.
- The SDK always tracks each event to the default project and any projects it's mapped to.
- Example:
projectMapping: { [EventType.BANNER]: [ { projectToken: 'other-project-token', authorizationToken: 'other-auth-token', }, ], }
-
defaultProperties- A list of properties to include in all tracking events.
- You can change these properties at runtime by calling
Exponea.setDefaultProperties().
-
allowDefaultCustomerProperties- Flag to apply the
defaultPropertieslist toidentifyCustomertracking events. - Default value:
true
- Flag to apply the
-
automaticSessionTracking- Flag to control the automatic tracking of
session_startandsession_endevents. - Default value:
true
- Flag to control the automatic tracking of
-
requirePushAuthorization(deprecated — useios.requirePushAuthorizationinstead)- This property no longer has any effect on Android. Use
ios.requirePushAuthorizationfor iOS-specific behavior. - Default value:
true
- This property no longer has any effect on Android. Use
-
sessionTimeout- The session is the actual time spent in the app. It starts when the app is launched and ends when the app goes into the background.
- When the application goes into the background, the SDK doesn't track the end of the session right away but waits a bit for the user to come back before doing so. You can configure the timeout by setting this property.
- Read more about tracking sessions.
- Default value:
60
-
pushTokenTrackingFrequency- Indicates the frequency with which the SDK should track the push notification token to Engagement.
- Default value:
ON_TOKEN_CHANGE - Possible values:
ON_TOKEN_CHANGE- tracks the push token if it differs from a previously tracked one. The SDK also automatically refreshes thenotification_stateevent every 30 days, even when the token hasn't changed.EVERY_LAUNCH- tracks the push token once per app launch (process start). Some operations always trigger tracking regardless of this setting: manualtrackPushToken()calls, receiving a new token from FCM/HMS/APNs, and callinganonymize()orstopIntegration().DAILY- tracks push token once per day
-
flushMaxRetries- Controls how many times the SDK should attempt to flush an event before aborting. Useful for example in case the API is down or some other temporary error happens.
- The SDK will consider the data to be flushed if this number is exceeded and delete the data from the queue.
- Default value:
10
-
advancedAuthEnabled- If set, advanced authorization is used for communication with the Engagement APIs listed in Customer token authorization.
- Refer to the authorization documentation for details.
- Only applicable when
integrationConfigis aProjectConfig. If set totruewith aStreamConfigintegration, the SDK logs a warning and ignores the setting. For stream-based integrations, refer to SDK auth token authorization.
-
inAppContentBlockPlaceholdersAutoLoad- Automatically load the contents of in-app content blocks assigned to these Placeholder IDs.
-
manualSessionAutoClose- Determines whether the SDK automatically tracks
session_endfor sessions that remain open whenExponea.trackSessionStart()is called multiple times in manual session tracking mode. - Default value:
true
- Determines whether the SDK automatically tracks
-
applicationId- This
applicationIddefines a unique identifier for the mobile app within the Engagement project. Change this value only if your Engagement project contains and supports multiple mobile apps. - This identifier distinguishes between different apps in the same project.
- Your
applicationIdvalue must be the same as the one defined in your Engagement project settings. - If your Engagement project supports only one app, skip the
applicationIdconfiguration. The SDK will use the default value automatically. - Must be in a specific format, see rules:
- Starts with one or more lowercase letters or digits
- Additional words are separated by single hyphens or dots
- No leading or trailing hyphens or dots
- No consecutive hyphens or dots
- Maximum length is 50 characters
- E.g.
com.example.myapp,com-example-myapp,my-application1
- Default value:
default-application
- This
-
regenerateDeviceIdOnAnonymize- If
true, callingExponea.anonymize()generates a newdevice_idfor the new anonymous customer profile, so the device identifier no longer links the new profile to the previous customer's events. - Set this to
truewhen your privacy requirements call for a sign-out flow that produces two unlinkable customer profiles. The default (false) preserves the existing behaviour wheredevice_idpersists acrossanonymize()calls. - Default value:
false
- If
-
androidAndroidConfigurationobject containing Android-specific configuration parameters.
-
iosIOSConfigurationobject containing iOS-specific configuration parameters.
Android-specific configuration parameters
The following parameters are specified in an AndroidConfiguration object. Refer to src/Configuration.ts for the complete interface definition.
-
requirePushAuthorization(deprecated)- This property has no effect on Android. The SDK always tracks the push token. The
validanddescriptionproperties in thenotification_stateevent reflect the actual OS notification permission state.
- This property has no effect on Android. The SDK always tracks the push token. The
-
automaticPushNotifications- By default, the SDK will set up a Firebase service and try to process push notifications sent from the Engagement platform automatically. You can opt out by setting this to
false. - Default value:
true
- By default, the SDK will set up a Firebase service and try to process push notifications sent from the Engagement platform automatically. You can opt out by setting this to
-
pushIcon- Android resource ID of the icon to be used for push notifications.
-
pushIconResourceName- Android resource name of the icon to be used for push notifications. For example, if file
push_icon.pngis placed in your drawable of mipmap resources folder, use the filename without extension as a value.
- Android resource name of the icon to be used for push notifications. For example, if file
-
pushAccentColor- Accent color of push notification icon and buttons, specified as Color ARGB integer.
-
pushAccentColorRGBA- Accent color of push notification icon and buttons, specified by RGBA channels separated by comma.
- For example, to use the color blue, the string
"0, 0, 255, 255"should be entered.
-
pushAccentColorName- Accent color of push notification icon and buttons, specified by resource name.
- Any color defined in R class can be used.
- For example, if you defined your color as a resource
<color name="push_accent_color">#0000ff</color>, usepush_accent_coloras a value for this parameter.
-
pushChannelName- Name of the channel to be created for the push notifications.
- Only available for API level 26+. Refer to https://developer.android.com/training/notify-user/channels for details.
-
pushChannelDescription- Description of the channel to be created for the push notifications.
- Only available for API level 26+. Refer to https://developer.android.com/training/notify-user/channels for details.
-
pushChannelId- Channel ID for push notifications.
- Only available for API level 26+. Refer to https://developer.android.com/training/notify-user/channels for details.
-
pushNotificationImportance- Notification importance for the notification channel.
- Only available for API level 26+. Refer to https://developer.android.com/training/notify-user/channels for details.
-
httpLoggingLevel- Level of HTTP request/response logging.
iOS-specific configuration parameters
The following parameters are specified in an IOSConfiguration object. Refer to src/Configuration.ts for the complete interface definition.
-
requirePushAuthorization- Controls whether the SDK calls
registerForRemoteNotifications()automatically based on the OS-reported notification authorization status. - When
true(default), the SDK only callsregisterForRemoteNotifications()once the OS reportsauthorizedorprovisionalstatus (Apple documentation). Use this when your app should receive an APNs token only after the user grants notification permission. - When
false, the SDK callsregisterForRemoteNotifications()unconditionally on every launch, allowing the app to receive silent pushes regardless of the user's visible notification permission state. - The
validfield innotification_stateevents always reflects the actual OS authorization status, regardless of yourrequirePushAuthorizationsetting. - Default value:
true
- Controls whether the SDK calls
-
appGroup- App group used for communication between the main app and notification extensions. This is a required field for rich push notification setup.

