Skip to content

Privacy controls

Control what My Journey Analytics collects about your visitors, ask for consent, and handle privacy requests.

My Journey Analytics gives you the controls to collect only what you need, respect your visitors' choices and answer their requests. This page covers each control and where to find it.

You decide what your site collects and must tell visitors about it, for example in your privacy policy. These controls help you do what your policy says.

The JavaScript library can stop all tracking for a visitor who says no, and remember the choice in their browser.

js
// The visitor declines tracking, for example in your cookie banner.
myjourney.opt_out_capturing();

// The visitor agrees.
myjourney.opt_in_capturing();

// Check the current choice: "granted", "denied" or "pending".
myjourney.get_explicit_consent_status();

// Or check each case.
myjourney.has_opted_out_capturing();
myjourney.has_opted_in_capturing();

After opt_out_capturing(), the library sends no events, does not record sessions and stops storing data in cookies and local storage for your project.

Ask before tracking

If you must have consent before tracking anyone, start with every visitor opted out and opt them in when they agree:

js
myjourney.init("<project token>", {
  opt_out_capturing_by_default: true,
});

// Later, when the visitor accepts:
myjourney.opt_in_capturing();

To also honour the browser's Do Not Track setting, add respect_dnt: true to the options.

To check whether your site's tags wait for consent, run Hive Check. Hive Setup can add Google Consent Mode defaults to your Google Tag Manager container, and make My Journey Analytics follow your cookie banner.

Cookieless tracking

Cookieless tracking counts unique visitors without cookies or browser storage, using a privacy-preserving hash calculated on our servers instead. It needs two steps:

  1. Open Settings → Project → Web analytics and turn on Enable cookieless tracking under Cookieless tracking.
  2. Set cookieless_mode in the snippet's options.
js
myjourney.init("<project token>", {
  // "always": never use cookies, for sites without a cookie banner.
  // "on_reject": use cookies only for visitors who accept them.
  cookieless_mode: "on_reject",
});

With on_reject, a visitor who rejects cookies is still counted, but anonymously and without cookies. Turn the project setting on before you change the snippet: cookieless events sent while it is off are ignored.

IP addresses

To stop storing visitors' IP addresses with their events, open Settings → Project → Privacy and turn on Discard client IP data.

Location properties, such as country and city, and bot detection still work, because they use the address before it is discarded. The address itself is not stored. Only events received after you turn this on are affected.

New projects add location properties to events automatically; see Location properties. To leave location out of a single event, send it with the property $geoip_disable set to true.

Organization admins can make this the default for new projects under Settings → Organization → General → IP data capture default.

Leave out sensitive elements and properties

  • Add the class mj-no-capture to an element to stop autocapture recording clicks on it, and to block it from session recordings.
  • Add mj-sensitive to an element to capture interactions with it without its text or attributes.
  • To never send certain event properties, list them in property_denylist in the snippet's options.
js
myjourney.init("<project token>", {
  property_denylist: ["coupon_code", "internal_note"],
});

Session replay

Session recordings mask what visitors type into form fields by default. Under Settings → Project → Session replay → Privacy and masking you can choose:

OptionMasks
Total privacy (mask all text/images)All text and images, as well as inputs
Normal (mask inputs but not text/images)Everything typed into inputs
Free love (mask only passwords)Password fields only

Masking happens in the visitor's browser, so masked content is never sent. Add the class mj-mask to an element to mask its text, or mj-no-capture to leave it out of recordings entirely. See session replay for more.

Data retention

How long events and recordings are kept depends on your plan. The retention period for recordings is shown under Settings → Project → Session replay → Data retention.

Delete data about a person

When someone asks you to delete their data, delete their person and, if needed, their events and recordings. See data deletion.

Who can see your data

You control which members of your organization can see and change each project's data. See access control.

Can't find what you need? Contact support