Skip to content

Add Optimizely contexts #448

Description

@yalisassoon

Optimizely delivers a data object on websites running Optimizely. This contains a load of useful data.

The proposal is to send this data into Snowplow as custom context.

A couple of things make this difficult:

  1. The data object contains an enormous amount of data
  2. The data object has a complicated structure

As a result, I think we should:

  1. Break it down into a smaller set of contexts
  2. Give users the choice which to send (i.e. multiple contexts)
  3. Do some transformation of the data structure in the JS, prior to sending it into Snowplow, so that it is easier to process and load

I propose the following contexts:

  1. experiment
  2. state
  3. variation
  4. visitor
  5. visitor_audience
  6. visitor_dimension

The associated schemas are available here

Note that apart from visitor, it is likely that there will be multiple contexts for each other type with each event i.e. 1 state context for every experiment that is currently running.

For an initial release, we could either:

  1. Only releasing support for the state context
  2. Releasing support for a subset of the contexts
  3. Release support for all contexts

Users should explicitly be able to say which of the Optimizely contexts they want tracked in Snowplow (e.g. specify if they want to capture experiments, state, variations, visitor data, visitor_audience (segments) and visitor_dimensions.

An example of the raw Optimizely data object is given here.

An example of the same data transformed into the different contexts listed in Iglu is given here.

What do you think Alexander Dean (@alexanderdean) ?

Metadata

Metadata

Labels

category:browserAbout the browser-specific code.category:contextA new context entity, or changing an existing one, is required.type:enhancementNew features or improvements to existing features.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions