@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

/@amoapps/next-client-split/

    Package Sidebar

    Install

    npm i @amoapps/next-client-split

    Weekly Downloads

    2

    Version

    3.0.3

    License

    MIT

    Unpacked Size

    17.5 kB

    Total Files

    8

    Last publish

    Collaborators

    • amo-apps-frontend