Settings

The settings module in our SDK allows you to change some SDK behaviors by changing options directly from your application.

This article includes configuration instruction and lists the currently available methods.

Configuring SDK

To ensure proper configuration of the SDK, remember that there are two types of settings:

  • pre-initialization
  • dynamic

Some of the pre-initialization settings are optional. If you want to use them, they must be configured before Synerise SDK is initialized, before invoking the Synerise.initialize() method.

Pre-initialization settings:

Option Default Description
Synerise.settings.sdk.appGroupIdentifier nil Identifies the user’s default group used by applications and extensions that your app belongs to.
Synerise.settings.sdk.keychainGroupIdentifier nil Identifies the keychain group used by applications, extensions and services that your app belongs to.
Synerise.settings.sdk.shouldDestroySessionOnApiKeyChange true Specifies if a session should be destroyed after a Client’s API key changes.
Synerise.settings.notifications.encryption false Specifies if notifications from Synerise should be encrypted.

The rest of the options can be changed dynamically anytime.

Note: See advanced initialization example with all settings options and more in the Getting Started - Advanced Initialization section.

General


Enable/disable SDK

Parameter Type Default
Synerise.settings.sdk.enabled Bool true

This parameter specifies if the SDK functionalities are enabled.

Set up App Group Identifier

Parameter Type Default
Synerise.settings.sdk.appGroupIdentifier String nil

This parameter identifies the user defaults group used by applications and extensions belongs to.

Synerise SDK needs that configured to store your non-sensitive data and share it between your app and extensions.

Documentation is available at Apple Developer - App Groups.

Once configured, you need to set it up in the SDK:

Important: This option must be configured when Synerise SDK is initialized, before invoking the Synerise.initialize() method.
Synerise.settings.sdk.appGroupIdentifier = "YOUR_APP_GROUP_IDENTIFIER"

Set up Keychain Group Identifier

Parameter Type Default
Synerise.settings.sdk.keychainGroupIdentifier String nil

This parameter identifies the keychain group used by applications, extensions and services that your app belongs to.

Synerise SDK needs that configured to store your data safely and share it between your app and extensions.

Documentation is available at Apple Developer - Sharing Access to Keychain Items Among a Collection of Apps.

Once configured, you need to set it up in the SDK:

Important: This option must be configured when Synerise SDK is initialized, before invoking the Synerise.initialize() method.
Synerise.settings.sdk.keychainGroupIdentifier = "YOUR_KEYCHAIN_GROUP_IDENTIFIER"

Minimum time interval to refresh token

Parameter Type Default Minimum Value Maximum Value
Synerise.settings.sdk.minTokenRefreshInterval TimeInterval 1800 1800 -

This parameter sets a time interval (in seconds) counting backwards from the expiration time. Within this time, the token will be automatically refreshed by the SDK.

Maintaining Client session on different API keys

Parameter Type Default
Synerise.settings.sdk.shouldDestroySessionOnApiKeyChange Bool true

This parameter specifies if session should be destroyed after client api key changes.

Important:

This option works only if you change the API key within one Business Profile.

To change the API key from a different Business Profile, use the following method: Client.changeApiKey().

Notifications


Enable/disable Push Notifications

Parameter Type Default
Synerise.settings.notifications.enabled Bool true

This parameter specifies if handling notifications by the SDK is enabled.

Notification Encryption

Parameter Type Default
Synerise.settings.notifications.encryption Bool true

This parameter specifies if notifications from Synerise should be encrypted.

Important: For more details on encryption, see this section.

Enable/disable In-App notification alerts

Parameter Type Default
Synerise.settings.notifications.disableInAppAlerts Bool true

This parameter determines whether the SDK displays an additional alert in the application after receiving a notification.

If you have your own notifications implementation, you can disable In-App notification alerts from the Synerise SDK.

Tracker


Minimum number of events in queue to send

Parameter Type Default Minimum Value Maximum Value
Synerise.settings.tracker.minBatchSize Integer 10 1 100

This parameter sets a minimum number of events in queue required to send them.

Note: If the timer runs out, events are sent even if the queue is smaller than defined in minBatchSize.

Maximum number of events in queue to send

Parameter Type Default Minimum Value Maximum Value
Synerise.settings.tracker.maxBatchSize Integer 100 1 100

This parameter sets a maximum number of events which may be sent in a single batch.

Timeout to send events automatically

Parameter Type Default Minimum Value Maximum Value
Synerise.settings.tracker.autoFlushTimeout TimeInterval 5.0 0.5 -

This parameter sets the time (in milliseconds) required before an attempt is made to sent the queue.

Note: If the minimum queue size is met, events are sent even if the timer has not run out.

Setup for location event to be sent automatically

Parameter Type Default
Synerise.settings.tracker.locationAutomatic Bool false

This parameter specifies if location events are sent automatically.

Enable/disable Declarative Tracking

Parameter Type Default
Synerise.settings.tracker.tracking.enabled Bool true

This parameter specifies if the Declarative Tracking functionality is enabled.

Enable/disable auto-tracking

Parameter Type Default
Synerise.settings.tracker.autoTracking.enabled Bool true

This parameter specifies if auto-tracking functionality is enabled.

Auto-Tracking mode

Parameter Type Default
Synerise.settings.tracker.autoTracking.mode TrackerAutoTrackMode DISABLED

This parameter sets the mode of auto-tracking.

Available modes:

  • DISABLED - listeners are disabled (default).
  • EAGER - listeners are set to on-touch only.
  • PLAIN - listeners are set to on-click only.
  • FINE - listeners are attached to nearly everything in your app (even to activities and viewDidAppear, the method that records VisitedScreen events).

Classes excluded from Auto-Tracking

Parameter Type Default
Synerise.settings.tracker.autoTracking.excludedClasses Array []

This parameter excludes classes from Auto-Tracking.

View Tags excluded from Auto-Tracking

Parameter Type Default
Synerise.settings.tracker.autoTracking.excludedViewTags Array []

This parameter excludes view tags from Auto-Tracking.

Injector


Enable/disable automatic starting of Mobile Campaigns

Parameter Type Default
Synerise.settings.injector.automatic Bool false

This parameter specifies if Synerise Mobile Campaigns are processed automatically or not.

😕

We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

😉

Awesome!

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.