Rollout Options

If the requirement is to make a new feature anonymously available to a customer group for testing, an A/B split or A/B test is a good option. For this purpose a new feature is made available to a group and not to a group. (A/B)
Swichover supports this functionality and, in addition to percentage rollouts, also offers the possibility of carrying out multivariate tests. This function is useful, for example, if you want to test different versions of a new function.

Percentage rollout

This option is available from starter package. You will find the feature on the flag configuration page next to „Add Condition“ Button:

You can add one Rollout option per feature toggle:

If rollout options are to be combined with conditions, this is also possible.

Rollout options on client side

In order for the client to be able to assign to the respective group, it is essential that an identifier is defined and provided when evaluating the toggle. For this purpose the key „uuid“ must be given any value in the context object. Suitable values are e.g. email or userID of a user.

Example:

/* Feature flag has rollout options so we must provide a uuid.
   Here we use the email */
$ctx = new Context([
    "uuid" => "brandon.taylor@bigcorp.org"
]);
$isFeatureEnabled = $client->toggleValue('my-big-feature', false, $ctx);
if($isFeatureEnabled) {
 //do magic stuff
} 

PLEASE NOTE We do not send any context data (and such any user data) to our servers. All evaluations happens on the client.

A/B-SPLIT (Multivariation)

This option is available from professional package. You will find the feature on the flag configuration page next to „Add Condition“ Button.

Basic understanding of multivariate testing

While percentage rollouts are divided into 2 user groups and a feature is displayed or not on a boolean value (true/false), multivariate tests can be used to test different characteristics of functions. A simple example could be a button with a button text on which a customer should click. In order to check which text is most suitable for the button, different variants of the text should be tested, which should be randomly distributed over the whole customer group.

Multi variation supports the same data types as normal toggles do, so a boolean multi variation is like a percentage rollout. We support this, but in this constellation more than 2 buckets do not make sense. The other data types are more interesting. As described in the example, we want to provide our user with different button texts in order to check which text is best accepted by the customer. For that, our configuration should look like:

On client side your code could look like:

$client = new SwitchoverClient('<SDK Key>');

$buttonText = $client->toggleValue('buttonTextTest',
                        array("label" => "Login"),
                        new Context(["uuid" => "brandon.taylor@acme.de"]));

echo "<button>".$buttonText["label"]."</button>";

//some other stuff

Depending on the UUID, the value configured in Switchover is evaluated and output.