Flag deliveries

Using a feature flag delivery, you can:

  • Deploy a flag to a percentage of your user traffic.
  • Roll the flag back if needed.
  • Target your delivery to custom audiences, so that only a subset of users (for example, users in Spain) gets access to the flag.

Deliveries take effect immediately, without a new code deploy. All of this functionality is available with microsecond performance impact via free (see plans for advanced features), easy-to-use, open source SDKs.

Flag deliveries are a type of flag rule, as are A/B tests. The following table compares A/B tests and flag deliveries:


Flag Delivery


Lets you gather metrics data so you can compare multiple flag variations.

Lets you deploy a flag that you've already tested or measured some other way, such as qualitative feedback.

User impressions

When a user is assigned to an experiment, Optimizely sends a decision event so that information is recorded in your test results.

When a user is assigned to a delivery, Optimizely does not send a decision event. This means that extra network traffic and test results aren't generated.


Test multiple variations—on versus off, or a multivariate test of different configurations. You can create one experiment per flag.

Each delivery exposes users to one variation. You can have multiple deliveries per flag.

Started by

Decide method

Decide method

Advantages of using flag deliveries

Flag deliveries help you mitigate risk. For example, if you want to be sure that a new feature doesn’t degrade the visitor experience, start by launching the feature flag to a small percentage of visitors, then increase. Decrease the percentage exposed to the flag if you encounter problems with the new feature.

Deliveries also let you launch winning flag variations that you identify through experimentation. After you find a winning variation, use a delivery to gradually expose the variation to your visitors in a controlled fashion.

Deliver to multiple audiences

Often, you want to deliver more strategically than to a random percent of your total user base. You can use audiences to do so. For more information, see Target audiences.
Here are some examples of how to use multiple audiences to deliver flags:

Deliver sequentially to different user bases

First you gradually deliver, or roll out, a new feature flag to beta users. Second, you retain the beta user delivery at 100% and roll out to your lowest value customers. Finally, you roll out the flag for your highest-value customers.


Roll out different percentages of traffic to different accounts

Deliver different flag variations per environment

For each environment, you can roll out the same flag with different rules for:

  • audiences
  • flag variations
  • traffic

For example, you roll out to “Everyone” in development while targeting only “Internal users” in production.


Target different users per environment

Deliver with different configurations per audience

For each audience or combination of audiences, you can deliver with different feature flag configurations ("variations"). For example, you deliver a feature flag with an English-language variation for your USA audience, and deliver the same flag with a variation for your Portuguese audience. For information about variations, see Flag variations.


Regional deliveries

Bucketing logic and traffic percentages in flag deliveries

User bucketing for deliveries is:

  • deterministic: A user sees the same flag variation every time, across all devices they use, whether they're on their laptop, phone, or tablet. They are bucketed according to an efficient and deterministic hash based on their user ID.
  • not always sticky: You can increase traffic monotonically and retain bucketing. However, if you decrease the traffic exposed to a flag delivery, then increase the traffic again, users previously exposed to the flag might no longer see it.

For more information about how bucketing logic works, see How bucketing works.

Deliver a flag

To get started delivering a flag, see Run flag deliveries.