OptimizelyUserContext
This topic describes the OptimizelyUserContext Object for the Optimizely Feature Experimentation Ruby SDK, which allows you to make flag decisions and track events for a user context.
The OptimizelyUserContext object allows you to make flag decisions and track events for a user context that you have already created using the Create User Context method.
OptimizelyUserContext version
OptimizelyUserContext is supported on SDK v3.8 and higher.
Forced decision methods version
set_forced_decision()
, get_forced_decision()
, remove_forced_decision()
and remove_all_forced_decisions()
methods are supported on v3.10.0 and higher.
OptimizelyUserContext definition
The following code shows the object definition for OptimizelyUserContext:
module Optimizely
class OptimizelyUserContext
attr_reader :user_id
# Create an instance of the Optimizely User Context. Pass in user id and optionally user attributes
def initialize(optimizely_client, user_id, user_attributes)
# set an attribute for the user
def set_attribute(attribute_key, attribute_value)
# get attributes for the user
def user_attributes
# make a decision about which flag variation the user buckets into for the flag key
def decide(key, options = nil)
# make decisions about which flag variations the user buckets into for flag keys
def decide_for_keys(keys, options = nil)
# make decisions about which flag variations the user buckets into for all flags
def decide_all(options = nil)
# track user event
def track_event(event_key, event_tags = nil)
# OptimizelyDecisionContext
OptimizelyDecisionContext = Struct.new(:flag_key, :rule_key)
# OptimizelyForcedDecision
OptimizelyForcedDecision = Struct.new(:variation_key)
# Sets the forced decision (variation_key) for a given decision context
def set_forced_decision(context, decision)
# Returns the forced decision for a given decision context
def get_forced_decision(context)
# Removes the forced decision for a given decision context
def remove_forced_decision(context)
# Removes all forced decisions bound to this user context
def remove_all_forced_decisions
end
end
Properties
The following table shows attributes for the OptimizelyUserContext object:
Attribute | Type | Comment |
---|---|---|
user_id | String | The ID of the user |
(optional) attributes | Map | A map of custom key-value pairs specifying attributes for the user that are used for audience targeting. You can pass the map with the user ID when you create the user. |
Methods
The following table shows methods for the OptimizelyUserContext object:
Method | Comment |
---|---|
set_attribute | Pass a custom user attribute as a key-value pair to the user context. |
decide | Returns a decision result for a flag key for a user. The decision result is returned in an OptimizelyDecision object, and contains all data required to deliver the flag rule. See Decide methods |
decide_for_keys | Returns a map of flag decisions for specified flag keys. See Decide methods |
decide_all | Returns decisions for all active (unarchived) flags for a user. See Decide methods |
track_event | Tracks a conversion event (in other words, an action a user takes) for a user. Logs an error message if the specified event key doesn't match any existing events. See Track Event |
set_forced_decision | Forces a user into a specific variation. See Set Forced Decision |
get_forced_decision | Returns what variation the user was forced into. See Get Forced Decision |
remove_forced_decision | Removes a user from a specific forced variation. See Remove Forced Decision |
remove_all_forced_decisions | Removes a user from all forced variations. See Remove All Forced Decisions |
See Also
Source files
The language/platform source files containing the implementation for Ruby is optimizely.rb.
Updated about 2 months ago