The Connect SDK for Android is configured through three files in your app's assets/ directory:
- ConnectBasicConfig.properties — Connect-layer settings (credentials, kill switch, capture behavior, sessionization).
- EOCoreBasicConfig.properties — EOCore-layer settings (Logcat output, local cache, posting cadence).
- EOCoreAdvancedConfig.json — advanced data transport, session, and orientation settings.
All three files are optional — the SDK ships with built-in defaults for every setting. To override a default, create the file manually in your app's assets/ directory and add only the keys you want to change. Anything you do not include keeps its bundled default.
Languages: Kotlin and Java
Availability: Pro, Premium, and Ultimate
| Property | Default | Description |
|---|
AppKey | — | Your Connect application key. If set here, you can pass null to Connect.enable(). |
PostMessageUrl | — | Your Connect collector URL. If set here, you can pass null to Connect.enable(). |
The kill switch lets you remotely disable the SDK on users' devices without releasing a new app version.
| Property | Default | Description |
|---|
KillSwitchEnabled | false | Set to true to enable the kill switch. Required for production — see Prepare for production. |
KillSwitchUrl | — | Your kill switch URL. Format: https://{collector_host}/collector/switch/{app_key}. |
KillSwitchMaxNumberOfTries | 3 | Number of attempts to reach the kill switch URL before giving up. Must be at least 1. |
KillSwitchTimeInterval | 5 | Time in seconds to wait between kill switch attempts. |
The SDK captures screenshots for session replay automatically and through Connect.takeScreenShot(). These settings control the format, size, and compression of every captured image.
| Property | Default | Description |
|---|
ScreenshotFormat | JPG | Screenshot format. Valid values: JPG, PNG. PNG ignores PercentToCompressImage. |
PercentOfScreenshotsSize | 40 | Percentage of the original screen dimensions at which screenshots are submitted. Range: 1–100. Lower values reduce data size but may affect replay clarity. |
PercentToCompressImage | 80 | JPG compression percentage. Range: 1–100. Only applies to JPG format. |
ScreenShotPixelDensity | 1.5 | Pixel density used when taking screenshots. Valid values: 1, 1.5, 2, 3. |
| Property | Default | Description |
|---|
LogViewLayoutOnScreenTransition | true | Whether to capture the screen layout on each screen transition. |
GetImageDataOnScreenLayout | false | Whether to include image data from ImageView elements in layout captures. |
| Property | Default | Description |
|---|
SetGestureDetector | true | Whether to enable gesture capture. Requires Connect.dispatchTouchEvent() to be called from your base activity. |
CaptureNativeGesturesOnWebview | false | Whether to capture native gestures on WebView elements. |
| Property | Default | Description |
|---|
SessionTimeout | 30 | Session timeout in minutes. Set to 0 to rely on cookie expiry instead. |
SessionTimeoutKillSwitch | false | Whether to request a new session ID from the kill switch URL on session timeout. |
Used for session identification. Modify only if your app requires custom sessionization.
| Property | Default | Description |
|---|
CookieUrl | — | URL used to set the session cookie. |
CookieParam | TLTSID | Cookie parameter name for the session ID. |
CookiePath | / | Cookie path. |
CookieDomain | — | Cookie domain. |
CookieExpires | false | Whether to add an expiry to the cookie. Expiry = current time + SessionTimeout. |
CookieSecure | true | Whether to create a secure cookie (HTTPS only). |
CookieExpiresFormat | ASCTIME | Date format for cookie expiry. Valid values: ASCTIME, RFC1036, RFC1123. |
| Property | Default | Description |
|---|
disableTLTDID | false | Whether to suppress the SDK's device-ID header (X-Connect-TLTDID) and the TLTDID value appended to outgoing cookies. Set to true if compliance or privacy requirements prohibit persistent device identifiers. Leaving it false (the default) is correct for most apps — the device ID lets Connect tie multiple sessions from the same device into a single device profile. |
Default log levels used by capture methods when no level is passed explicitly. The numeric scale matches LoggingLevel: 1 = error, 2 = warning, 3 = info, 5 = verbose.
| Property | Default | Description |
|---|
PrintScreen | 3 | Default log level for Connect.takeScreenShot() calls when no level is specified. |
Connection | 3 | Default log level for Connect.logConnection() calls when no level is specified. |
MaxStringsLength | 300 | Maximum length, in characters, for captured string values. Values longer than this are truncated. |
EOCore-layer settings that control Logcat output, on-device caching, and how often the SDK posts batched data to the collector.
| Property | Default | Description |
|---|
LoggingLevel | 3 | Severity threshold for what the SDK collects and posts. 1 = error, 2 = warning, 3 = info, 5 = verbose. |
DisplayLogging | true | Whether to print SDK output to Logcat. Disable before shipping to production — ERROR-level messages continue to surface. |
Controls how the SDK persists batched data on the device when the collector is unreachable.
| Property | Default | Description |
|---|
PersistLocalCache | true | Whether to persist cached messages to the app's sandbox so they survive process restarts. |
CachingLevel | 3 | Severity threshold for what the SDK writes to the local cache. Same scale as LoggingLevel. |
Controls how the SDK groups and dispatches captured messages to the collector. Defaults match production-ready values; override only if your network conditions or data volume require tuning.
| Property | Default | Description |
|---|
PostMessageLevelWiFi | 3 | Minimum severity that triggers a post over Wi-Fi. Messages below this level are buffered. |
PostMessageLevelCellular | 3 | Minimum severity that triggers a post over cellular networks. Messages below this level are buffered. |
ManualPostEnabled | false | If true, the SDK does not post on its own — your app must call Connect.forcePost() to flush. If false, the SDK posts on its own cadence (see DoPostOnIntervals settings). |
DoPostOnIntervals | true | Whether the SDK posts on a fixed interval. Only applies when ManualPostEnabled=false. |
PostMessageTimeInterval | 30 | Time in seconds between posts when DoPostOnIntervals=true. |
Advanced data transport and session settings. Override by placing an EOCoreAdvancedConfig.json file in your app's assets/ directory.
| Property | Default | Description |
|---|
CachedFileMaxBytesSize | 400000 | Maximum size in bytes of each cached data file (~400 KB). |
MaxNumberOfFilesToCache | 5 | Maximum number of data files to cache when the collector is unreachable. Total potential cache: ~2 MB. |
PostMessageMaxBytesSize | 2048000 | Maximum size in bytes of each outgoing message (~2 MB). |
PostMessageTimeout | 3000 | Timeout in milliseconds for establishing a connection to the collector. |
PostMessageSocketTimeout | 3000 | Timeout in milliseconds for waiting for a response from the collector. |
CompressPostMessage | true | Whether to gzip-compress outgoing messages. |
BufferPercent | 20 | Percentage of CachedFileMaxBytesSize to use as an in-memory buffer before writing to disk. |
| Property | Default | Description |
|---|
ApplicationBackgroundTimeInterval | 60 | Time in seconds the app can spend in the background before the session is considered ended. |
OrientationSensorDelay | 100000 | Delay in microseconds between orientation sensor readings. |
OrientationDelayNotificationToModules | 1000 | Delay in milliseconds before notifying modules of an orientation change. |
TurnOffCorrectOrientationUpdates | false | Whether to disable orientation correction updates. |
DefaultOrientation | 0 | Default orientation when none can be detected. 0 = portrait. |
ApplicationInBackgroundEnabled | true | Whether to continue capturing data when the app is in the background. |