Documentation Index

Fetch the complete documentation index at: https://academy.insiderone.com/llms.txt

Use this file to discover all available pages before exploring further.

Content Optimizer

Prev Next

Suggested readings: App Content Optimizer, Use Cases for App Content Optimizer

Content Optimizer lets you define variables (strings, ints, booleans) on the Insider dashboard and pull their optimized values at runtime. It's typically used for A/B Testing copy, prices, banners, or feature flags without shipping a new build.

The SDK exposes two parallel families of six methods: one cached and one uncached.

FamilyBehavior
getContent…WithName(...)
Uses the device-local cache. Returns the last value the SDK fetched; refreshes in the background.
getContent…WithoutCache(...)
Bypasses the cache and queries the backend.

Retrieving Content with Stored Data

The Content Optimizer feature provides methods that store the last retrieved data on the device. When using these methods, the SDK retrieves and returns the most recently fetched value, reducing the need for repeated network requests. This approach enhances performance and ensures consistent content availability across sessions.

If you prefer to prioritize efficiency and reliability, you can use these methods to maintain seamless content delivery without requiring a fresh data request each time.

Get string data

This method allows you to retrieve a string type of data.

your title goes here
To add Content Optimizer variables, you must first add your device as a test device. After adding it as a test device, you need to trigger the Content Optimizer method to display the respective variable in the Content Optimizer variables.
ParameterType
variableNameString
defaultValueString
dataTypeContentOptimizerDataType

Method Signature

public String getContentStringWithName(String variableName, String defaultValue, ContentOptimizerDataType dataType)
fun getContentStringWithName(
     variableName: String,
     defaultValue: String,
     dataType: ContentOptimizerDataType
 ): String

Method Example

Insider.Instance.getContentStringWithName("variableName", "defaultValue", ContentOptimizerDataType.ELEMENT);
val title = Insider.Instance.getContentStringWithName(
     "home_hero_title",
     "Welcome",
     ContentOptimizerDataType.ELEMENT
 )

Get boolean data

This method allows you to retrieve a boolean type of data.

your title goes here
To add Content Optimizer variables, you must first add your device as a test device. After adding it as a test device, you need to trigger the Content Optimizer method to display the respective variable in the Content Optimizer variables.
ParameterType
variableNameString
defaultValueBoolean
dataTypeContentOptimizerDataType

Method Signature

public boolean getContentBoolWithName(String variableName, boolean defaultValue, ContentOptimizerDataType dataType)
fun getContentBoolWithName(
     variableName: String,
     defaultValue: Boolean,
     dataType: ContentOptimizerDataType
 ): Boolean

Method Example

Insider.Instance.getContentBoolWithName("variableName", true, ContentOptimizerDataType.ELEMENT);
val wishlistEnabled = Insider.Instance.getContentBoolWithName(
     "feature_wishlist_enabled",
     true,
     ContentOptimizerDataType.ELEMENT
 )

Get integer data

This method allows you to retrieve an integer type of data.

your title goes here
To add Content Optimizer variables, you must first add your device as a test device. After adding it as a test device, you need to trigger the Content Optimizer method to display the respective variable in the Content Optimizer variables.
ParameterType
variableNameString
defaultValueInteger
dataTypeContentOptimizerDataType

Method Signature

public int getContentIntWithName(String variableName, int defaultValue, ContentOptimizerDataType dataType)
fun getContentIntWithName(
     variableName: String,
     defaultValue: Int,
     dataType: ContentOptimizerDataType
 ): Int

Method Example

Insider.Instance.getContentIntWithName("variableName", 10, ContentOptimizerDataType.ELEMENT);
val discount = Insider.Instance.getContentIntWithName(
     "checkout_discount_percent",
     10,
     ContentOptimizerDataType.ELEMENT
 )

Retrieving Content Without Stored Data

For use cases that require real-time content updates, alternative methods can be used that always request the latest data from the backend instead of using stored values. These methods ensure that the most up-to-date information is retrieved at the time of request, making them ideal for time-sensitive campaigns or dynamic content updates.

By using this approach, you gain full control over content freshness, ensuring that the latest data is always reflected in your applications. If real-time data is unavailable at the time of the request, the specified default value will be returned, ensuring a smooth user experience.

Get string data

This method allows you to retrieve a string type of data.

your title goes here
To add Content Optimizer variables, you must first add your device as a test device. After adding it as a test device, you need to trigger the Content Optimizer method to display the respective variable in the Content Optimizer variables.
ParameterType
variableNameString
defaultValueString
dataTypeContentOptimizerDataType

Method Signature

public String getContentStringWithoutCache(String variableName, String defaultValue, ContentOptimizerDataType dataType)
fun getContentStringWithoutCache(
     variableName: String,
     defaultValue: String,
     dataType: ContentOptimizerDataType
 ): String

Method Example

Insider.Instance.getContentStringWithoutCache("variableName", "defaultValue", ContentOptimizerDataType.ELEMENT);
val title = Insider.Instance.getContentStringWithoutCache(
     "home_hero_title",
     "Welcome",
     ContentOptimizerDataType.ELEMENT
 )

Get boolean data

This method allows you to retrieve a boolean type of data.

your title goes here
To add Content Optimizer variables, you must first add your device as a test device. After adding it as a test device, you need to trigger the Content Optimizer method to display the respective variable in the Content Optimizer variables.
ParameterType
variableNameString
defaultValueBoolean
dataTypeContentOptimizerDataType

Method Signature

public boolean getContentBoolWithoutCache(String variableName, boolean defaultValue, ContentOptimizerDataType dataType)
fun getContentBoolWithoutCache(
     variableName: String,
     defaultValue: Boolean,
     dataType: ContentOptimizerDataType
 ): Boolean

Method Example

Insider.Instance.getContentBoolWithoutCache("variableName", true, ContentOptimizerDataType.ELEMENT);
val wishlistEnabled = Insider.Instance.getContentBoolWithoutCache(
     "feature_wishlist_enabled",
     true,
     ContentOptimizerDataType.ELEMENT
 )

Get integer data

This method allows you to retrieve an integer type of data.

your title goes here
To add Content Optimizer variables, you must first add your device as a test device. After adding it as a test device, you need to trigger the Content Optimizer method to display the respective variable in the Content Optimizer variables.
ParameterType
variableNameString
defaultValueInteger
dataTypeContentOptimizerDataType

Method Signature

public int getContentIntWithoutCache(String variableName, int defaultValue, ContentOptimizerDataType dataType)
fun getContentIntWithoutCache(
     variableName: String,
     defaultValue: Int,
     dataType: ContentOptimizerDataType
 ): Int

Method Example

Insider.Instance.getContentIntWithoutCache("variableName", 10, ContentOptimizerDataType.ELEMENT);
val discount = Insider.Instance.getContentIntWithoutCache(
     "checkout_discount_percent",
     10,
     ContentOptimizerDataType.ELEMENT
 )