Privacy Plugin
Making sure that data transfer is only sent and received based on your visitor's consent.
The Privacy Plugin allows you to granularly control what Ninetailed SDK events can trigger and what properties those events can contain with and without your visitors' consent.
The values you pass as configuration when instantiating the plugin determine what events and properties can be sent before or without your user's consent. The plugin provides a consent
method when called allows all Ninetailed SDK events to be triggered with any properties.
Installation
Add @ninetailed/experience.js-plugin-preview
as a dependency:
Then add the plugin to the Ninetailed instance. Supplying no configuration options to the plugin will use the defaults described in the Properties section.
Properties
Use these properties in the configuration objects passed when instantiating the plugin. Passing blank configuration objects will use the default values.
allowedEvents
Which events you want to allow?
['page', 'track']
An array containing any of page
, track
, identify
, and/or component
.
allowedPageEventProperties
Which page event properties will be allowed?
[*]
An array of your page event properties as strings or use [*]
allowedTrackEvents
What .track
event names will be allowed?
[]
An array of your track
event names as strings or use or use [*]
allowedTrackEventProperties
What .track
event properties (additional data on a track event) will be allowed?
[]
An array of your track
event properties as strings or use or use [*]
allowedTraits
What user traits will be allowed?
[]
An array of your .identify
event traits or use or use [*]
blockProfileMerging
Shall the merging of profiles (attaching an ID to a profile via identify
) be prevented?
true
true
or false
enabledFeatures
What additional features should be enabled?
[]
An array of strings corresponding to feature names to enable. Possible values are:
location
. Enables resolution of location data (continent, country, region, city, and zip code) of the user
Configuration
The first configuration object uses the properties above to indicate what events and behaviours are allowed prior to end-user consent.
SDK versions 7.7 and above add a second configuration parameter to specify what tracking events and behaviours are allowed even after a user has consented. This configuration parameter uses the same properties.
Example Custom Use
This example configuration demonstrates overriding the default to allow only page
and identify
events to be sent and for those identify
event calls to only capture the firstName
trait prior to user consent.
Additionally, a second configuration object is passed to indicate that all of page
, track
, identify
and component
events are allowed, in addition to the lastName
trait and track events of type myCoolEvent
and anotherCoolEvent
are allowed.
All unspecified config object options use their default values.
Confirming User Consent
The plugin attaches a consent
method to the window.ninetailed
object. The consent method takes a single boolean argument. When the argument is true
, this sets a localStorage entry of __nt-consent__: "accepted"
. When not called or the argument is set to false
, the __nt-consent__
local storage entry is cleared. Call this method in your client-side application when a user has taken an action that indicates their explicit consent.
Last updated