Braze
Primary implementation of IBraze. Provides methods for tracking analytics, managing user identity, handling push notifications, Content Cards, Feature Flags, in-app messages, and other Braze SDK features.
Obtain an instance via Braze.getInstance.
Properties
Synchronously get the ContentCardsUpdatedEvent from the ContentCardsStorageProvider.
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.
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.
The IBrazeImageLoader for the Braze instance. This IBrazeImageLoader is used for all image related actions in the Braze SDK.
Should only be true when the current instance has been stopped. When true on a given instance, a new instance should be returned from Braze.getInstance.
The push notification registration token for this device. When set, immediately flushes the token to Braze.
This variable should not be used outside of this class.
Functions
Adds a single ContentCard to storage from its serialized JSONObject string.
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.
Returns true if the locally cached Content Cards have exceeded their time-to-live.
When a user first uses Braze on a device they are considered "anonymous". Use this method to identify a user with a unique ID, which enables the following:
Identical to .changeUser but provides an sdk auth signature for the user before any networking begins, even if the existing external id is used.
Closes the current session. The session may be reopened if a call is made to IBraze.openSession within the session timeout.
Helper method for IBraze.deserializeContentCard.
Constructs a Content Card from its Card.forJsonPut output. Useful for caching Content Card data and recreating them for your own purposes.
This function returns a deserialized in-app message from the message JSON string.
Retrieves the offline/cached list of Feature Flags from offline storage.
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.
Retrieves information about Content Cards based on the currently cached data.
Retrieves information about Content Cards based on the currently cached data.
Retrieves information about Content Cards based on the currently cached data.
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.
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.
Requests a specific Feature Flags. This will pull the data from a local cache and does not force a refresh.
Requests triggers if the Intent contains extras for a test in-app message. Does nothing otherwise.
Requests banners refresh for internal purposes.
Logs a click for Banner with the placement ID. If there is no stored Banner with that placement ID, no click will be logged.
Logs an impression for Banner with the placement ID. If there is no stored Banner with that placement ID, no impression will be logged. Banner impressions are logged only once per session.
Reports a custom named event.
Logs an impression for Feature Flag with the provided ID. If there is no stored Feature Flag with provided ID, no impression will be logged.
Logs a location recorded event based using an IBrazeLocation. This is used for automatic location updates and respects the automatic location collection setting.
In order to log a purchase, switch to logPurchase. Using this method will by default log a purchase with a quantity of one.
In order to log a purchase, switch to logPurchase.
Reports that the current user made an in app purchase. Useful for tracking and segmenting users more likely to make purchases.
Logs a push delivery event.
Logs a push campaign for PushMax.
Reports that the user clicked on a push notification action button.
Reports that the user clicked on the push notification. Note that integrations shouldn't be calling this method directly.
When possible, .logPushNotificationOpened should be used instead. Note that integrations shouldn't be calling this method directly.
Reports that the user clicked on a push story page.
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.
Flushes the stored push delivery events.
Requests the geofence manager to post a geofence transition report to Braze for the given geofence Id and transition type combination.
Requests a refresh of Feature Flags from the Braze server.
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.
Requests a refresh of Banners from the Braze server.
Requests an immediate refresh of Content Cards from the Braze server.
Requests an immediate refresh of Content Cards from offline storage. Note that this method does not make a network request to Braze servers.
Requests the geofence manager to request a geofence refresh from Braze with geofences appropriate for the reported location.
Requests the geofence manager to request a geofence refresh from Braze, ignoring the rate limit if appropriate. The geofence manager will automatically request a location fix for the geofence refresh.
Requests a refresh of Braze Geofences for the specified GPS coordinate.
Initializes Geofences on the device.
Requests an immediate flush of any analytics data waiting to be sent to Braze's servers.
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.
Requests a location fix for the session on the device. This is equivalent to ILocationManager.requestSingleLocationUpdate and should only be called if location permissions have changed on the device.
Passes an In-App Message back to the TriggerManager.retryTriggeredAction for retrying the fallback actions.
Used when invoking a block of serially blocked code and neither blocking nor returning a value to, the caller thread.
Used when invoking a block of serially blocked code and returning some result back to the caller thread.
Safely calls DelayedInitializationProvider.flushPushAnalyticsQueue.
Logs a push delivery event.
Sets the Google Advertising ID and associated ad-tracking enabled field for this device. Note that the SDK does not automatically collect this data.
Sets the signature used for SDK authentication for the currently identified user.
Sets the BrazeManager and sync policy to match the isOffline value. When offline, network requests will not be added to the dispatch queue and the sync policy will be stopped.
Subscribes subscriber to BannerDismissedEvent on externalIEventMessenger.
Subscribes to Banners error events. The subscriber callback will be called when Banners fail to update. The subscriber will be called with a BannersRequestFailureEvent.
Subscribes to Banners update events. The subscriber callback will be called when Banners are updated. The subscriber will be called with a BannersUpdatedEvent.
Subscribes to user change events. The subscriber callback will be called when a user is changed via IBraze.changeUser. The subscriber will be called with a BrazeUserChangeEvent. Events may be fired for the same user multiple times, even if no transition has occurred.
Subscribes to Content Cards events. The subscriber callback will be called when Content Cards is updated. The subscriber will be called with a ContentCardsUpdatedEvent.
Subscribes to Feature Flags events. The subscriber callback will be called when Feature Flags are updated. The subscriber will be called with a FeatureFlagsUpdatedEvent.
Subscribes to network failures that have occurred within the SDK.
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.
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.
Subscribes to push notifications handled by the Braze SDK.
Subscribes to SDK Authentication failures.
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.
Removes subscriber from BannerDismissedEvent on externalIEventMessenger.
Validates the push identifier and if unique, stores it.
Verifies that the Braze SDK is properly integrated according to https://www.braze.com/docs/developer_guide/platform_integration_guides/android/initial_sdk_setup/android_sdk_integration/
Waits until any queued tasks in the mUserDependencyExecutor are finished. This is NOT intended to be used outside of tests.