Privacy

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

Contentsquare collects usage data on your app. 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.

import android.app.Application
import com.contentsquare.CSQ
// ...
CSQ.start(context)
// ...
val optinButton: Button = ...
optinButton.setOnClickListener {
CSQ.optIn(it.context)
// Then finish initialization and move to the next screen...
}

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.

import com.contentsquare.CSQ
// To opt-out of CSQ Tracking
CSQ.optOut()

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.

import com.contentsquare.CSQ
// Get CSQ User ID
val userId = CSQ.metadata.userId

The Enrichment API allows for enriching the behavioural data tracked by Contentsquare client-side, with other session-based data that can be sent server-side.

During a visit on an app, you can interact with Contentsquare’s SDK to pull those identifiers with the following SDK APIs:

val projectId = CSQ.metadata.projectId
val sessionId = CSQ.metadata.sessionId
// store these session identifiers in your backend

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

import com.contentsquare.CSQ
// Pause tracking
CSQ.pauseTracking()
// Resume tracking
CSQ.resumeTracking()

Gestures are tracked automatically. In specific cases, you might want to stop the tracking of individual Views:

CSQ.ignoreInteractions(view)

In case you still need to track these Activities or Views but the automatic gesture tracking does not work, we offer the possibility to do this manually by capturing and sending the gesture events via our public API method:

class MainActivity : AppCompatActivity() {
// ...
override fun dispatchTouchEvent(motionEvent: MotionEvent): Boolean {
CSQ.trackMotionEvent(motionEvent)
return super.dispatchTouchEvent(motionEvent)
}
}

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, reset the userID at each app start:

class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Start Contentsquare SDK
CSQ.start(this)
CSQ.optOut()
CSQ.optIn(this)
}
}

Starting the SDK manually using start() will ensure that opt-out is called right after the start of the SDK (no event tracked in between).

Calling optOut() will delete the previous userID.

Calling optIn() will set a new one.

As part of 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.

Play Store Privacy Guidelines Compliance

Section titled Play Store Privacy Guidelines Compliance

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

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

Contentsquare does not use App Set ID.