Content Optimizer

Prev Next

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

The following methods are required to create variables for App Content Optimizer depending on the data type.

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 prefer to prioritize efficiency and reliability 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 need to add your device as a test device first. 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.

Parameter

Type

variableName

String

defaultValue

String

dataType

ContentOptimizerDataType

Method Signature

Future getContentStringWithName(String variableName, String defaultValue, int dataType) async

Method Example

FlutterInsider.Instance.getStringWithName("variableName", "defaultValue", 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 need to add your device as a test device first. 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.

Parameter

Type

variableName

String

defaultValue

Boolean

dataType

ContentOptimizerDataType

Method Signature

Future getContentBoolWithName(String variableName, bool defaultValue, int dataType) async

Method Example

FlutterInsider.Instance.getBoolWithName("variableName", true, ContentOptimizerDataType.Element);

Get integer data

This method allows you to retrieve integer type of data.

your title goes here

To add Content Optimizer variables, you need to add your device as a test device first. 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.

Parameter

Type

variableName

String

defaultValue

Integer

dataType

ContentOptimizerDataType

Method Signature

Future getContentIntWithName(String variableName, int defaultValue, int dataType) async

Method Example

FlutterInsider.Instance.getIntWithName("variableName", 10, ContentOptimizerDataType.Element);

Retrieving Content Without Stored Data

For use cases that require real-time content updates can use alternative methods 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, gain full control over content freshness, ensuring that the latest data is always reflected in their applications. If real-time data is not available at the time of the request, the specified default value will be returned, maintaining 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 need to add your device as a test device first. 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.

Parameter

Type

variableName

String

defaultValue

String

dataType

ContentOptimizerDataType

Method Signature

Future<String?> getContentStringWithoutCache(String variableName, String defaultValue, int dataType) async

Method Example

FlutterInsider.Instance.getContentStringWithoutCache("variableName", "defaultValue", 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 need to add your device as a test device first. 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.

Parameter

Type

variableName

String

defaultValue

Boolean

dataType

ContentOptimizerDataType

Method Signature

Future<bool?> getContentBoolWithoutCache(String variableName, bool defaultValue, int dataType) async

Method Example

FlutterInsider.Instance.getContentBoolWithoutCache("variableName", true, ContentOptimizerDataType.Element);

Get integer data

This method allows you to retrieve integer type of data.

your title goes here

To add Content Optimizer variables, you need to add your device as a test device first. 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.

Parameter

Type

variableName

String

defaultValue

Integer

dataType

ContentOptimizerDataType

Method Signature

Future<int?> getContentIntWithoutCache(String variableName, int defaultValue, int dataType) async

Method Example

FlutterInsider.Instance.getContentIntWithoutCache("variableName", 10, ContentOptimizerDataType.Element);

markContentOptimizerAsSeen

This method reports a seen impression for a Content Optimizer variable that the partner has just displayed. After fetching an optimized value with one of the getContent… methods and showing it to the user, the partner calls this method and the SDK fires a cont_opt_seen event carrying the campaign metadata. This lets Insider attribute impressions to the correct Content Optimizer campaign/variant.

The event payload has the following:

  • variable_name: The name passed in (always present).

  • content_id: The campaign ID, when available.

  • variant_id: The variant ID, when available.

If the variableName is null or empty → no-op.

If the SDK is disabled or GDPR is opted out → no-op.

If the variable was fetched via both the session-variables and the cache paths, session-variables wins.

There is no deduplication. Each call fires a new event. E.g., 3 calls → 3 events.

Call this method immediately after you have actually shown the optimized value to the user. Use the same variable name you passed to the getContent… method:

  1. Fetch the value with a getContent… method.

  2. Render it in the UI.

  3. Call markContentOptimizerAsSeen with the same variable name.

Parameter

Data Type

variableName

String

Method signature

Future<void> markContentOptimizerAsSeen(String variableName) async

Method examples

FlutterInsider.Instance.markContentOptimizerAsSeen("variableName");
// 1. Fetch the optimized value
String? bannerTitle = await FlutterInsider.Instance.getContentStringWithName(
  "banner_title",
  "Welcome!",
  ContentOptimizerDataType.Element,
);

// 2. Show it to the user
setState(() => _title = bannerTitle ?? "Welcome!");

// 3. Report the impression (fires `cont_opt_seen`)
await FlutterInsider.Instance.markContentOptimizerAsSeen("banner_title");