# Feature Experimentation & Rollout

Feature Experimentation & Rollout (FE\&R) is AB Tasty's server-side experimentation solution for managing feature deployments using feature **flags** and **context keys**. It enables secure, controlled backend experimentation with seamless server-side implementation.

### Features

* **A/B experiments**: Segment your audience to test multiple feature variations simultaneously.
* **Feature Flags**: Toggle new features on or off without code deployment for rapid iteration and agile development.
* **Custom Targeting**: Target specific user segments by location, device, behavior, or custom criteria.
* **Real-Time Analytics**: Access real-time data and insights for each feature variation.
* **Gradual Rollouts**: Deploy features to limited audience first to ensure stability before wider release.

### **Server-Side vs Client-Side experiments**

Server-side and client-side experiments differ in implementation and use cases:

#### **Server-Side experiments**:

* **Execution**: experiments are run on the server before content reaches the user's device.
* **Use Cases**: Backend logic, database interactions, or ensuring consistency across devices and sessions.
* **Advantages**: Greater control, secure handling of sensitive data, minimal client-side performance impact.
* **Implementation in AB Tasty**: Integrates with your backend systems through APIs and feature flags for precise experimentation and real-time updates.

#### **Client-Side experiments**:

* **Execution**: Runs in the user's browser or app after receiving content from the server.
* **Use Cases**: UI/UX changes, front-end design adjustments, or experiments without sensitive data requirements.
* **Advantages**: No backend changes required, quick setup, immediate visual feedback.
* **Implementation in AB Tasty**: Use the web editor for browser-based changes and JavaScript for advanced testing and targeting.

AB Tasty supports both server-side and client-side experimentation with integrated tools for management, tracking, and analysis.

### **Flags and Context keys**

Feature Experimentation and Rollout (FE\&R) allows you to manage feature deployments using flags and context keys. This approach helps control access to features and perform targeted testing.

#### **Feature Flags**

Feature flags toggle feature availability without code deployment. With flags, you can:

* Gradually release features to specific user segments.
* A/B test different feature versions across user groups.
* Disable features immediately if issues arise.

#### **Context Keys**

Context keys define conditions for feature access based on user attributes or behavior. Use context keys to:

* Personalize contents based on user preferences or location.
* Target rollouts using specific parameters like device type or user history.

### **Installing FE\&R SDK**

To use FE\&R, you need to install the [FE\&R SDK](https://docs.developers.flagship.io/docs/getting-started-with-flagship)

### Tutorials

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td></td><td><a href="feature-experimentation-and-rollout/managing-campaigns-in-fe-and-r">managing-campaigns-in-fe-and-r</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/Ee8uBfg7sZJ4nj1bAbI0/600x600_Feature_Experimentation_header_280124.png">600x600_Feature_Experimentation_header_280124.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/managing-flags">managing-flags</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/0uT9F2dsuwM91lDxhEg9/Feature%20Experimentation.png">Feature Experimentation.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/managing-context-keys">managing-context-keys</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/Ee8uBfg7sZJ4nj1bAbI0/600x600_Feature_Experimentation_header_280124.png">600x600_Feature_Experimentation_header_280124.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/managing-folders-in-fe-and-r">managing-folders-in-fe-and-r</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/Ee8uBfg7sZJ4nj1bAbI0/600x600_Feature_Experimentation_header_280124.png">600x600_Feature_Experimentation_header_280124.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/assigning-users-to-variations-with-traffic-repartitions">assigning-users-to-variations-with-traffic-repartitions</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/Ee8uBfg7sZJ4nj1bAbI0/600x600_Feature_Experimentation_header_280124.png">600x600_Feature_Experimentation_header_280124.png</a></td></tr></tbody></table>

### How-to guides

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="image"></th></tr></thead><tbody><tr><td></td><td><a href="feature-experimentation-and-rollout/how-to-create-server-side-a-b-tests">how-to-create-server-side-a-b-tests</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/NjcgVYXAVkUbqyZMt3ep/Content_personalization.png">Content_personalization.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/how-to-create-feature-toggles-and-manage-rollouts">how-to-create-feature-toggles-and-manage-rollouts</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/NjcgVYXAVkUbqyZMt3ep/Content_personalization.png">Content_personalization.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/how-to-create-server-side-personalization">how-to-create-server-side-personalization</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/NjcgVYXAVkUbqyZMt3ep/Content_personalization.png">Content_personalization.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/how-to-configure-feature-experimentation-and-rollout-integrations">how-to-configure-feature-experimentation-and-rollout-integrations</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/NjcgVYXAVkUbqyZMt3ep/Content_personalization.png">Content_personalization.png</a></td></tr><tr><td></td><td><a href="feature-experimentation-and-rollout/feature-experimentation-settings">feature-experimentation-settings</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/NjcgVYXAVkUbqyZMt3ep/Content_personalization.png">Content_personalization.png</a></td></tr></tbody></table>

### Glossary

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Glossary</td><td><a href="feature-experimentation-and-rollout/fe-and-r-glossary">fe-and-r-glossary</a></td><td><a href="https://content.gitbook.com/content/6Yw9IRJ6KbbucQPwZUCZ/blobs/gmd1clKDbJqE8R1WOOL2/Website.png">Website.png</a></td></tr></tbody></table>
