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 4.2.0.

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

    await CSQ().start(startConfig: StartConfig.withDatasourceId(id: "YOUR_DATASOURCE_ID"));
  3. Review changes introduced in 4.2.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:

main.dart
await CSQ().configureProductAnalytics(
environmentId: 'YOUR_ENVIRONMENT_ID',
);
await CSQ().start();
await CSQ().start(
startConfig: StartConfig.withEnvironmentId(
id: 'YOUR_ENVIRONMENT_ID',
),
);

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.

await CSQ().start(
startConfig: StartConfig.withEnvironmentId(
id: 'YOUR_ENVIRONMENT_ID',
options: const AnalyticsOptions(sessionReplayAutoStart: false),
),
);

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

await CSQ().start(
startConfig: StartConfig.withEnvironmentId(
id: 'YOUR_ENVIRONMENT_ID',
options: const AnalyticsOptions(
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.0 → 1.10.1
    • iOS: 1.6.0 → 1.10.0
  • Improvements:
    • Session Replay fidelity was improved
  • Improvements:
    • Session Replay fidelity was improved
    • Multithread issues were fixed
    • Dialogs tracking was improved
  • Improvements:
    • Extend Flutter version support to include 3.27.0 and later (previously 3.27.4+).
  • Analytics:
    • Introduce the Long Screenshot feature to capture and analyze long screens in the app, such as product listing pages or user profiles.
  • Native SDKs:
    • Android: 4.43.8 → 4.44.0
    • iOS: 4.45.3 → 4.46.0
  • 🚨 Minimum Flutter version
    • Contentsquare plugin now requires Flutter SDK 3.27.4 or later
  • Native SDKs:
    • Android: 1.4.2 → 1.4.7
  • Bug fix
    • Session Replay: Fixed an issue that could cause BackdropFilter widgets to appear mispositioned in replays.
    • Interactions Autocapture: Improved performance when capturing interactions on complex widget trees.
  • Bug fix
    • SessionReplay: Fixed an issue that could cause white screens to appear on iOS.

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.