Track dynamic variables
General principles
Section titled General principlesUsage
Section titled UsageDynamic variables are additional information on the session that can be used to segment sessions.
For example, they can include information on the A/B Test variations displayed to the current user.
Limits
Section titled LimitsOn the server side
Section titled On the server side- It is possible to save up to 40 distinct dynamic variable keys per screenview. If more are received, only the first 40 keys will be kept.
- If you are using the same key twice on the same screenview, the last value associated with the key will be collected.
On the SDK side
Section titled On the SDK side- Every dynamic variable is composed of a pair of key (max. 50 characters) and value (max. 255 characters string or number of type
Long
between 0 and 232 - 1). In case these maximums length are reached, the SDK will automatically trim the exceeding characters. - If key or value are empty, the SDK will instead send the literal string “cs-empty”.
Defining dynamic variables
Section titled Defining dynamic variablesTo define and send a dynamic variable, directly use the key and String/Long value:
Type of the value — The value can be either a whole number or a string. For each case, available features won’t be the same in the Contentsquare app:
- For whole numbers, you will be able to do some algebra. Example: sessions with dynamic variable key = “numberOfFriends” and value >= 10
- For strings, auto-completion and Regular Expression will be available. Example: sessions with dynamic variable key = “accountType” and value = “Premium”
Sending a dynamic variable for each session
Section titled Sending a dynamic variable for each sessionYou may want to send a dynamic variable for each session (like the user’s country or store). While triggering the dynamic variable at app launch will cover most cases, it will not be enough. A session can start when the app is put in foreground, after staying in background for more than 30 minutes. See Session definition section for more information.
That is why we also recommend sending such dynamic variable every time the app enters foreground.
You can use the ProcessLifecycleOwner
Class to detect foreground and trigger a dynamic variable.