OptimizelyUserContext for the Ruby SDK
Describes the OptimizelyUserContext
object for the Ruby SDK, which lets you make flag decisions and track events for a user context in Optimizely Feature Experimentation.
The OptimizelyUserContext
object lets you make flag decisions and track events for a user context that you created using the Create User Context method.
Also, if you have Real-Time Audiences for Feature Experimentation configured between Optimizely Data Platform (ODP) and Optimizely Feature Experimentation, you can evaluate if your user would qualify for a real-time audience segment.
OptimizelyUserContext minimum SDK version
OptimizelyUserContext is supported on SDK v3.8 and higher.
Forced decision methods minimum SDK version
set_forced_decision()
, get_forced_decision()
, remove_forced_decision()
and remove_all_forced_decisions()
methods are supported on v3.10.0 and higher.
Real-Time Audiences for Feature Experimentation minimum SDK version
fetch_qualified_segments()
and qualified_for?()
methods are supported on v5.0.0 and higher.
OptimizelyUserContext
definition
OptimizelyUserContext
definitionThe 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
# The following methods require Real-Time Audiences for Feature Experimentation
# See note following the code sample.
# An array of audience segment names that the user is qualified for.
# The result of **fetch_qualified_segments()** is saved here.
# Can be nil if not properly updated with fetch_qualified_segments().
#
# You can read and write directly to the qualified segments array.
# This lets you bypass the remote fetching process from ODP
# or for utilizing your own fetching service.
def qualified_segments
# Fetch all qualified segments for the user context.
# If no callback is provided, this method fetches the qualified segments
# and return a boolean signifying success.
#
# If a callback is provided, the method fetches segments in a separate thread,
# invoke the provided callback when results are available, and return the thread handle.
def fetch_qualified_segments(options, &block)
# Check is the user qualified for the given segment.
def qualified_for?(segment)
end
end
NoteYou must first configure Real-Time Audiences for Feature Experimentation to run the
qualified_segments()
,fetch_qualified_segments()
, andqualified_for?()
methods.
Properties
The following table shows attributes for the OptimizelyUserContext
object:
Attribute | Type | Comment |
---|---|---|
| String | The ID of the user |
| 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 |
---|---|
| Pass a custom user attribute as a key-value pair to the user context. |
| Returns a decision result for a flag key for a user in an OptimizelyDecision object, which contains all data required to deliver the flag rule. See Decide methods |
| Returns a map of flag decisions for specified flag keys. See Decide methods |
| Returns decisions for all active (unarchived) flags for a user. See Decide methods |
| Tracks a conversion event for a user (an action a user takes) and logs an error message if the specified event key does not match any existing events. See Track Event |
| Forces a user into a specific variation. See Set Forced Decision |
| Returns what variation the user was forced into. See Get Forced Decision |
| Removes a user from a specific forced variation. See Remove Forced Decision |
| Removes a user from all forced variations. See Remove All Forced Decisions |
| Fetch all Optimizely Data Platform (ODP) real-time audiences that the user context qualified for. See Real-Time Audiences for Feature Experimentation segment qualification methods. |
| Check if the user context qualified for a given ODP real-time audience. See Real-Time Audiences for Feature Experimentation segment qualification methods. |
** Requires Real-Time Audiences for Feature Experimentation.
See Also
Source files
The language and platform source files containing the implementation for Ruby are available on Github.com.
Updated 7 days ago