OptimizelyUserContext for the Python SDK
Describes theOptimizelyUserContext object, which lets you make flag decisions and track events for a user context for the Optimizely Feature Experimentation Python SDK.
The OptimizelyUserContext object lets you make flag decisions and track events for a user context you have already created using theCreate User Context method.
Also, if you have configuredReal-Time Audiences for Feature Experimentation, you can evaluate if your user would qualify for areal-time audience from Optimizely Data Platform (ODP).
OptimizelyUserContext minimum SDK minimum SDK version
OptimizelyUserContext is supported on SDK v3.8.0 and higher.
Forced decision methods minimum SDK minimum SDK version
Theset_forced_decision(),get_forced_decision(),remove_forced_decision() andremove_all_forced_decision() methods are supported on 4.0.0 and higher.
Real-Time Audiences for Feature Experimentation minimum SDK version
Thefetch_qualified_segments() andis_qualified_for() methods are supported on version 5.0.0 and higher.
OptimizelyUserContext definition
OptimizelyUserContext definitionThe following code sample demonstrates the object definition forOptimizelyUserContext:
class OptimizelyUserContext(object): # set an attribute for the user def set_attribute(self, attribute_key, attribute_value): # get attributes for the user def get_user_attributes(self): # make a decision about which flag variation the user buckets into for the flag key def decide(self, key, options=None): # make decisions about which flag variations the user buckets into for flag keys def decide_for_keys(self, keys, options=None): # make decisions about which flag variations the user buckets into for all flags def decide_all(self, options=None): # track user event def track_event(self, event_key, event_tags=None): # OptimizelyDecisionContext class OptimizelyDecisionContext(object): def __init__(self, flag_key, rule_key): # OptimizelyForcedDecision class OptimizelyForcedDecision(object): def __init__(self, variation_key): # Sets the forced decision (variation_key) for a given decision context def set_forced_decision(self, OptimizelyDecisionContext, OptimizelyForcedDecision): # Returns the forced decision for a given decision context def get_forced_decision(self, OptimizelyDecisionContext): # Removes the forced decision for a given decision context def remove_forced_decision(self, OptimizelyDecisionContext): # Removes all forced decisions bound to this user context def remove_all_forced_decisions(self): # The following methods require Real-Time Audiences for Feature Experimentation. # See note following this code sample. # Returns the saved results of **fetch_qualified_segments()**. # Can be None if not properly updated with fetch_qualified_segments(). def get_qualified_segments(self): # Overwrite the qualified segments array. # This lets you bypass the remote fetching process from ODP # or for utilizing your own fetching service. def set_qualified_segments(self, segments): # Fetch all qualified audience 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(callback=None, options=None): # Check is the user qualified for the given segment. def is_qualified_for(self, segment):📘
NoteYou must first configureReal-Time Audiences for Feature Experimentation to be able to call the
get_qualified_segments(),set_qualified_segments(),fetch_qualified_segments(), andis_qualified_for()methods.
Properties
The following table shows attributes for theOptimizelyUserContext object:
Attribute | Type | Comment |
|---|---|---|
| String | The ID of the user |
| Dict | A dictionary of custom key-value pairs specifying attributes for the user that are used foraudience targeting. You can pass the dictionary with the user ID when you create the user. |
Methods
The following table shows the methods for theOptimizelyUserContext 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. The method returns the decision result in an OptimizelyDecision object, which contains all data required to deliver the flag rule.SeeDecide methods |
| Returns a dictionary of flag decisions for specified flag keys.SeeDecide methods |
| Returns decisions for all active (unarchived) flags for a user.SeeDecide 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.SeeTrack Event |
| Forces a user into a specific variation.SeeSet Forced Decision |
| Returns what variation the user was forced into.SeeGet Forced Decision |
| Removes a user from a specific forced variation.SeeRemove Forced Decision |
| Removes a user from all forced variations.SeeRemove All Forced Decisions |
| Fetch all ODP real-time audiences that the user context qualified for. Has a synchronous and asynchronous implementation. SeeReal-Time Audiences for Feature Experimentation segment qualification methods. |
| Checks if the user context qualifies for a given ODP real-time audience. SeeReal-Time Audiences for Feature Experimentation segment qualification methods. |
** RequiresReal-Time Audiences for Feature Experimentation.
See also
Source files
The language and platform source files containing the implementation for Python are available onGitHub.
Updated 16 days ago