Your application needs to implement a mechanism to ask users for their preferences in relation to receiving in-app messages and save these settings in a configuration file. Based on these preferences there are several ways to control the delivery of ReachOut campaigns.
If your preferences include an on / off switch only, you may use this setting to enable or disable automatic ReachOut campaign delivery when your application calls
ruiSync(). This means that once the user opts out of receiving in-app messages, the Usage Intelligence SDK will not check for available ReachOut campaigns with the server. This option is suitable if you never want campaigns to be delivered to opted out users and their preference cannot be overridden.
You may choose to save the user’s preference as a Usage Intelligence custom property by calling
ruiSetCustomProperty(). In this case your application will continue to check for ReachOut campaigns with the server, however when building your campaigns you must add filtering criteria based on this custom property. This option allows you to have more control on the delivery of ReachOut messages and has the following benefits:
- You are not limited to an on / off switch but can provide further options such as choosing to opt in for marketing messages, product updates and company announcements. Therefore if a user selects product updates only, then you would only send them messages related to the product and not marketing material or company announcements.
- You may still send ReachOut messages to all users, such as in case of an emergency release due to a serious bug fix where you want to notify all your users regardless of their opt in preferences.
- You will be able to report on your users’ preferences through the Usage Intelligence Dashboard.
More information about custom properties can be found in this KBase Article.
- A user may opt out from being tracked completely, in which case it is recommended that your application calls
ruiOptOut()to disable all tracking and communication with the server. You will also not get any usage data for such clients.