@amoapps/next-client-split
TypeScript icon, indicating that this package has built-in type declarations

3.0.3 • Public • Published

next-client-split

npm version minified + gzip typescript

Utility for configuring and running ab tests in nextjs applications

Table of contents

Installation

npm

npm install @amoapps/next-client-split --save

yarn

yarn add @amoapps/next-client-split

Usage

import { useCallback } from 'react';
import NextClientSplit from '@amoapps/next-client-split';

const splitGroups = {
  splitTestName: {
    // test name
    coverage: 0.5, // what proportion of users should get into the test (0 - 0%, 1 - 100%, 0.5 - 50%...)
    path: ['/start-path/url'], // split test start url
    options: [
      // distribution options
      {
        id: 'option_1_id',
        url: '/option_1/url',
        weight: 50, // what proportion of users should get into this option
        // (if option1.weight = 60 && option2.weight = 20 -> option1.weight = 75% of users && option1.weight = 25%)
        // (if option1.weight = 1 && option2.weight = 3 && option3.weight = 1 -> option1.weight = 20% of users && option1.weight = 60% && option3.weight = 20%)
      },
      {
        id: 'option_2_id',
        url: '/option_2/url',
        weight: 50,
      },
    ],
    condition: { urlQuery: [], cookie: [], common: [] },
  },
};

function NextClientSplitExample() {
  const handleSplitGroupHit = useCallback((splitResult) => {
    console.log({
      name: splitResult.name,
      option: splitResult.option,
    });
  }, []);

  return (
    <>
      <NextClientSplit
        groups={splitGroups}
        onHit={handleSplitGroupHit}
        contentElement=".content"
      />

      <div className="content">Some content here</div>
    </>
  );
}

export default NextClientSplitExample;

Props

Name Type Default Value Description
splitGroups {} config
contentElement string CSS selector of the element that contains the content that will be changed based on the results of the split test
onHit function function that will be called in case of getting into a split group
getIsEnabled function

Package Sidebar

Install

npm i @amoapps/next-client-split

Weekly Downloads

3

Version

3.0.3

License

MIT

Unpacked Size

17.5 kB

Total Files

8

Last publish

Collaborators

  • amo-apps-frontend