Optimizely will be sunsetting Full Stack Experimentation on July 29, 2024. See the recommended Feature Experimentation migration timeline and documentation.

Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySumbit a ticketLog In
GitHubNuGetDev CommunitySumbit a ticket

Get All Feature Variables

This topic describes the Get All Feature Variables method, which evaluates and returns all feature variables for the specified feature flag.

Evaluates and returns all feature variables for the specified feature flag.

This method takes into account the user attributes passed in, to determine if the user is part of the audience that qualifies for the experiment.

Sample call

func (o *OptimizelyClient) GetAllFeatureVariables(featureKey string, userContext entities.UserContext) (optlyJSON *optimizelyjson.OptimizelyJSON, err error)

Version

SDK v1.3 and higher

Description

For each feature variable associated with the feature flag, Get All Feature Variables returns all feature variable keys. For each key, it returns either the default or the user-specific variable value, depending on which audience the user is bucketed into. For example:

  • If the user is in a "Beta" audience on a feature rollout, this method returns user-specific values: {"welcome_snippet": "you're in our beta!", "new_feature_color": "red"}.
  • If the user is in a feature tests's control_variation in which the feature is disabled, this method returns the default values: {"welcome_snippet": "", "new_feature_color": "grey"}.

Note that depending on the audience rules, this method can return a mix of default and user-specific variable values.

🚧

Important

Unlike Is Feature Enabled, the Get All Feature Variables method does not trigger an impression event. This means that if you are running a feature test, events will not be counted until you call Is Feature Enabled. If you do not call Is Feature Enabled, you will not see any visitors on your results page.

Parameters

Required and optional parameters are listed below.

ParameterTypeDescription
feature_key
required
stringThe feature key is defined in the Features dashboard.
userContext
required
entities.UserContextHolds information about the user, such as the userID and the user's attributes.

Returns

Returns an OptimizelyJSON object. For example, you can call your_returned_OptJson.toMap() to get the following example JSON representation:

{
   "double_key": 10.02,
   "int_key": 4243,
   "string_key": "staging",
   "bool_key": true,
   "json_key1": {
     "test": 123,
     "test_2": "en-us"
    },
   "json_key2": {
     "test_3": 1.4
    }
}

Example

attributes := map[string]interface{}{
        "DEVICE": "iPhone",
        "hey":    2,
}

user := entities.UserContext{
        ID:         "userId",
        Attributes: attributes,
}

optlyJSON, err := optlyClient.GetAllFeatureVariables("feature_key", user)

See also

Get Feature Variable

Side effects

Invokes the DECISION notification listener if this listener is enabled. Sends only one notification for all variables.

Source files

The language/platform source file containing the implementation for Go is client.go.