Configuration for Android SDK
This page provides an overview of all configuration parameters for the SDK. You can either configure the SDK in code using an ExponeaConfiguration object or in a file called exponea_configuration.json inside the assets folder of your application.
Refer to Initialize the SDK for instructions.
Configuration parameters
-
integrationConfig- Use this property to set your integration configuration.
- Use
ProjectConfigto set up integration with a project usingprojectToken,authorizationandbaseUrl, orStreamConfigto set up Event stream integration usingstreamIdandbaseUrl. - Example:
integrationConfig = ProjectConfig( baseUrl = "https://api.exponea.com", projectToken = "YOUR_PROJECT_TOKEN", authorization = "Token YOUR_API_KEY" )or
integrationConfig = StreamConfig( baseUrl = "https://api.exponea.com", streamId = "YOUR_STREAM_ID" ) -
projectToken- Deprecated - Please use
integrationConfigproperty instead. - Your project token. You can find this in the Engagement web app under
Project settings>Access management>API.
- Deprecated - Please use
-
authorization- Deprecated - Please use
integrationConfigproperty instead. - Format
"Token <token>"where<token>is an Engagement API key. - The token must be an Engagement public key. See Mobile SDKs API Access Management for details.
- For more information, refer to Exponea API documentation.
- Deprecated - Please use
-
baseURL- Deprecated - Please use
integrationConfigproperty instead. - 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.
- Deprecated - Please use
-
projectRouteMap- Deprecated - please use
integrationRouteMapproperty instead. - If you need to track events into more than one project, you can define project information for "event types" which should be tracked multiple times.
Example:var projectRouteMap = mapOf<EventType, List<ExponeaProject>> ( EventType.TRACK_CUSTOMER to listOf( ExponeaProject( "https://api.exponea.com", "YOUR_PROJECT_TOKEN", "Token YOUR_API_KEY" ) ) )
- Deprecated - please use
-
integrationRouteMap- If you need to track events into more than one project, you can define integration configuration for "event types" which should be tracked multiple times.
- Only applicable when
integrationConfigisProjectConfig. Ignored forStreamConfig. - Example:
var integrationRouteMap = mapOf<EventType, List<ProjectConfig>> ( EventType.TRACK_CUSTOMER to listOf( ProjectConfig( "https://api.exponea.com", "YOUR_PROJECT_TOKEN", "Token YOUR_API_KEY" ) ) )
-
defaultProperties- A list of properties to be added to all tracking events.
- Default value:
nil
-
allowDefaultCustomerProperties- Flag to apply
defaultPropertieslist toidentifyCustomertracking event - Default value:
true
- Flag to apply
-
automaticSessionTracking- Flag to control the automatic tracking of
session_startandsession_endevents. - Default value:
true
- Flag to control the automatic tracking of
-
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.
- This value is used to calculate the session timing.
- Default value:
60seconds. - Read more about Tracking Sessions
-
automaticPushNotification- Controls if the SDK will handle push notifications automatically.
- Default value:
true
-
pushIcon- Icon to be displayed in a push notification.
- Refer to https://developer.android.com/design/ui/mobile/guides/home-screen/notifications#notification-header for details.
-
pushAccentColor- Accent color of push notification. Changes the color of the small icon and the notification buttons. For example:
Color.GREEN. - This is a color ID, not a resource ID. When using colors from resources you must specify the resource, for example:
context.resources.getColor(R.color.something). - Refer to https://developer.android.com/design/ui/mobile/guides/home-screen/notifications#notification-header for details.
- Accent color of push notification. Changes the color of the small icon and the notification buttons. For example:
-
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.
-
tokenTrackFrequency- 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)DAILY- tracks push token once per day
-
requirePushAuthorization- Deprecated - This property is no longer used and will be removed in a future SDK release.
- The SDK now always tracks the push token, regardless of this flag. The token is tracked through the
notification_stateevent, whosevalidanddescriptionproperties reflect the user's current notification permission status. Learn more about Token tracking via notification_state event.
-
maxTries- 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.
- Only applicable when
integrationConfigisProjectConfig. Ignored forStreamConfig. - Refer to the Authorization for Android SDK documentation for details.
-
inAppContentBlocksPlaceholders- If set, all In-app content blocks for Android SDK will be prefetched right after the SDK is initialized.
-
allowWebViewCookies- Flag to enable or disable cookies in WebViews.
- Default value:
false -
Disclaimer:
- For security purposes, cookies are by default disabled in WebViews.
- This setting has effect on all WebViews in the application, NOT ONLY the ones used by the SDK.
- DO NOT CHANGE THIS SETTING unless you know the risks associated with enabling and storing cookies.
- By changing this setting and enabling cookies in WebViews you take full responsibility for any security vulnerabilities or incidents caused by them.
-
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,anonymize()generates a newdevice_idfor the anonymous customer. - Default value:
false
- If
