setPrivacy is the master opt-out for a user: unsubscribed users receive no campaigns or messages from Pulsate at all — no push, no in-app, no feed campaigns.
Note the difference from the channel-specific switches:
| Switch | Scope |
|---|---|
setPrivacy(UNSUBSCRIBE) | All Pulsate communication |
setPushNotificationEnabled(false) | Pushes only |
setInAppNotificationEnabled(false) | In-apps only |
Setting privacy
val pulsateManager = PulsateFactory.getInstance()
pulsateManager.setPrivacy(PulsatePrivacy.SUBSCRIBE) // opt in (default)
pulsateManager.setPrivacy(PulsatePrivacy.UNSUBSCRIBE) // opt out of everything
Unlike other user-data calls, privacy syncs to Pulsate in real time.
Reading the current value
Callback style:
pulsateManager.getPrivacy(object : IPulsateValueListener<PulsatePrivacy> {
override fun onSuccess(value: PulsatePrivacy) { /* SUBSCRIBE or UNSUBSCRIBE */ }
override fun onError(e: Throwable) { }
})
What still happens for unsubscribed users
Unsubscribed users are still tracked and segmented — geofence enters/exits are recorded and segment data keeps updating. They simply receive nothing. To stop location tracking too, see Location Updates; to detach the device entirely, use logoutCurrentAlias.

