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:
- The data object contains an enormous amount of data
- The data object has a complicated structure
As a result, I think we should:
- Break it down into a smaller set of contexts
- Give users the choice which to send (i.e. multiple contexts)
- 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:
- experiment
- state
- variation
- visitor
- visitor_audience
- 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:
- Only releasing support for the
state context
- Releasing support for a subset of the contexts
- 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) ?
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:
As a result, I think we should:
I propose the following contexts:
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:
statecontextUsers 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) ?