IBraze

interface IBraze

The public interface for the Braze SDK. This interface is used to send and receive data to and from Braze.

Functions

Link copied to clipboard
abstract fun <T> addSingleSynchronousSubscription(subscriber: IEventSubscriber<T>, eventClass: Class<T>)

Adds a new subscription for an external Braze SDK event. Note that this subscriber will be called synchronously from the running thread of the Braze SDK and may not be on the same thread as the caller of this method.

Link copied to clipboard
abstract fun changeUser(userId: String?)

When you first start using Braze on a device, the user is considered "anonymous". You can use this method to optionally identify a user with a unique ID. These User IDs should be private and not easily obtained (e.g. not a plain email address or username). This enables the following:

abstract fun changeUser(userId: String?, sdkAuthSignature: String?)

Identical to .changeUser but provides an sdk auth signature for the user before any networking begins, even if the existing external id is used.

Link copied to clipboard
abstract fun closeSession(activity: Activity?)

Closes the current session. The session may be reopened if a call is made to IBraze.openSession within the session timeout.

Link copied to clipboard
abstract fun deserializeContentCard(contentCardString: String?): Card?
abstract fun deserializeContentCard(contentCardJson: JSONObject?): Card?

Constructs a Content Card from its Card.forJsonPut output. Useful for caching Content Card data and recreating them for your own purposes.

Link copied to clipboard
abstract fun deserializeInAppMessageString(inAppMessageString: String?): IInAppMessage?

This function returns a deserialized in-app message from the message JSON string.

Link copied to clipboard

Retrieves the offline/cached list of Feature Flags from offline storage.

Link copied to clipboard
abstract fun getCachedContentCards(): List<Card>?

Retrieves the offline/cached list of Content Cards from offline storage. Useful method to synchronously check the state of Content Cards already synced to the device.

Link copied to clipboard
abstract fun getContentCardCount(): Int

Retrieves information about Content Cards based on the currently cached data.

Retrieves information about Content Cards based on the currently cached data.

Link copied to clipboard

Retrieves information about Content Cards based on the currently cached data.

Link copied to clipboard
abstract fun getCurrentUser(completionCallback: IValueCallback<BrazeUser>)

Returns the user currently being tracked by Braze. Note that modifying values on instances of BrazeUser for a previous user will result in those values being stored locally, but they will not be synced with the Braze server until that user becomes active again.

Link copied to clipboard
abstract fun getFeatureFlag(id: String): FeatureFlag

Requests a specific Feature Flags. This will pull the data from a local cache and does not force a refresh.

Link copied to clipboard
Link copied to clipboard
abstract fun logCustomEvent(eventName: String?)
abstract fun logCustomEvent(eventName: String?, properties: BrazeProperties?)

Reports a custom named event.

Link copied to clipboard
abstract fun logFeedCardClick(cardId: String?)
Link copied to clipboard
abstract fun logFeedCardImpression(cardId: String?)

Reports a feed card was displayed to the user.

Link copied to clipboard
abstract fun logFeedDisplayed()

Reports that the feed was displayed.

Link copied to clipboard
abstract fun logPurchase(productId: String?, currencyCode: String?, price: BigDecimal?)
abstract fun logPurchase(productId: String?, currencyCode: String?, price: BigDecimal?, properties: BrazeProperties?)

In order to log a purchase, switch to logPurchase. Using this method will by default log a purchase with a quantity of one.

abstract fun logPurchase(productId: String?, currencyCode: String?, price: BigDecimal?, quantity: Int)

In order to log a purchase, switch to logPurchase.

abstract fun logPurchase(productId: String?, currencyCode: String?, price: BigDecimal?, quantity: Int = 1, properties: BrazeProperties? = null)

Reports that the current user made an in app purchase. Useful for tracking and segmenting users more likely to make purchases.

Link copied to clipboard
abstract fun logPushNotificationActionClicked(campaignId: String?, actionId: String?, actionType: String?)

Reports that the user clicked on a push notification action button.

Link copied to clipboard
abstract fun logPushNotificationOpened(intent: Intent?)

Reports that the user clicked on the push notification. Note that integrations shouldn't be calling this method directly.

abstract fun logPushNotificationOpened(campaignId: String?)

When possible, .logPushNotificationOpened should be used instead. Note that integrations shouldn't be calling this method directly.

Link copied to clipboard
abstract fun logPushStoryPageClicked(campaignId: String?, pageId: String?)

Reports that the user clicked on a push story page.

Link copied to clipboard
abstract fun openSession(activity: Activity?)

Opens a new session or resumes the previous session. A call to IBraze.openSession within the session timeout of a call to IBraze.closeSession will cause the previous session to be resumed. This is done so that transitions from one Activity to another do not create a new session each time.

Link copied to clipboard
abstract fun refreshFeatureFlags()

Requests a refresh of Feature Flags from the Braze server.

Link copied to clipboard
abstract fun <T> removeSingleSubscription(subscriber: IEventSubscriber<T>?, eventClass: Class<T>)

Removes a single subscription associated with the given activity and event class. This should be called if you want to selectively unsubscribe from an event, but do not want to remove every subscription for the activity.

Link copied to clipboard
abstract fun requestContentCardsRefresh(fromCache: Boolean)

Requests an immediate refresh of Content Cards. If fromCache is true, data will be pulled from offline storage. If fromCache is false, the SDK will request an immediate refresh of Content Cards from the Braze server.

Link copied to clipboard
abstract fun requestFeedRefresh()

Requests an immediate refresh of the news feed from the Braze server.

Link copied to clipboard

Requests a refresh of the news feed from offline storage. The result of this call will be reported asynchronously via a FeedUpdatedEvent, similar to a call to IBraze.requestFeedRefresh.

Link copied to clipboard
abstract fun requestGeofences(latitude: Double, longitude: Double)

Requests a refresh of Braze Geofences for the specified GPS coordinate.

Link copied to clipboard

Requests an immediate flush of any analytics data waiting to be sent to Braze's servers.

Link copied to clipboard

Clients apps may call this method when location permissions are granted to request immediate initialization of geofences as appropriate. This will also request a single location update since location permissions were likely not present at the start of the user's session.

Link copied to clipboard
abstract fun setGoogleAdvertisingId(googleAdvertisingId: String, isLimitAdTrackingEnabled: Boolean)

Sets the Google Advertising ID and associated ad-tracking enabled field for this device. Note that the SDK does not automatically collect this data.

Link copied to clipboard
abstract fun setSdkAuthenticationSignature(signature: String)

Sets the signature used for SDK authentication for the currently identified user.

Link copied to clipboard

Subscribes to Content Cards events. The subscriber callback will be called when Content Cards is updated. The subscriber will be called with a ContentCardsUpdatedEvent.

Link copied to clipboard

Subscribes to Feature Flags events. The subscriber callback will be called when Feature Flags are updated. The subscriber will be called with a FeatureFlagsUpdatedEvent.

Link copied to clipboard

Subscribes to news feed events. The subscriber callback will be called when the news feed is updated. The subscriber will be called with a com.braze.events.FeedUpdatedEvent.

Link copied to clipboard

Subscribes to network failures that have occurred within the SDK.

Link copied to clipboard

Subscribes to in-app message events. The subscriber callback will be called when a new in-app message is sent. The subscriber will be called with a InAppMessageEvent.

Link copied to clipboard

Subscribes to "no matching trigger" events. The subscriber callback will be called when a open, custom event, or purchase event is sent, but there's not a corresponding in-app message that was triggered by it. The subscriber will be called with a NoMatchingTriggerEvent.

Link copied to clipboard

Subscribes to push notifications handled by the Braze SDK.

Link copied to clipboard

Subscribes to SDK Authentication failures.

Link copied to clipboard

Subscribes to Session start and close events. The subscriber callback will be called when a session is created or sealed. The subscriber will be called with a SessionStateChangedEvent.

Properties

Link copied to clipboard
abstract val currentUser: BrazeUser?

The user currently being tracked by Braze. Note that modifying values on instances of BrazeUser for a previous user will result in those values being stored locally, but they will not be synced with the Braze server until that user becomes active again.

Link copied to clipboard
abstract val deviceId: String

Get the device ID - a randomly generated, app specific ID that is stored on the device. A new ID will be generated if the user clears the data for the app or removes/re-installs the app. The ID will persist across Braze.changeUser calls.

Link copied to clipboard

The IBrazeImageLoader for the Braze instance. This IBrazeImageLoader is used for all image related actions in the Braze SDK.

Link copied to clipboard

The push notification registration token for this device. When set, immediately flushes the token to Braze.

Inheritors

Link copied to clipboard