For the complete documentation index, see llms.txt.

Changelog

Already using the CSQ SDK in standalone mode? Follow these steps to switch to Unified CSQ and combine Experience Analytics and Product Analytics under a single data source.

Unified CSQ guidance

Throughout the documentation, code samples highlight differences between standalone and Unified CSQ integrations.

Unified CSQ docs support hint

  1. Update the SDK package to 6.3.0.

  2. Replace your current CSQ.start(StartConfig.withEnvironmentId(...)) call with the dataSourceId provided by your Customer Success Manager. This links your app to the Unified CSQ 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.

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

Configuration

Deprecated: 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,
}));

Options

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,
}));
  • Native SDKs:
    • Android: 1.5.1 → 1.10.1
    • iOS: 1.6.3 → 1.10.0
  • Bug fix
    • iOS: Fixed an issue where number event properties will be parsed as boolean values in some cases
  • Native SDKs:
    • Android: 1.5.0 → 1.5.1
    • iOS: 1.6.0 → 1.6.3
  • Bug fix
    • Fixed a duplicate hasListener symbol conflict with third-party libraries
  • WebViews
    • Removed unnecessary super calls in bridge handlers
  • Removed the upper version limit for the React Native peer dependency. The CSQ SDK has been validated up to React Native version 0.85.
  • Native SDKs:
    • Android: 1.4.7 → 1.5.0
    • iOS: 1.5.1 → 1.6.0
  • Bug fix
    • Fixed iOS module headers to ensure compatibility with CocoaPods projects using use_frameworks! :linkage => :static
    • Fixed 0.82.x Session Replay compatibility issues
  • Official support for React Native up to 0.84.x
  • Native SDKs:

    • Android: 1.4.2 → 1.4.7
  • Bug fix

    • Fixed a crash in Android WindowCallbackWrapper
  • Bug fix
    • WebViews: Fixed an issue with the userAgent prop being overwritten
  • Bug fix
    • Changed the default value of disableInteractionAutocapture to false to re-enable interaction capture by default
  • Fixed an issue with pod installation failing on React Native versions below 0.80
  • Official support for React Native up to 0.82.x

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.

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+