react-split-test

Split testing using React

Usage no npm install needed!

<script type="module">
  import reactSplitTest from 'https://cdn.skypack.dev/react-split-test';
</script>

README

React Split Test

Install the package with npm i --save react-split-test

Usage

To use this plugin you will need to get the components from the plugin using react import/require.

const { Experiment, Variation } = require( 'react-split-test' );

To begin you will need to wrap all your variations in an <Experiment> tag.
Variations then can sit within this using <Variation />.

<Experiment>
  <Variation id="A" percent={ 33 }>
    <div>Version A</div>
  </Variation>
  <Variation id="B" percent={ 33 }>
    <div>Version B</div>
  </Variation>
  <Variation id="original">
    <div>Original Version</div>
  </Variation>
</Experiment>

If you wanted to add conditions to the split test then you can do this before the <Experiment /> tag and the result from these conditions can be to alter the percent for each <Variation percent={ textPercent } />.

let testPercent = ConditionA === true ? 50 : 33;
if ( !ConditionB ) testPercent = 0;

<Experiment>
  <Variation id="A" percent={ textPercent }>
    <div>Version A</div>
  </Variation>
  <Variation id="B" percent={ textPercent }>
    <div>Version B</div>
  </Variation>
  <Variation id="original">
    <div>Original Version</div>
  </Variation>
</Experiment>

Config

Cookie to use

Default: 'variation'
To use a custom cookie name for variations you can specify it inside the <Experiment /> tag.

<Experiment cookieName="customVariationCookie">
  <Variation id="A" percent={ 33 }>
    <div>Version A</div>
  </Variation>
  <Variation id="B" percent={ 33 }>
    <div>Version B</div>
  </Variation>
  <Variation id="original">
    <div>Original Version</div>
  </Variation>
</Experiment>
Tracking winners

Default: null
To use a custom callback function for tracking winning variations you can specify it inside the <Experiment /> tag.

variationWinner( variation ) {
  if ( typeof ga === 'undefined' ) return;
  ga( 'send', 'variations', 'variation_hit:' + variation );
},
//...
render( ) {
//...
<Experiment cookieName="customVariationCookie" callBack={ this.variationWinner }>
  <Variation id="A" percent={ 33 }>
    <div>Version A</div>
  </Variation>
  <Variation id="B" percent={ 33 }>
    <div>Version B</div>
  </Variation>
  <Variation id="original">
    <div>Original Version</div>
  </Variation>
</Experiment>