https://github.com/splitrb/split.js
:chart_with_downwards_trend: Clientside A/B testing library
https://github.com/splitrb/split.js
Last synced: 8 months ago
JSON representation
:chart_with_downwards_trend: Clientside A/B testing library
- Host: GitHub
- URL: https://github.com/splitrb/split.js
- Owner: splitrb
- License: mit
- Created: 2011-11-30T12:08:29.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2018-07-23T09:45:23.000Z (over 7 years ago)
- Last Synced: 2025-03-24T07:56:49.006Z (9 months ago)
- Language: JavaScript
- Homepage:
- Size: 10.7 KB
- Stars: 27
- Watchers: 3
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: Readme.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Split.js
> 📉 Clientside A/B testing library
Currently split.js uses Google Analytics as the datastore for experiments, this may be extended to handle multiple data stores in the future.
## Install
Put this file somewhere in your dependency path.
## Usage
Basic Usage:
Split.setup(alternatives, options)
Split.js is useful for running different functions and measuring the results, you define the alternatives that you wish to test:
Split.setup({
'a': function(){
// usually the control test with no changes
},
'b': function(){
// change elements in the page,
}
});
When a user hits the page they will be randomly assigned one alternative and that function will be executed.
A custom variable will be set in google analytics with the name of that alternative which you can then pivot your analytics data around.
## Options
There are a number of configurable options that can be parsed as an optional second argument:
Split.setup({
// functions
},{
cookieName: 'abTest',
cookieAge: 30,
customVariableName: 'AB Test alternative',
customVariableIndex: 1
});
## Caveats
* `Split.setup` must be loaded before Google analytics otherwise the custom variable will not be tracked,
it may not work inside `$(document).bind("ready", handler)` or an async loader.
* You should also always provide a control test to measure your changes against.
* You can provide as many alternatives as you like but sample size will be much lower and take longer to show real results.
## Contribute
Please conform to the [Code of Conduct](CODE_OF_CONDUCT.md).
### Note on Patches/Pull Requests
* Fork the project.
* Make your feature addition or bug fix.
* Commit, do not mess with version, or history.
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.
## License
Copyright (c) 2013-2018 Andrew Nesbitt. See [LICENSE](https://github.com/splitrb/split.js/blob/master/LICENSE) for details.