Improve session replay in a native Android app

The Connect SDK for Android is configured through two files in your app's assets/ directory:

  • ConnectBasicConfig.properties — primary SDK settings.
  • EOCoreAdvancedConfig.json — advanced data transport and session settings.

Both files are optional — the SDK ships with built-in defaults for all settings. Override only what you need to change.

Languages: Kotlin and Java

Availability: Pro, Premium, and Ultimate

ConnectBasicConfig.properties

App key and collector URL

PropertyDefaultDescription
AppKeyYour Connect application key. If set here, you can pass null to Connect.enable().
PostMessageUrlYour Connect collector URL. If set here, you can pass null to Connect.enable().

Kill switch

The kill switch lets you remotely disable the SDK on users' devices without releasing a new app version.

PropertyDefaultDescription
KillSwitchEnabledfalseSet to true to enable the kill switch. Required for production — see Prepare for production.
KillSwitchUrlYour kill switch URL. Format: https://{collector_host}/collector/switch/{app_key}.
KillSwitchMaxNumberOfTries3Number of attempts to reach the kill switch URL before giving up.
KillSwitchTimeInterval5Time in seconds to wait between kill switch attempts.

Screenshot settings

PropertyDefaultDescription
ScreenshotFormatJPGScreenshot format. Valid values: JPG, PNG. PNG ignores PercentToCompressImage.
PercentOfScreenshotsSize40Percentage of the original screen dimensions at which screenshots are submitted. Range: 1–100. Lower values reduce data size but may affect replay clarity.
PercentToCompressImage100JPG compression percentage. Range: 1–100. Only applies to JPG format.
ScreenShotPixelDensity1.5Pixel density used when taking screenshots. Valid values: 1, 1.5, 2, 3.

Screen layout capture

PropertyDefaultDescription
LogViewLayoutOnScreenTransitiontrueWhether to capture the screen layout on each screen transition.
GetImageDataOnScreenLayoutfalseWhether to include image data from ImageView elements in layout captures.

Gesture capture

PropertyDefaultDescription
SetGestureDetectortrueWhether to enable gesture capture. Requires Connect.dispatchTouchEvent() to be called from your base activity.
CaptureNativeGesturesOnWebviewfalseWhether to capture native gestures on WebView elements.

Session settings

PropertyDefaultDescription
SessionTimeout30Session timeout in minutes. Set to 0 to rely on cookie expiry instead.
SessionTimeoutKillSwitchfalseWhether to request a new session ID from the kill switch URL on session timeout.

Cookie settings

Used for session identification. Modify only if your app requires custom sessionization.

PropertyDefaultDescription
CookieUrlURL used to set the session cookie.
CookieParamTLTSIDCookie parameter name for the session ID.
CookiePath/Cookie path.
CookieDomainCookie domain.
CookieExpiresfalseWhether to add an expiry to the cookie. Expiry = current time + SessionTimeout.
CookieSecurefalseWhether to create a secure cookie (HTTPS only).
CookieExpiresFormatASCTIMEDate format for cookie expiry. Valid values: ASCTIME, RFC1036, RFC1123.

Geolocation

PropertyDefaultDescription
LogLocationEnabledtrueWhether to enable automatic geolocation logging on app start.
LogLocationTries3Number of attempts to obtain a location fix before giving up.
LogLocationTimeout30Time in seconds to wait for a location fix on each attempt.

Logging

PropertyDefaultDescription
LoggingLevel3Log level for SDK output. 0 = none, 1 = error, 2 = warning, 3 = verbose.
DisplayLoggingfalseWhether to print SDK log output to Logcat. Set to true for debugging. Disable before shipping to production.

EOCoreAdvancedConfig.json

Advanced data transport and session settings. Override by placing a EOCoreAdvancedConfig.json file in your app's assets/ directory.

Data transport

PropertyDefaultDescription
CachedFileMaxBytesSize400000Maximum size in bytes of each cached data file (~400 KB).
MaxNumberOfFilesToCache5Maximum number of data files to cache when the collector is unreachable. Total potential cache: ~2 MB.
PostMessageMaxBytesSize2048000Maximum size in bytes of each outgoing message (~2 MB).
PostMessageTimeout3000Timeout in milliseconds for establishing a connection to the collector.
PostMessageSocketTimeout3000Timeout in milliseconds for waiting for a response from the collector.
CompressPostMessagetrueWhether to gzip-compress outgoing messages.
BufferPercent20Percentage of CachedFileMaxBytesSize to use as an in-memory buffer before writing to disk.

Session and orientation

PropertyDefaultDescription
ApplicationBackgroundTimeInterval60Time in seconds the app can spend in the background before the session is considered ended.
OrientationSensorDelay100000Delay in microseconds between orientation sensor readings.
OrientationDelayNotificationToModules1000Delay in milliseconds before notifying modules of an orientation change.
TurnOffCorrectOrientationUpdatesfalseWhether to disable orientation correction updates.
DefaultOrientation0Default orientation when none can be detected. 0 = portrait.
ApplicationInBackgroundEnabledtrueWhether to continue capturing data when the app is in the background.