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:

npm install @ninetailed/experience.js-plugin-privacy

Then add the plugin to the Ninetailed instance. Supplying no configuration options to the plugin will use the defaults described in the Properties section.

import { NinetailedPrivacyPlugin } from '@ninetailed/experience.js-plugin-privacy'
<NinetailedProvider
  // ...
  plugins={[
    new NinetailedPrivacyPlugin()
  ]}
>
  <Component {...pageProps} />
</NinetailedProvider>;

Properties

Use these properties in the configuration object passed when instantiating the plugin. Passing a blank configuration object will use the default values.

Example Custom Use

This configuration demonstrates overriding the default configuration to allow identify events to be sent and for those identify event calls to capture the firstName trait before or without user consent. All unspecified config object options use their default values.

<NinetailedProvider
   // ...
    plugins={[
      new NinetailedPrivacyPlugin({
        allowedEvents: ['page', 'track', 'identify'],
        allowedTraits: ['firstName'],
      }),
     ]}
  >
   // ...
 </NinetailedProvider>

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.

window.ninetailed.consent(true) // sets `__nt-consent__: "accepted" in local storage
window.ninetailed.consent(false) // clears `__nt-consent__` from local storage

Last updated