For the complete documentation index, see llms.txt.

Changelog

Last updated View as MarkdownSet up with AI

Opt-in to CSQ Experience Platform

Section titled Opt-in to CSQ Experience Platform

Follow these steps to switch to CSQ Experience Platform and combine Experience Analytics and Product Analytics under a single data source.

CSQ Experience Platform is currently in Early Access. To gain access, contact your Customer Success Manager.

How implementation differs for CSQ Experience Platform

Throughout the documentation, code samples use tabs to show the differences between standalone integrations and CSQ Experience Platform integrations. Your selection persists across pages.

CSQ Experience Platform docs support hint

  1. Update the SDK package to the latest version.

  2. Replace your current CSQ.start(StartConfig.withEnvironmentId(...)) call with the dataSourceId provided by your Customer Success Manager. This links your app to the CSQ Experience Platform data source.

    App.js
    CSQ.start(StartConfig.withDataSourceId("YOUR_DATASOURCE_ID"));
  3. Review changes introduced in 6.3.0 which notably removes support for several Product Analytics options.

  • Android: 1.12.5 → 1.13.0
  • iOS: 1.12.4 → 1.13.1

Product Analytics

  • Improvement: CSQ.trackEvent now accepts arrays which can be used as list properties.
  • Bug fix: Fixed an issue where screen name was not correctly captured when a touch happened between a screen change.

Session Replay

  • Controlled Exposure is now available in Early Access. To gain access, contact your Customer Success Manager.

WebViews

  • Bug fix: Android: Fixed CSQWebView blank on Android when CSQ SDK is not started.

Build

  • Bug fix: iOS: Fixed an issue where headers were not correctly found when using static frameworks and monorepos.
  • Android: 1.12.1 → 1.12.5
  • iOS: 1.12.3 → 1.12.4

Product Analytics

  • Bug fix: Fix a crash occurring when using Autocapture alongside Redux Saga.

WebViews

  • Improvement: Improved WebView handler reliability.

Session Replay

  • Bug fix: Fix a bug in the CSQMask component that occurs in debug environments when using React Native 0.87.x.
  • iOS: 1.12.2 → 1.12.3

Compatibility

  • Bug fix: Improve support for React Native 0.87.x.
  • Android: 1.11.2 → 1.12.1
  • iOS: 1.11.1 → 1.12.2

Product Analytics

  • Improve instrumentor support for default-exported classes and functions. Fixes an issue encountered when using Expo 56 alongside React Native Gesture Handler.
  • iOS: 1.11.0 → 1.11.1
  • Android: 1.11.0 → 1.11.2
  • Android: 1.10.1 → 1.11.0
  • iOS: 1.10.0 → 1.11.0

Session Replay

  • Added new APIs to support Event-Triggered Replays (ETR)

WebViews

  • Bug fix: Android: Fixed an issue when navigating back within WebViews
  • Android: 1.5.1 → 1.10.1
  • iOS: 1.6.3 → 1.10.0

Experience Analytics

  • The session timeout definition changes from "30 minutes after being in background" to 30 minutes after last event. See Session definition.

Product Analytics

  • Bug fix: iOS: Fixed an issue where number event properties will be parsed as boolean values in some cases

Product Analytics deprecation: CSQ.configureProductAnalytics() still exists, but is now deprecated in favor of CSQ.start() which combines SDK configuration and initialization in a single call:

App.js
CSQ.configureProductAnalytics("YOUR_ENVIRONMENT_ID", {
enableRNAutocapture: true,
});
CSQ.start();
CSQ.start(StartConfig.withEnvironmentId("YOUR_ENVIRONMENT_ID", {
enableRNAutocapture: true,
}));

Session Replay

  • Support Image/Text remote masking configuration in the CSQ Console

Added: AnalyticsOptions.sessionReplayAutoStart — set to false to disable automatic Session Replay start and control it manually using CSQ.startSessionReplay() and CSQ.stopSessionReplay(). Defaults to true.

CSQ.start(StartConfig.withEnvironmentId("YOUR_ENVIRONMENT_ID", {
sessionReplayAutoStart: false,
}));

Removed - Breaking: disableScreenviewForwardToDXA, disableScreenviewForwardToPA, resumePreviousSession, captureVendorId, captureAdvertiserId, clearEventPropertiesOnNewUser, messageBatchMessageLimit, pruningLookBackWindow, maximumDatabaseSize, and maximumBatchCountPerUpload options have been removed. Remove them from your CSQ.start() call if present:

CSQ.start(StartConfig.withEnvironmentId("YOUR_ENVIRONMENT_ID", {
captureVendorId: true,
captureAdvertiserId: true,
clearEventPropertiesOnNewUser: true,
messageBatchMessageLimit: 100,
resumePreviousSession: true,
pruningLookBackWindow: 6,
maximumDatabaseSize: 10000000,
maximumBatchCountPerUpload: 5,
disableScreenviewForwardToDXA: true,
disableScreenviewForwardToPA: true,
}));
  • Android: 1.5.0 → 1.5.1
  • iOS: 1.6.0 → 1.6.3

WebViews

  • Removed unnecessary super calls in bridge handlers

Compatibility

  • Removed the upper version limit for the React Native peer dependency. The CSQ SDK has been validated up to React Native version 0.85.

Build

  • Bug fix: Fixed a duplicate hasListener symbol conflict with third-party libraries
  • Android: 1.4.7 → 1.5.0
  • iOS: 1.5.1 → 1.6.0

Session Replay

  • Bug fix: Fixed 0.82.x Session Replay compatibility issues

Errors

Compatibility

  • Official support for React Native up to 0.84.x

Build

  • Bug fix: Fixed iOS module headers to ensure compatibility with CocoaPods projects using use_frameworks! :linkage => :static
  • Android: 1.4.2 → 1.4.7

Experience Analytics

  • Bug fix: Fixed a crash in Android WindowCallbackWrapper

WebViews

  • Bug fix: Fixed an issue with the userAgent prop being overwritten

Product Analytics

  • Bug fix: Changed the default value of disableInteractionAutocapture to false to re-enable interaction capture by default

Compatibility

  • Official support for React Native up to 0.82.x

Build

  • Bug fix: Fixed an issue with pod installation failing on React Native versions below 0.80

Initial release of the CSQ SDK.

  • Introduces the unified CSQ API, which combines Product Analytics, Experience Analytics, and Monitoring features into a single, cohesive library.

@contentsquare/react-native-cli

Section titled @contentsquare/react-native-cli

See CLI configuration for configuration details.

  • Bug fix
    • Fixed Android builds failing in monorepos using workspace-linked packages.

Breaking Change: The CLI package name has changed from @contentsquare/cli to @contentsquare/react-native-cli ↗. If you already have the CLI installed:

  1. Update the package name in your package.json:

    "devDependencies": {
    "@contentsquare/cli": "<file_path_to_the_downloaded_.tgz_package>",
    "@contentsquare/react-native-cli": "1.0.0",
    }
  2. Update the paths in your source maps upload configuration:

    android/app/build.gradle
    apply from: "../../node_modules/@contentsquare/cli/scripts/contentsquare.gradle"
    apply from: "../../node_modules/@contentsquare/react-native-cli/scripts/contentsquare.gradle"
  • Fix support for Gradle 9+