Changelog

Core

  • API calls made before SDK initialization will be queued until SDK start

Analytics

  • Implement capture Snapshot / Long Snapshot on Compose screens
  • Code refactor to improve robustness & quality
  • Fix an issue in Zoning where some elements cannot be zones
  • Fix incorrect screen names in Log Viz

Session Replay

  • Improve Session Replay link API on logs

Error Analysis

  • Update API Error data collection
  • Increase response body size limit to 5kb

Analytics

  • Fix an issue in Zoning that could impact some screens built with Compose

Session Replay

  • Display gesture events in Session Replay event stream
  • Fixed a StackOverflowError crash caused by a concurrency issue

Analytics

  • Improve the Long Snapshot capture, adding the support of more UI components

Session Replay

  • Add new callback API for updates on replay link
  • Deprecate existing API to get replay link

Analytics

  • Downgraded dependencies, so that consumers of the library artifact can stick with compileSdk 33 (compose requires compileSdk 34)
  • Compose beta: Added support for Jetpack Compose 1.6.0
  • Fixed a crash for WebViews when optIn or optOut was not called from main thread

Session Replay

  • Change Session Replay start behavior (starting processor only once after first screen view event)
  • Fixed a crash on Protobuf messages serialization

Analytics

  • Fixed performance issue caused by SDK initialization on app start-up
  • Add capability to Zoning when capturing Long Snapshot of vertically scrollable Compose content
  • Re-enable regular snapshot for Compose
  • Fixed a crash: Port out of range

Error Analysis

  • Remove Error Analysis Maven artifact; It’s now embedded in the Main Android SDK artifact
  • Remove Apache HTTP Client support

Session Replay

  • Fixed an out-of-sync issue with Flutter, occurring in the first screen view and resulting in a blank screen.
  • Introduction of Flutter notification for CSInApp states

Analytics

  • Exposure metrics feature is now part of the SDK (Beta phase). It will help you measure engagement directly in zoning by showing which zones are attracting clicks, or on the contrary being ignored.
  • Fixed a crash when calling Contentsquare.sendUserIdentifier()
  • Fixed a crash when app is put in background
  • Internal package reorganization

Session Replay

  • Fixed an issue where images might be stretched in the replay
  • Fixed a delay that might happen when screen change
  • Code refactor to improve robustness & quality

Error Analysis

  • Internal package reorganization
  • Added a log when API Error collection is enabled through Error Analysis module

Session Replay

  • Fixed a bug on Composable masking where sessionReplayMask() was not propagated to child nodes

Error Analysis Android SDK

  • Fix a crash due to instrumented bytecode

Analytics

  • Support Jetpack Compose for Zoning - beta
  • Local + Auth Assets Support Session Replay
  • WebView support. See Session Replay WebView documentation
  • Fix an issue on individual masking for Jetpack Compose, when Compose screen contains embedded Android views Misc
  • Fixed performance issue caused by SDK initialization on app start-up

Analytics

  • Long Snapshot - beta

Error Analysis Android SDK

  • WebView errors: Collect JS, API & Custom errors occurring in WebViews. More info on WebView errors

Track WebView

Analytics

  • Support of custom variables

Session Replay

  • Support Jetpack Compose technology

Error Analysis

  • Handle error source for cross-platform compatibility

Session Replay

  • Fixed an issue where the set default masking API is not working when the API is called before SDK initialized.
  • Add a new API ‘sendUserIdentifier’ to search a replay based on a personal user identifier See the Session Replay Send user identifier section.

Error Analysis

  • Fixed an issue where crash controller remove existing crash handler when start and stop lifecycle are out of order.
  • Fixed a bug where send network error event is called twice.

Misc

  • Improved SDK initialization lifecycle logic.
  • Added a feature flag for user identifier collection.

Error Analysis

  • Fixed a bug that was preventing the Error Analysis module from starting.
  • Fixed a potential crash in using instrumented HttpURLConnection for API Error collection.

Bug fix

  • Fix a bug where the Contentsquare SDK would cause a crash on Dual-SIM devices using Android API 33.

Error Analysis

  • Extended crash report to include stack traces and system threads.
  • Improved stability in API Error Handling.

Error Analysis

  • Collect basic crashes and send them to both Session Replay and Analytics
  • API Error details are gzipped and subject to a maximum size
  • Deprecated internal trace extension function, in favor of new public version

Session Replay

  • Improved masking logic, the transparent view will be masked by default.
  • Improved Session Replay data batch generation.
  • Fixed screen number discrepancy issue between Session Replay and Analytics event.
  • Fixed an issue where the set default masking API is not working properly.
  • Fixed a bug where sometimes Session Replay continues to collect with 0% collection rate.

Error Analysis

  • Collect API error details.
  • Add a log to warn if an event has been captured before 1st screen view.
  • Change error-analysis implementation for library to API.
  • Add an public method to mask API error by template URL.
  • Rename public API CsErrorAnalysis to ErrorAnalysis.
  • Update Error Analysis network plugin 1.1.0.

Session Replay New events added when the application enters background or foreground modes

Error Analysis

  • Collect failed network requests

Misc

  • Remove the need for manually editing your config file with ProGuard/R8 rules

Log Visualizer

  • Log Visualizer is enabled by default with in-app features

Session Replay

  • Added the Start event
  • Catch hardware bitmap crash and display error message
  • Fixed bug when using static snapshot with 0 width/height SurfaceView
  • Fixed bug with Dynamic Variable with wrong App versions

Misc

  • Display public log when request has failed
  • Client logs for WebViews

Bug fix

  • Fixed an issue introduced in 4.13.0 where Contentsquare SDK makes the app crash when the automatic SDK initialization is disabled

Analytics

  • Display screen name on the “snapshot in progress/success/fail” screens

Dynamic Variables

  • Key length increased from 50 to 512 chars

Session Replay

  • Display an information if the quality used have changed (Network switch, configuration changed…)
  • Fixed an issue where the SDK starts if the app is auto-started in background after a reboot
  • Fixed an issue where after opted out and opted in again, we have a log with an UNKNOWN user id
  • Fixed a crash after opted out and opted in again
  • Fixed a crash after opted in without activity

Session Replay

  • Fixed an issue where the Session Replay feature is not working properly when using stop and resume tracking API.
  • Added a mechanism to flush the replay data of the current session when the app is put in the background.

In-app features

  • Fixed a bug where in-app settings screen and button disappears after enabling share replay link.

SDK Log Visualizer

  • Removed the need of the Log Visualizer enabled feature flag from SDK configuration.

Bug fix

  • Fixed an issue where gesture tracking is not working correctly after opt-out and opt-in.
  • Fixed an issue where screen view is lost if executed immediately after opt-in.
  • Fixed a crash issue related to SharedPreferences concurrent modification.

Misc

  • Minor internal code improvement leading to SDK size decreased and fewer methods count.
  • Dagger: Dagger dependency has been removed from the SDK.
  • Included in tracking: When the in-app features are enabled, the device is now always included in tracking. Session Replay
    • Fixed an issue where Session Replay would not start after an app restart.
    • Improved the quality adjustment mechanism triggered by impact on the main thread: Session Replay can stop completely now. Quality level will now get back to its initial value once there is no more impact detected.
    • Decrease in data consumption thanks to image identification algorithm improvement (less duplicates).
  • Snapshot: Display error message when capturing snapshot before screenview.
  • Bug fix: Fixed an issue where CS in-app features menu caused a crash while using the opt-out and opt-in operations
  • Misc: Minor improvements and bug fixes.
  • Contentsquare visual identity: Updated Contentsquare logo and snapshot button to match the new visual identity. Session Replay Fixed a bug for which some views captured were not rendered while replaying a user session.
  • WebViews tracking: Update of the WebViews injection mechanism to support new events sent by the WebView Tracking Tag (Dynamic variable, Transaction, Opt-in, Opt-out) See the WebView Tracking Tag documentation.
  • Misc: Minor improvements and bug fixes.

Session Replay Add feature to select different quality levels for Wi-Fi and Cellular See the Session Replay Quality Levels section Session Replay Fixed a bug on unMask API; fixed rendering bugs;

  • In-app features: Fixed a bug where snapshot button does not disappear when app is put in background.
  • Misc: Minor improvements and bug fixes.

Session Replay Added logs when starting and stopping;

  • Snapshots: Multiple bug fixes on snapshot button and capture.
  • Misc: Minor improvements and bug fixes.

Session Replay Optimisation of quality and data consumption.

  • Remove Jetifier: Agera dependency has been removed, which was using android support library. Jetifier is not required anymore.
  • Misc: Minor improvements and bug fixes.

Session Replay new Replay link API to integrate with third-party tools (VoC, crash reporting); Session Replay can be accessed directly within minutes with direct link; replay link button added to in-app features settings; hardware bitmaps are now supported; data consumption optimization; fixed regression on masking API.

  • Misc: Minor improvements and bug fixes.

Session Replay Misc improvements.

  • Drop support for Android Jelly Bean (API Levels 16, 17 and 18): As Google Play services is discontinuing updates for Jelly Bean (API levels 16, 17 and 18), the minimum supported version is now Android 4.4 KitKat (API level 19). Session Replay WebViews masked by default; performances and quality optimisations;
  • Disable Session Replay for specific app versions: Introducing capability to disable Session Replay for specific app versions (controlled from back office).
  • Logs: Reduced noise to keep only relevant logs. You can just filter on CSLIB
  • Permission: Removed overlay permission request for Android <=5.1
  • Misc: Minor improvements and bug fixes.
  • Fixed an issue introduced in 4.2.0 that affected gestures tracking on the first activity after app start

Session Replay Session Replay feature is now part of the SDK and disabled by default. This feature is only accessible to customers participating in the Early Access program. For more information reach out to your Contentsquare contact.

  • Gestures: Fixed issue that caused gestures to be attached to the wrong view in some cases.
  • Misc: Minor improvements and bug fixes.
  • WebView: WebView tracking back-office setting has been removed. WebView tracking is now always enabled.
  • SDK start: At SDK start, a unique config file per package name is fetched our server:
  1. Fixed an issue that prevented to display a log informing when no config file is created for the package name
  2. Changed the config retrieval logic to respect package name case-sensitivity (we used to lower case package name)
  • Dagger dependency: Updated from 2.25 to 2.31.2
  • Misc: Minor improvements and bug fixes.
  • In-app features activation: A simpler and unified way to enable features living inside the SDK (Snapshot Capture and Logs) along with its tracking capabilities. Enable in-app features section
  • Snapshot: Introducing static snapshot to workaround edge cases where snapshots are not rendered properly. See Static snapshot section](/en/android/in-app-features/#static-snapshot)
  • Webview: Minor improvement to enable webview zoning analysis

Upgrading from a previous version: Update the dependency to point to com.contentsquare.android:library:4.0.0 and make sure to remove the code snippet from your AndroidManifest.xml that was used to enable snapshot mode.

  • Drop support for Android 4.0.3 (API Level 15). Minimum supported version is now Android 4.1 (API level 16).
  • Snapshots: Improved support for screen with SwipeRefreshLayout
  • Dynamic Variables: Key and value are now trimmed when maximum length is exceeded. If key or value are empty, the SDK now sends the literal string “cs-empty” instead.
  • Transaction currency: Lower and Uppercase are both supported.
  • Session: Fixed a bug preventing a session to be closed when app was killed. This led to following session to be discarded.
  • Minor improvements and bug fixes.
  • New logs: This version brings completely redesigned logs for better understanding of the SDK behavior. See dedicated section Debugging and logging.
  • Enable Logging via ADB SHELL on all Android versions
  • Minor improvement related to Screenview tracking on React Native apps
  • Minor improvements and bug fixes
  • Breaking change: the main class ContentSquare is renamed Contentsquare (lower-case s).
  • Snapshot mode: Now you can display the Snapshot Activation Dialog using a deep link.
  • Track Transactions - Currency: We now provide the ability to pass the currency as an “alphanumeric code” (i.e. “USD”) on top of the “numeric code” (i.e. “840”). See the dedicated section Track transactions.
  • Fixed an issue where SDK version was not properly set
  • Minor improvements and bug fixes
  • Gesture tracking: Fix an issue with Android Toolbar
  • Enable Logging via ADB SHELL (Logging support for Android 10)
  • App hide event is now triggered 700ms after the application is put in background (before it was 5 seconds)
  • Snapshot improvements for webViews
  • Add validation for dynamic variables key and value length
  • Remove the rule that prevents to have 2 consecutive screenview events with the same screen name
  • Renamed the Pause tracking API to Stop tracking API
  • Minor improvements and bug fixes
  • Fixing theme issue conflict on Snapshot Mode

/!\ This version is the first one not supporting Android Support (AndroidX only). If you are still using Android Support, use version 2.1.3.

  • Dynamic Variables: Send custom data to Contentsquare for session segmentation. Dynamic Variables API
  • Snapshot mode launched at App start: No need to shake the device to trigger Snapshot Mode dialog. Benefits: works on a simulator and avoids conflict with features bases on shake detection.
  • RecyclingViews tracking: We improve the gestures tracking accuracy for those elements.
  • Minor improvements and bug fixes

/!\ This version is the last version supporting Android Support. Upcoming versions will only support AndroidX.

  • Track screens: Implement the new Track Screen API to accurately track screen_view events for all your app screens.
  • User Consent required by default: The default privacy setting for every new app will be set to opted-out by default. This means every new user will be opted-out until the Opt-in API will be called. See dedicated documentation section.
  • Workaround on an issue caused by the New Relic SDK
  • Snapshots improvements
  • Minor improvements and bug fixes

Versions 2.1.0 to 2.1.2 were pre-released only

Section titled Versions 2.1.0 to 2.1.2 were pre-released only
  • AndroidX support: SDK is now published in 2 versions, the main one supporting AndroidX and the other supporting the Original Android Support.
  • Snapshot mode
  • WebView tracking
  • Minor improvements and bug fixes
  • Minor improvements and bug fixes
  • Minor improvements and bug fixes
  • Minor improvements and bug fixes
  • Add screen URL customization.
  • Change the transaction API packages: If you were already using this feature, update the import in your code.
    • Changed Transaction class path from com.contentsquare.android.internal.api.Transaction to the com.contentsquare.android.api.Transaction
    • Change the Currencies class path from com.contentsquare.android.internal.api.Currencies to the com.contentsquare.android.api.Currencies
  • Minor improvements
  • Minor bug fix
  • Add Flush event requests on app hide
  • Change OS version tracking: now collecting OS version 8.0 instead of Android API Level
  • Change Device info tracking: now collecting Device manufacturer and Device Model in 2 distinct fields (dmaet dmo)
  • Improve around gesture tracking on unresponsive views
  • Minor improvements and bug fixes
  • Add Send transactions: Transactions events can now be sent using the dedicated public API. See dedicated documentation section
  • Add screen density tracking: stored in the request meta data. Its values can vary between (0.75 and 10).
  • Improvements and bug fixes
  • Minor improvements and bug fixes
  • Add Privacy Handling Public API: SDK is now GDPR compliant and offers public APIs handling privacy.
  • Improvements and bug fixes