To learn about Contentsquare privacy practices, see our Privacy Center and Privacy Policy.

Contentsquare collects usage data on your app. By default, the SDK will consider every new user to be opted-out. To start tracking, the SDK Opt-in API must be called.
You are responsible for handling the UI asking users for their consent and allowing them to manage their privacy settings. Use the Contentsquare SDK APIs to pass the user decision to the SDK.

Contentsquare provides APIs to manage the user consent.

Use the Opt-in API to get user consent. Calling this API will generate a user ID and initiate tracking.


When this API is called, tracking stops immediately, all settings are reset (Session number, Page number…) and all files and directory regarding to Contentsquare are deleted. This means that the user ID is deleted. The SDK will never track and collect any data from the user’s phone unless the Opt-in API is called again.


Use this API to get the Contentsquare User ID. This can be used as to make a data request to Contentsquare as part of an end user request.


Use pause and resume tracking APIs to completely exclude areas of the App from tracking.
When stop/pause is called, the SDK pauses all tracking (Analytics, Session Replay, Errors).
When resume is called, the SDK resumes all tracking (Analytics, Session Replay, Errors).

// ...

Permanently breaking the link between the collected data and actual user.

This resets all settings and deletes all files and directories from the user’s device (User ID is deleted). If user is opted in, next time user starts the app, the SDK will re-start its collection mechanisms as if this was the first ever run for a new user, under a new user id. Configurations will be fetched from the server and application tracking will be on.


We allow the client to provide to their users their Contentsquare user ID.

This ID is a non binding identifier which can be used to make a data request to Contentsquare.
You are able to get an ID only if the user is not Opted-out.


Although we do not gather any humanly readable text from the user’s screens, we understand that there may be some areas that you want to completely exclude from tracking.
For this reason we also support pausing and resuming the complete tracking mechanism.

// ...

Disable user tracking across sessions

Section titled Disable user tracking across sessions

If you don’t want to link the different sessions of a user to the same userID, follow these instructions to reset the userID at each app start:

  1. Disable SDK auto-start

  2. Implement the following:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
  • Using the manual start method of the SDK will ensure that opt-out is called right after the start of the SDK (no event tracked in between).
  • Calling opt-out will delete the previous userID.
  • Calling opt-in will set a new one.

As part of the Session Replay capabilities, Contentsquare provides masking and un-masking APIs to control how data is collected. See Session Replay Personal data masking for more information.

App Store Privacy Guidelines Compliance

Section titled App Store Privacy Guidelines Compliance

The Contentsquare SDK is compliant with the App Store Privacy guidelines.

Contentsquare SDK includes a privacy manifest describing the type of data collected and their purpose. See Apple’s website for more information.

Tracking and App Tracking Transparency (ATT)

Section titled Tracking and App Tracking Transparency (ATT)

App Store (Apple) requests App developers to receive the user’s permission to track them or access Advertising ID using the AppTrackingTransparency framework (ATT).
According to Apple’s definition, Contentsquare only matches the definition of a “Third- party partner” involved in Data collection.

It is not required to put Contentsquare behind the ATT as it does not match the “tracking” definition of Apple as the data collected is not linked with Third-Party Data for targeted advertising or advertising measurement purposes nor shared with a data broker.

All collected data is linked to the user via the Contentsquare User ID we generate.

Here is the list of data type we collect by default that are part of our privacy manifests.

CategoriesData typePurposes
IdentifiersUser IDAnalytics, App Functionality
Usage DataProduct InteractionAnalytics, App Functionality
Usage DataOther usage dataAnalytics, App Functionality
Other Data typesOther Data typesAnalytics, App Functionality
DiagnosticsCrashesAnalytics, App functionality
DiagnosticsPerformance dataAnalytics, App functionality
DiagnosticsOther diagnostic dataAnalytics, App functionality

See how the data types and purposes are reflected in the privacy manifest.

The SDK generates a unique user ID (UUID) (random hash) which is specific to users on their device. Contentsquare cannot identify a user across devices.
This user ID and all collected data are stored for 13 months.
We don’t persist the UUID when the app is deleted and re-installed. The SDK generates a new UUID after install or re-install.
Contentsquare does not share this user ID with any third parties.

Contentsquare does not collect the IDFA (Advertising ID) or any ad related information to identify the user.

Checkout our page about 10 Things to know about the Contentsquare solution’s data processing.

Contentsquare provides the ability to search for session(s) associated with a specific visitor, based on an identifier provided by the customer. See User identifier feature for more information.