SDK Module: A/B Testing & Remote Configuration
You can use the Coda Platform to test configurations and also manage your game remotely
Coda SDK A/B Testing Module
Coda A/B Testing Module is responsible for handling remote configuration and A/B Testing procedures. We are currently fetching remote configuration and their default values that are available for the game from Coda Platform API. These configurations will be fetched when you link your Unity Project with your game from Coda SDK Settings / Developer Settings.
A/B Testing Variants
A/B Testing Module lets developers create custom A/B Testing variants. There are 5 primitive types that are supported as A/B Testing variants.


Entries on the upper side of the window show the already-defined variables, their types and their default values.
You can change Key, Type or Value of an existing entry or delete an entry altogether.
The lower part of the editor is used for introducing new variables.
Your changes will automatically be saved.
Boolean Variant
Value can be true or false.
You can fetch a boolean variant by calling GetBool(string variantKey) or you can check if a boolean variant key is defined by calling HasBool(string variantKey) functions.
Integer Variant
Value can be any integer value.
You can fetch an integer variant by calling GetInt(string variantKey) or you can check if an integer variant key is defined by calling HasInt(string variantKey) functions.
Float Variant
Value can be any float value.
You can fetch a float variant by calling GetFloat(string variantKey) or you can check if a float variant key is defined by calling HasFloat(string variantKey) functions.
Long Variant
Value can be any long value.
You can fetch a long variant by calling GetLong(string variantKey) or you can check if a long variant key is defined by calling HasLong(string variantKey) functions.
String Variant
Value can be any string text.
You can fetch a string variant by calling GetString(string variantKey) or you can check if a string variant key is defined by calling HasString(string variantKey) functions.
There are 17 default A/B Testing variants that are already defined for your project and they are being used by the Coda SDK Modules.
In order to change variant values or run A/B testing experiments on variants from Firebase Remote service, all of the A/B Testing variants (customs and the ones that are coming with Coda SDK by default) have to be declared with exact same key on the Firebase Remote Dashboard as well. If they are not created they will have the default value that is defined in Unity Editor/ Coda SDK Settings / Advanced Settings / AB Testing Module.
Full List of Predefined Remote Configs on Coda SDK
Below you'll find all the remote configs that are available to Coda Platform developers
Variant Name & Type | Key & Definition | Default Value | Example Setting |
---|---|---|---|
Skip After Rewarded (Boolean) | skipAfterRewarded: | true | true/false |
Skip Interstitial Below Progress (Float) | skipInterstitialBelowProgress: | 0.0f | 0.0f to 1.0f |
Max Interstitial Per Session (Integer) | maxInterstitialPerSession: | 10000 | 0 to Max integer value |
Max Interstitials Per Day (Integer) | maxInterstitialsPerDay: | 10000 | 0 to Max integer value |
Interstitial Ad Frequency (Integer) | interstitialAdFrequency: | 0 | 0 to Max integer value |
Interstitial After Level (Integer) | interstitialAfterLevel: | 0 | 0 to Max integer value |
Seconds Before First Interstitial (Integer) | secondsBeforeFirstInterstitial: | 25 | 0 to Max integer value |
Seconds Before First Interstitial First Session (Integer) | secondsBeforeFirstInterstitialFirstSession: | 25 | 0 to Max integer value |
Seconds Needed For Next Interstitial (Integer) | secondsNeededForNextInterstitial: | 25 | 0 to Max integer value |
Seconds Before Loading First Interstitial (Integer) | secondsBeforeLoadingFirstInterstitial: | 5 | 0 to Max integer value |
Seconds Before Loading Next Interstitial (Integer) | secondsBeforeLoadingNextInterstitial: | 5 | 0 to Max integer value |
Seconds Before Loading First Rewarded (Integer) | secondsBeforeLoadingFirstRewarded: | 5 | 0 to Max integer value |
Seconds Before Loading Next Rewarded (Integer) | secondsBeforeLoadingNextRewarded: | 5 | 0 to Max integer value |
Too Many Ad Count Rewarded Ad (Integer) | tooManyAdCountRewardedAd: | 20 | 0 to Max integer value |
Too Many Ad Count Interstitial Ad (Integer) | tooManyAdCountInterstitialAd: | 20 | 0 to Max integer value |
Too Many Ad Count Banner Ad (Integer) | tooManyAdCountBannerAd: | 50 | 0 to Max integer value |
Delay Seconds After Level Fail (float) | delaySecondsAfterLevelFail: | 0 | 0 to Max float value |
Excluded Levels (String) | excludedLevels: | "" | "5, 16, 21" |
Updated about 2 years ago