Collected data
Contentsquare collects comprehensive visitor interaction data while protecting personal information through email filtering and optional masking features.
Personal Data
Section titled Personal DataThe tag collects the following data by default. Some features collect additional data points, which are described on their own pages: Error analysis, Voice of Customer, and Product Analytics.
In particular, potential Personal Data would be:
-
Into the HTML content that is sent for a small fraction of your visitors. Solutions to prevent this from happening:
-
Remove some sensitive content (this chapter explains how)
-
Totally deactivate this for all users (some features may then be unavailable like Session Replay or retroactive background; ask your Account Manager)
-
-
Into Custom Variables sent to Contentsquare servers (to prevent this from happening, make sure that the values that you wish to collect could not be linked to one individual)
What is not collected
Section titled What is not collected-
The tag doesn't collect the values of form fields. For a field change, it collects which field changed and whether it was left blank, never its content.
-
The tag doesn't collect what the user types. Keystrokes are collected as categories, not characters: every letter, digit, and symbol is reported as a single
alphanumericalvalue, alongside the named keys (Enter,Backspace,Delete,Tab,Escape, arrows, and the modifier keys). -
The tag redacts the following patterns before the data is sent to Contentsquare servers:
Pattern Replaced with Email addresses, including URL-encoded ones CS_ANONYMIZED_EMAILCredit card numbers, when the number passes a Luhn checksum CS_ANONYMIZED_PIIDigit sequences of 9 digits or more, such as phone and social security numbers •per digitEmail redaction applies to URLs, Custom Vars, Dynamic Vars, e-commerce transaction IDs, Session Replay, and the messages collected by Error analysis. Credit card and digit-sequence redaction applies to the text collected by Session Replay. If your project masks numbers, every digit is redacted instead. Target text is not redacted: when it contains any of these patterns, it is not collected at all.
What is collected
Section titled What is collectedThe Tag automatically collects the following data. Any values you explicitly send via Custom Vars or Dynamic Vars are also collected.
Rows marked accessibility analysis only are collected only when accessibility analysis is active on the project. Everything else is collected by default.
| Data | Usage | Value example |
|---|---|---|
| User Agent | Device type (desktop/tablet/mobile) and browser detection | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv.7.5) |
| City Geolocation | Web users geolocation (based on the IP address; for more info on IP Addresses see dedicated section) | Paris, France |
| URL | Mappings: group pageviews on similar page templates | https://en.wikipedia.org/ ↗ |
| Screen Resolution | Segments | 1600x900 |
| Referer | Segments: traffic source detection | https://google.com |
| Clicks | Zoning Analysis | {target: "div#zone", t:1500} |
| Clicked Element (button and link) | Segmentation, Funnels | {target: "button#checkout", t:1500, text: "Checkout"} |
| Clicked Element (all elements) | Segmentation, Funnels | {target: "button#checkout", t:1500, text: "Checkout"} |
| Hovers | Zoning Analysis | {target: "div#zone", t:1500} |
| Scroll | Zoning Analysis (exposure metrics) | {top:0px, left: 0px; t:1500} |
| Mouse move | Activity rate | {x:200, y:800, t:1500} |
| Focus | Keyboard navigation metrics (accessibility analysis only) | {target: "input#email", t:1500} |
| Tap, drag, flick | Zoning Analysis, Session Replay (mobile gestures) | {target: "div#carousel", direction: "left", t:1500} |
| Field change | Segmentation, Funnels (which field changed, and whether it was left blank) | {target: "input#email", blank: true, t:1500} |
| Form submit | Segmentation, Funnels | {target: "form#checkout", t:1500} |
| Keystroke category | Activity rate | {target: "input#email", key: "alphanumerical", t:1500} |
| Text selection length | Accessibility analysis only (character count, never the text) | {len:42, t:1500} |
| Window resize | Segments | {x:1280, y:720, t:1500} |
| Zoom level | Accessibility analysis only | {val:1.5, t:1500} |
| Web Vitals | Speed Analysis: LCP, CLS, FCP, TTFB, and INP | {name: "LCP", val:2400} |
Target text
Section titled Target textThe two Clicked Element rows in the previous table correspond to the target-text setting on your project, which decides which elements contribute their text:
- Buttons and links only — text is collected for the nearest
buttonoraancestor of the clicked element, and nothing else. - All elements — any clicked element contributes its text.
Target text is trimmed to 100 characters. It is dropped entirely when the element is masked, when it contains a masked child, or when its text contains one of the redacted patterns, or any digit if your project masks numbers.
E-commerce data
Section titled E-commerce dataCollected when you send e-commerce transactions — see E-commerce transactions.
| Data | Value example |
|---|---|
| Transaction ID | 1234 |
| Total (revenue) | 11.99 |
| Currency | USD |
| Product Total (Merchandising only) | 11.99 |
| Product ID / SKU (Merchandising only) | 1234 |
| Product name (Merchandising only) | Green shoes |
| Product quantity (Merchandising only) | 1 |
| Product category (Merchandising only) | Shoes |
Additional data on the Contentsquare Experience Platform
Section titled Additional data on the Contentsquare Experience PlatformProjects collecting Product Analytics data natively send all the data described earlier on this page, plus the data in this section. See Product Analytics for the commands that produce it.
Session and page context
Section titled Session and page contextThe Tag attaches the following parameters to every pageview and event request, so that reporting is not limited to the first pageview of a session. Session-level values are restored from the _cs_s_ctx cookie.
| Parameter | Data | Value example |
|---|---|---|
t | Page title | Checkout — Confirmation |
fvt | Session start time | 1717060800000 |
fvurl | Session landing page | https://example.com/home |
fpvurl | Session traffic source | https://google.com |
pvurl | Previous pageview URL | https://example.com/cart |
url | Current pageview URL | https://example.com/checkout |
cvt | Current pageview time | 1717060860000 |
sw | Screen width | 1600 |
sh | Screen height | 900 |
i | Encrypted user identity set via identify | bfuKr7A9WgrhAgm2… |
cvarp | Page-level custom properties | {"plan":"premium"} |
happid | Product Analytics environment ID of the project | 2748219634 |
cw | Collection mode (1 native, 2 legacy sideloading) | 1 |
Page title collection can be disabled with hidePageTitle.
Interaction events
Section titled Interaction eventsclick, tap, change, and submit interactions are collected as events so they can be analyzed without prior tagging. Each one carries:
- The target path of the element the user interacted with.
- The element hierarchy of that element, when hierarchy collection is enabled on the project.
- The merged custom properties in scope: pageview properties, visit properties, and any properties resolved by your event enrichers.
Element hierarchy
Section titled Element hierarchyThe hierarchy is the chain of ancestor elements from the interacted element up to — and stopping at — the document body. Each level is serialized as its tag name, then its id, then its classes in alphabetical order, then its remaining attributes:
@button;#submit-order;.btn;.btn-primary;[data-testid=confirm];|@div;.checkout-footer;|Levels are separated by |. The whole hierarchy is capped at 1024 characters and truncated from the outermost level; a single attribute value longer than 1024 characters is dropped.
The following are never collected, whatever your masking settings:
| Excluded | Reason |
|---|---|
The value attribute of form inputs | Holds what the user typed |
data-com.agilebits.onepassword.initial-value, data-com.onepassword.iv | Can hold passwords (1Password) |
data-initial-value, data-previous-value | Can hold personal data (v-mask) |
onclick, onsubmit | Inline JavaScript |
style | Inline CSS, too verbose |
data-ember-action, data-react-checksum, data-reactid | Framework internals, no analytical value |
maxlength | Technical constraint, no analytical value |
On SVG elements, every attribute except data-* and aria-label | No analytical value |
Hierarchy collection also respects your project's masking settings. On a masked element, no attributes are collected at all. When anonymization is active, attributes outside your project's allowlist are collected by name only, without their value.

