Feature Flag Determination

A feature flag has an on and off state. You will set different features according to each state.

Once a feature flag is applied, a specific user from your traffic should be able to either receive an off or on status. This on/off status determination can be done through the Hackle SDK.

🚧

Unity Editor

Unity SDK relies on Android and iOS SDK.
Therefore, features flags created on the Unity Editor always return as false, which means the feature flag is turned off.

IsFeatureOn

You can pass a feature key to the isFeatureOn() method to receive status results for the user. After receiving the status, we can then implement the logic according to each status.

In the example code below, we are passing feature key 42, and the user identifier of the user who will receive the status is "ae03e1adf".

// Determines the status of the feature flag to assign users with a feature key of 42.
// For undetermined cases, users are assigned to false (off status). 
bool isFeatureOn = hackle.IsFeatureOn(42);

if (isFeatureOn) {
    // Logic for on status
} else {
    // Logic for off status
}

FeatureFlagDetail

The feature_flag_detail() method works like the IsFeatureOn() method but additionally provides a reason for determining the status of a particular user. This can be useful when you want to check whether the manual allocation is working well or when you think that the traffic allocation you have set is not being reflected in your results.

You must pass a feature key as a parameter. For the example code below, we are passing feature key 42.

// Status determination details
HackleFeatureFlagDecision decision = hackle.FeatureFlagDetail(42);

// Feature flag on/off results 
bool isFeatureOn = decision.isOn;

// Reason for status determination
string reason = decision.reason;

Please refer to the table below for the full list of reasons for different status determinations.

Reason

Description

Feature Status

SDK_NOT_READY

The SDK is not ready to use.
(e.g. trying to initialize with the wrong SDK key)

Default status(off)

FEATURE_FLAG_NOT_FOUND

No feature flags were found for the function key you passed in.
The feature key may be incorrect or the corresponding feature flag may be in an archived state.

Default status(off)

FEATURE_FLAG_INACTIVE

The feature flag is off.

Default status(off)

INDIVIDUAL_TARGET_MATCH

User has been matched to individual targeting settings.

Set to individual targeting

TARGET_RULE_MATCH

User has been matched to audience targeting settings.

Set to audience targeting

DEFAULT_RULE

User has not been matched to either individual targeting or audience targeting.

Default status (off)

EXCEPTION

An unknown error has occurred.

Default status(off)


Did this page help you?