Varioqub Unity integration
Varioqub Unity is a plugin for the Unity3D platform. It includes the Varioqub SDK support for Android and iOS.
System requirements:
- Unity 2018.3 or later.
- External Dependency Manager.
To use the Varioqub Unity plugin, add and initialize the AppMetrica Unity plugin. For more information on how to do this, see the AppMetrica Unity documentation.
Follow this step-by-step guide to enable and initialize Varioqub Unity.
General integration recommendations
-
When starting a new session, call the
ActivateConfig()
method to retrieve the stored flag values. -
Run
Fetch()
in the background to export the new flag values from the server and activate them when the next session starts. -
We don't recommend calling the
ActivateConfig()
method mid-session because it can cause inconsistent app behavior.
Step 1. Enable the Varioqub Unity plugin
Add the following dependencies to Packages/manifest.json:
{
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"com.google.external-dependency-manager",
"com.yandex.varioqub"
]
}
],
"dependencies": {
"com.google.external-dependency-manager": "1.2.183",
"com.yandex.varioqub": "0.1.0"
}
}
-
Follow the documentation to enable External Dependency Manager.
-
Add the Varioqub Unity plugin to the dependencies in Packages/manifest.json:
{
"dependencies": {
"com.yandex.varioqub": "https://github.com/appmetrica/varioqub-unity-plugin.git#v0.1.0"
}
}
Step 2. Initialize the library
Initialize the Varioqub library using the initVarioqubWithAppMetricaAdapter()
method:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Com.Yandex.Varioqub;
public class VarioqubSDK : MonoBehaviour {
IEnumerator RepeatFetch() {
while (true) {
Varioqub.Fetch(
onSuccessDelegate: () => {
Debug.Log("Fetch successed!");
},
onErrorDelegate: error => {
Debug.Log($"Error: {error}!");
}
);
yield return new WaitForSeconds(10f);
}
}
void Awake() {
var settings = new VarioqubSettings("appmetrica.1234567");
settings.Logs = true;
settings.ThrottleInterval = 2;
settings.ClientFeatures = new Dictionary<string, string>(){
{"isNight", "true"}
};
Varioqub.InitVarioqubWithAppMetricaAdapter(settings);
Varioqub.ActivateConfig();
StartCoroutine(RepeatFetch());
}
}
To initialize the library, use the initVarioqubWithAppMetricaAdapter(VarioqubSettings settings)
method. It takes a VarioqubSettings
object as a parameter.
Contains required and optional settings.
Required
-
clientID
: Project ID specified asappmetrica.XXXXXX
, where XXXXXX is the app ID from the AppMetrica interface. For example,VarioqubSettings("appmetrica.1234567")
.Tip
You can get the application ID from the AppMetrica Settings page: copy it in General settings → Application ID.
Optional
-
ClientFeatures
: List of custom parameters. For example, you can pass a flag indicating if the user is subscribed to newsletters. -
ThrottleInterval
: Interval between config updates, in seconds. This is only recommended for testing purposes. -
URL
: Changes the URL for server responses. Only used for testing. -
Logs
: Enables internal logging. To help us diagnose your problem, please enable logging and attach the log file with a description of the problem when submitting your support request. -
activateEvent
: Sends an event when the flag configuration is activated. Event sending is enabled by default.
Step 3. Set the default configuration
You can set up a default configuration to have your app use your preferred parameter values before it connects to a remotely configured server. To do that, send the list of parameters using the SetDefaults(IDictionary<string, object> defaults)
method.
You can download the XML default configuration file from the Flag configuration page.
Step 4. Run a background update of the flag configuration and activate it
To use the most recent flag configuration from the interface, run a background configuration update using the Fetch()
method.
Varioqub.Fetch(
onSuccessDelegate: () => {
Debug.Log("Fetch successed!");
},
onErrorDelegate: error => {
Debug.Log($"Error: {error}!");
}
);
Each time you receive the latest version of the configuration (most often this occurs when starting a new session), you need to activate it using the ActivateConfig()
method.
Tip
Main use case:
Regularly download the configuration and activate it when the app is launched. That guarantees your flags won't change during user sessions. We recommend launching activation as soon as possible.
Varioqub.ActivateConfig();
Getting flags from the interface
Flag values are retrieved and returned in the following order:
- Flag is present in the experiment.
- Flag is present in the loaded configuration.
- Flag is present in the default configuration.
Flag getters:
Varioqub.GetString(key, default)
.
Code example:
Varioqub.GetString("key", "default_value");
Obtaining the device ID to test the experiment
To get the device ID, use the Varioqub.GetId()
method:
Varioqub.GetId();
Note
Before the first successful Fetch()
call, the Varioqub.GetId()
method may return empty responses.
To learn more about creating and testing experiments, see Creating an experiment.