Privacy

A newer version of this documentation is available. Switch to the latest version docs.

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.

import com.contentsquare.android.Contentsquare
// To opt-in of CS Tracking
Contentsquare.optIn(context) // non-null Context

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.android.Contentsquare
// To opt-out of CS Tracking
Contentsquare.optOut(context) // non-null Context

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.android.Contentsquare
// Get CS User ID
Contentsquare.getUserId()

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 = Contentsquare.getProjectId()
val sessionNumber = Contentsquare.getSessionNumber()
// store these Contentsquare session identifiers in your backend

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

import com.contentsquare.android.Contentsquare
// Stop tracking
Contentsquare.stopTracking()
// Resume tracking
Contentsquare.resumeTracking()

Gestures are tracked automatically. In specific cases, you might want to stop gesture tracking momentarily for some Activities. To do so, you can use our public API:

Contentsquare.doNotTrack(@NonNull Class<? extends Activity>... activitiesClasses) // will filter out the activities by their classes

In case you still need to track those activities but the automatic gesture tracking was not working we are offering you the possibility to do this manually by capturing and dispatching the GestureEvents through our Public API method:

class MainActivity : AppCompatActivity() {
..........
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
Contentsquare.consumeEvent(ev)
return super.dispatchTouchEvent(ev)
}
}

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.

import com.contentsquare.android.Contentsquare
Contentsquare.forgetMe()

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, you can follow these instructions to reset the userID at each app start:

  1. Disable SDK auto-start

  2. Implement the following:

    class MyApplication : Application() {
    override fun onCreate() {
    super.onCreate()
    // Start Contentsquare SDK
    Contentsquare.start(this)
    Contentsquare.optOut(this)
    Contentsquare.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.