Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

optimizely-service

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

optimizely-service

A simple interface for interracting with [Optimizely](https://optimizely.com).

  • 1.1.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

npm version NPM

optimizely-service

A simple interface for interracting with Optimizely.

A simple use case (React)

Note: the following assumes everything is set up in the Optimizely web interface and the Optimizely script has been loaded

Suppose we have a simple A/B test set up with a control (we'll call it Original) and a variant (we'll call it Variant).

For this experiment (we'll call it Experiment A), the user will

We want to render ComponentA if the user is placed in the Original bucket, or render ComponentB if the user is placed in the Variant bucket.

The metric we will be tracking is when the component is clicked (we will call this event Clicked).

import React, { useState, useEffect } from 'react';
import optimizelyService from 'optimizely-service';
import { ComponentB } from '../ComponentB';
import { ComponentC } from '../ComponentC';

const ComponentA = () => {
  const [showComponentB, setShowComponentB] = useState(false);
  const clickHandler = () => optimizelyService.pushEvent('Clicked');

  useEffect(() => {
    optimizelyService.activatePage('MyPage');
    setShowComponentB(
      optimizelyService.activeVariationIs('Experiment A', 'Variant')
    );
  }, []);

  return showComponentB ? (
    <ComponentB onClick={clickHandler} />
  ) : (
    <ComponentC onClick={clickHandler} />
  );
};

That's it!

Exported functions

The code example above gives a pretty simple overview of what this library can provide. Here is a list of all of the functions supported by optimizely-service:

FunctionDescription
getActiveVariationGets the name of the currently activated variation for a given experiment
getActiveExperimentGets the state of the given experiment
activeVariationIsDetermines if a variation for a given experiment is active
pushEventPushes an event to Optimizely
activatePageActivates a Page API
trackUserAttributesPushes user attributes to Optimizely

Contribution

Not all of Optimizely's functionality is supported by this library. It was created mainly to support the most common use case of a basic A/B test with some event tracking. All PR's to help increase the amount of Optimizely functionality are fully welcome.

Keywords

FAQs

Package last updated on 12 Mar 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc