By default, the Braze Web SDK ignores activity from known spiders or web crawlers, such as Google, based on the user agent string. This saves data points, makes analytics more accurate, and may improve page rank. However, if you want Braze to log activity from these crawlers instead, you may set this option to true.
By default, the Braze Web SDK does not allow user-supplied Javascript click actions or enable HTML in-app messages, as they allow Braze dashboard users to run Javascript on your site. To indicate that you trust the Braze dashboard users to write non-malicious Javascript click actions, set this property to true.
If you provide a value for this option, user events sent to Braze will be associated with the given version, which can be used for user segmentation.
A numerical app version value which can be used for user segmentation. This value must be sent with four fields, such as "1.2.3.4", otherwise it will be ignored.
Note: appVersion
must also be set, either with the same value or a unique name for this version.
This option is required to configure the Braze Web SDK to use the appropriate endpoint for your integration - for example:
braze.initialize('YOUR-API-KEY-HERE', { baseUrl: 'sdk.iad-03.braze.com' })
If you provide a value for this option, the Braze SDK will add the nonce to any <script>
and <style>
elements created by
the SDK. This can be used to permit the Braze SDK to work with your website's Content Security Policy.
Note that in addition to setting this nonce, you may also need to allow FontAwesome to load, which you can do by either adding
use.fontawesome.com
to your Content Security Policy allowlist or by using the doNotLoadFontAwesome
option and loading it manually.
By default, Braze will assign a random guid as the device ID. Provide a value for this configuration option to override that default with a value of your own.
By default, the Braze SDK automatically detects and collects all device properties in DeviceProperties
. To override
this behavior, provide an array of DeviceProperties
. To disable all properties being sent to Braze servers, provide
an empty array. Note that without some properties, not all features will function properly. For instance, without the time
zone, local timezone delivery will not function.
By default, users who have already granted web push permission (e.g. through requestPushPermission
or from
a prior push provider) will sync their push token with the Braze backend automatically on new session to ensure deliverability.
To disable this behavior, set this option to true.
Braze uses Font Awesome for in-app message icons. By default, Braze will automatically load
FontAwesome 4.7.0 from the FontAwesome CDN. To disable this behavior (e.g. because your site uses a customized version
of FontAwesome), set this option to true
. Note that if you do this, you are responsible for ensuring that FontAwesome
is loaded on your site - otherwise in-app messages may not render correctly.
Set to true to enable logging by default. Note that this will cause Braze to log to the javascript console, which is visible
to all users! You should probably remove this or provide an alternate logger with setLogger
before you release
your page to production.
Set to true to enable the SDK Authentication feature. For more information about SDK Authentication, see our Product Documentation.
By default, the Braze SDK will show In-App Messages with a z-index of 9001 for the screen overlay, 9011 for the actual in-app message,
and 9021 for the message's close button. Provide a value for this option to override these default z-indexes. The value provided
will be used for the backdrop, value + 1
will be used for the in-app message, and value + 2
will be used for the close button.
By default, any SDK-generated user-visible messages will be displayed in the user's browser language. Provide a value for this
option to override that behavior and force a specific language. The value for this option should be a
ISO 639-1 Language Code. If a desired localization is not available,
the SDK will default to English. See also User.setLanguage
for setting the language you use within the Braze dashboard to
localize your own messaging content.
By default, requestPushPermission
/unregisterPush
assume that they control and can
register and unregister the site's service worker. If you have your own service worker that you register and control the
lifecycle of, set this option to true and the Braze SDK will not register or unregister a service worker. If you set this
option to true, in order for push to function correctly you must register the service worker yourself BEFORE calling
requestPushPermission
, and ensure that it contains Braze's service worker code, either with
self.importScripts('https://js.appboycdn.com/web-sdk-develop/5.2/service-worker.js');
or by including the content
of that file directly. When this option is true, the serviceWorkerLocation
option is irrelevant and is ignored.
By default, a trigger action will only fire if at least 30 seconds have elapsed since the last trigger action. Provide a value for this configuration option to override that default with a value of your own. We do not recommend making this value any smaller than 10 to avoid spamming the user with notifications.
By default, the Braze SDK will store small amounts of data (user ids, session ids), in cookies. This is done to allow Braze
to recognize users and sessions across different subdomains of your site. If this presents a problem for you, pass true
for this option to disable cookie storage and rely entirely on HTML 5 localStorage to identify users and sessions. The downside
of this configuration is that you will be unable to recognize users across subdomains of your site.
By default, links from Card
objects load in the current tab or window. Set this option to true
to make links from
cards open in a new tab or window.
By default, links from in-app message clicks load in the current tab or a new tab as specified in the dashboard on a
message-by-message basis. Set this option to true
to force all links from in-app message clicks open in a new tab or window.
By default, when an in-app message is showing, pressing the escape button or a click on the greyed-out background of the
page will dismiss the message. Set this option to true
to prevent this behavior and require an explicit button click
to dismiss messages.
If you support Safari push, you must specify this option with the website push ID that you provided to Apple when creating your Safari push certificate (starts with "web", e.g. "web.com.example.domain").
By default, when registering users for web push notifications Braze will look for the required service worker file in the
root directory of your web server at /service-worker.js
. If you want to host your service worker at a different path
on that server, provide a value for this option that is the absolute path to the file, e.g. /mycustompath/my-worker.js
.
VERY IMPORTANT: setting a value here limits the scope of push notifications on your site. For instance, in the above
example, because the service worker file is located within the /mycustompath/
directory, requestPushPermission
MAY ONLY BE CALLED from web pages that start with http://yoursite.com/mycustompath/
.
By default, sessions time out after 30 minutes of inactivity. Provide a value for this configuration option to override that default with a value of your own.
Adds SDK Metadata. This method is automatically called based on the integration method.
An array of metadata values from BrazeSdkMetadata
.
Whether or not the array of metadata is valid.
Automatically display in-app messages when they are triggered. This method should be called before
calling openSession
.
The identifier of the subscription created. This can be passed to
removeSubscription
to cancel the subscription.
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:
When you request a user switch (which is any call to changeUser where the new user ID is not the same as the existing user ID), the current session for the previous user (anonymous or not) is automatically ended and a new session is started. Similarly, following a call to changeUser, any events which fire are guaranteed to be for the new user -- if an in-flight server request completes for the old user after the user switch no events will fire, so you do not need to worry about filtering out events from Braze for old users.
Additionally, if you identify a user which has never been identified on another device, the entire history of that user as an "anonymous" user on this device will be preserved and associated with the newly identified user. However, if you identify a user which has been identified in another app, any history which was already flushed to the server for the anonymous user on this device will be merged into the identified user. Any fields that already exist on the identified user will not be overwritten, and the merge is limited to the fields listed here.
Note: Once you identify a user, you cannot revert to the "anonymous" user. The transition from anonymous to identified tracking is only allowed once because the initial anonymous user receives special treatment to allow for preservation of their history. As a result, we recommend against changing the user ID just because your app has entered a "logged out" state because it makes you unable to target the previously logged out user with re-engagement campaigns. If you anticipate multiple users on the same device, but only want to target one of them when your app is in a logged out state, we recommend separately keeping track of the user ID you want to target while logged out and switching back to that user ID as part of your app's logout process.
A unique identifier for this user. Limit 997 bytes. These User IDs should be private and not easily guessable (e.g. not a plain email address or username).
An encrypted signature to be used to authenticate the current user. You can update the signature
using the setSdkAuthenticationSignature
method. This signature will only have an effect if the enableSdkAuthentication
initialization option is set to true.
Defers the display of given in-app message for a future pageload.
The deferred in-app message can be retrieved by calling getDeferredInAppMessage
,
and displayed using showInAppMessage
.
Deferring an in-app message will overwrite any previously deferred in-app message.
Note: Be sure to subscribe to clicked / dismissed events on this in-app message only after retrieving it using getDeferredInAppMessage
.
Any subscriptions made before calling deferInAppMessage
will not be persisted.
Also note that the in-app message deferred here will be cleared out when in-app message triggers have been refreshed from the Braze backend.
The message to defer for later display.
Whether or not the message was successfully deferred. Returns undefined if the SDK has not been initialized.
Destroys this braze
instance, destroying all subscription callbacks and releasing member variables which
retain memory.
Destroy any Braze news feed currently showing. This method will appropriately clean up any retained resources and also display the hiding animation, and so should be used instead of manually removing feed html from the DOM.
Sets a cookie that causes all subsequent calls to the Braze Web SDK to be ignored and all subsequent analytics to cease being sent to the Braze backend. If you have multiple subdomains, this method MUST be called from the same subdomain that push was registered from to work properly. This is useful for customer opt-outs. If the customer clears website data, tracking will resume.
Removes the cookie set by disableSDK
, causing subsequent calls to the Braze Web SDK to function. You must
call initialize
after calling this method before calling subsequent methods.
Gets all available feature flags.
FeatureFlag
objects.Get all currently available cards from the last content cards refresh.
ContentCards
object which includes all currently available
Card
objects from the last content cards refresh.Retrieves the in-app message that was most recently deferred for display with deferInAppMessage
.
Note: Retrieving the deferred in-app message here will clear it from storage.
The deferred in-app message if it exists, or returns null. Returns undefined if the SDK has not been initialized.
Retrieves the 'device id,' a randomly generated ID that is stored on the browser. This ID resets for private browsing sessions and when website data is cleared. For example:
console.log('The device id is ' + braze.getDeviceId());
Asynchronously retrieves the 'device id,' a randomly generated ID that is stored on the browser. This ID resets for private browsing sessions and when website data is cleared. For example:
braze.getDeviceId(function(deviceId) {
console.log('The device id is ' + deviceId);
});
Asynchronous callback - this will be invoked with the deviceId.
Gets a feature flag by its ID.
The ID of the feature flag.
FeatureFlag
, if feature flag with given ID exists. The method returns null if feature flag does not exist,
or if feature flags are disabled. Returns undefined if the SDK has not been initialized.Handle links from within a message. This method will redirect valid links, or will parse and handle valid Braze Click Actions (brazeActions://).
a valid URL, or a valid brazeActions URL with scheme brazeActions://v{versionInt}/{base64string}
Whether the URL should be opened in a new tab. Defaults to false.
Hide any Braze content cards currently showing in the parent node, or if none is provided, any content cards in the page. This method will appropriately clean up any retained resources and also display the hiding animation, and so should be used instead of manually removing content cards HTML from the DOM.
The HTML node that denotes the parent of the content cards to be hidden. If null/undefined, all content cards on the page will be hidden.
Initializes this braze
instance with your API key. This method must be called before other Braze methods are
invoked, and is part of the default loading snippets. Subsequent calls will be ignored until 'destroy`
is called.
Your app's Braze API Key. Your API keys can be found here.
Configuration options. See InitializationOptions
for supported options.
braze
instance has been successfully initialized.
Reasons for returning false include a missing API key/base URL, user opt out, and ignored crawler bot activity.Getter method to determine if the SDK is disabled based on whether the cookie set by disableSdk
exists
Whether or not the user has blocked push. If the user has blocked push, they cannot be prompted to register again, and must manually remove the block in order to receive push. Returns undefined if the SDK has not been initialized.
Tests whether the user has given this browser push permission (they may still be unsubscribed from push via
User.setPushNotificationSubscriptionType
). A true value essentially means that
requestPushPermission
may be called without the user being prompted. Useful for migrating existing
non-Braze push registrations to Braze.
Whether or not the user has granted push permission. If this returns true,
requestPushPermission
may be called without the user being prompted. If this returns false,
requestPushPermission
may prompt the user (if isPushSupported
returns true) or do
nothing (if isPushSupported
returns false). Returns undefined if the SDK has not been initialized.
The W3C Push API is partially supported across the browser landscape. This method allows you to programmatically determine whether push is supported in the current browser, and whether to show push-related user class elements to the user.
Whether or not push is supported in this environment. Returns undefined if the SDK has not been initialized.
Logs that the user clicked the given card. This is done automatically when you use Braze's display module and should only be called if you're bypassing that and manually building the DOM for displaying the cards in your own code.
the Card
object that received a click
whether to log this as a content cards event (as opposed to the legacy news feed)
Whether or not the event was successfully logged (to be flushed later).
Logs that the user dismissed the given card. This is done automatically when you use Braze's display module and should only be called if you're bypassing that and manually building the DOM for displaying the cards in your own code.
Whether or not the event was successfully logged (to be flushed later).
Logs that the user saw the given cards. This is done automatically when you use Braze's display module and should only be called if you're bypassing that and manually building the DOM for displaying the cards in your own code.
array of Card
objects that received impressions
whether to log this as a content cards event (as opposed to the legacy news feed)
Whether or not the event was successfully logged (to be flushed later).
A convenient method to log when user clicks on a Content Card. This method is equivalent to
calling [logCardClick
method with forContentCards
param set to true.
This is done automatically when you use Braze's display module and should only be called
if you're bypassing that and manually building the DOM for displaying content cards in
your own code.
Whether or not the event was successfully logged (to be flushed later).
A convenient method to log that the user saw the given Content Cards. This method is equivalent to
calling [logCardImpressions
method with forContentCards
param set to true.
This is done automatically when you use Braze's display module and should only be called
if you're bypassing that and manually building the DOM for displaying content cards in
your own code.
Whether or not the event was successfully logged (to be flushed later).
Reports that the current user performed a custom named event.
The identifier for the event to track. Value is limited to 255 characters in length, cannot begin with a $, and can only contain alphanumeric characters and punctuation.
Hash of properties for this event. Keys are limited to 255 characters in length, cannot begin with a $, and can only contain alphanumeric characters and punctuation. Values can be numeric, boolean, Date objects, strings 255 characters or shorter, or nested objects whose values can be numeric, boolean, Date objects, arrays, strings, or null. Total size of event properties cannot exceed 50KB.
Whether or not the event was successfully logged (to be flushed later).
Logs impression for a given feature flag.
ID of the feature flag that has received the impression.
Logs that the news feed was displayed. This is done automatically when you use Braze's UI and should only be called if you're bypassing that and manually building the class for displaying the cards in your own code.
Logs that the user clicked the given in-app message button. This is done automatically when the user clicks on
a button in a message generated by showInAppMessage
,
and should only be called if you're bypassing that method and manually displaying the message in your own
code.
The button clicked
The message this button belongs to
Whether or not the event was successfully logged (to be flushed later).
Logs that the user clicked the given in-app message. This is done automatically when the user clicks on a
message generated by showInAppMessage
, and should
only be called if you're bypassing that method and manually displaying the message in your own code.
Whether or not the event was successfully logged (to be flushed later).
Logs that the user clicked on a link in an html in-app message. This is done automatically when the user clicks
on a message generated by showInAppMessage
, and should
only be called if you're bypassing that method and manually displaying the message in your own code.
The message that was clicked
A button id to associate this click with for analytics
The url that was clicked
Whether or not the event was successfully logged (to be flushed later).
Logs that the user saw the given in-app message. This is performed automatically when you use showInAppMessage
,
and should only be called if you're bypassing that method and manually displaying the message in your own code.
Whether or not the event was successfully logged (to be flushed later).
Reports that the current user made an in-app purchase. Useful for tracking and segmenting users.
A string identifier for the product purchased, e.g. an SKU. Value is limited to 255 characters in length, cannot begin with a $, and can only contain alphanumeric characters and punctuation.
The price paid. Base units depend on the currency. As an example, USD should be reported as Dollars.Cents, whereas JPY should be reported as a whole number of Yen. All provided values will be rounded to two digits with toFixed(2)
Default USD. Currencies should be represented as an ISO 4217 currency code. Supported currency symbols include: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTC, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MTL, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, STD, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, VUV, WST, XAF, XAG, XAU, XCD, XDR, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, and ZWL. Any other provided currency symbol will result in a logged warning and no other action taken by the SDK.
Default 1. The quantity of items purchased expressed as a whole number. Must be at least 1 and at most 100.
Hash of properties for this purchase. Keys are limited to 255 characters in length, cannot begin with a $, and can only contain alphanumeric characters and punctuation. Values can be numeric, boolean, Date objects, strings 255 characters or shorter, or nested objects whose values can be numeric, boolean, Date objects, arrays, strings, or null. Total size of purchase properties cannot exceed 50KB.
Whether or not the purchase was successfully attached to the session (to be flushed later).
Opens a new session, or resumes the previous session if this browser had activity within the sessionTimeoutInSeconds
value.
When a new session is opened, this refreshes In-App Messages. Content Cards are refreshed automatically if
the subscribeToContentCardsUpdates
has been registered prior to openSession
. If the user has previously
granted the site permission to send push, automatically sends the push registration to the Braze backend.
Be sure to call openSession
at the end of your initialization code section, after any calls to changeUser
or subscribing to Content Cards,
In-App Message, and Feature Flag updates. Calling openSession
before changeUser
may result in a second session start event.
Requests an immediate refresh of feature flags from Braze servers. By default, feature flags are refreshed when a new session starts. If you want to refresh feature flags from the server at another time you must call this function.
Callback that is invoked when the feature flags refresh request has been successfully completed. This callback is useful for determining when a request has completed regardless of whether new feature flags were returned.
Callback that is invoked when an error occurs during the refresh.
Remove all event subscriptions.
Remove an event subscription that you previously subscribed to.
The identifier of the subscription you wish to remove, returned by the method you initially used to create it.
Requests an immediate refresh of content cards from Braze servers. By default, content cards are refreshed when a new session opens (see 'openSession` for more details), and when the user refreshes content cards manually via the refresh button. If you want to refresh content cards from the server at another time you must call this function.
Callback that is invoked when the content cards refresh request has been successfully completed.
You should use subscribeToContentCardsUpdates
to be notified of new cards. This callback is useful for determining when
a request has completed regardless of whether new cards were returned.
Callback that is invoked when an error occurs during the refresh.
Requests an immediate refresh of the news feed from Braze servers. By default, the news feed is refreshed on
showFeed
(when stale - see
showFeed
for details). If you want to refresh the feed from the
server at another time you must call this function. Results of this refresh are reported asynchronously to
subscriptions created via 'subscribeToFeedUpdates` .
By default, data logged to Braze through the SDK is queued locally (in HTML 5 localStorage when available, and in memory otherwise) and sent to Braze's servers asynchronously on a regular interval (10 seconds when localStorage is available and not routinely cleared due to browser privacy features, otherwise 3 seconds). This is done to optimize network usage and provide resiliency against network or server outages. This method bypasses the interval and immediately flushes queued data.
Invoked when the flush completes with a boolean parameter that returns whether or not the flush was successful. If the flush is unsuccessful, pending data will be flushed during the next successful flush.
Register this browser environment to receive web push for this user. Supports browsers which implement the
W3C Push API (browsers in which
isPushSupported
returns true). If push is supported and the user is not already subscribed,
this method will cause the browser to immediately request push permission from the user.
In order to properly use this feature, there are some integration steps required on your end:
service-worker.js
file with the content below and place it in the root directory of your website:self.importScripts('https://js.appboycdn.com/web-sdk/{{VERSION}}/service-worker.js');
For more details, see Our Product Documentation.
When the user subscribes to push successfully this callback will be invoked with the user's endpoint, public key, and user auth key (endpoint, publicKey, userAuth).
If push permission is denied or an error is encountered while registering, this callback will
be invoked. If the denial is temporary, it will be invoked with a parameter of true
- otherwise it will be invoked
with a parameter of false
.
By default, Braze logs to the browser console. Call this method to set a custom log action and enable debug-level log statements.
A function to invoke with log messages. Should accept a single string parameter for message.
Sets the signature to be used to authenticate the current user. You can also set the signature when calling changeUser
.
This signature will only have an effect if the enableSdkAuthentication
initialization option is set to true.
The signature to add to network requests to authenticate the current user.
Whether or not the signature is valid.
Display the user's content cards.
The HTML node to render the content cards into. If null/undefined, the content
cards will be rendered in fixed position over the right-hand side of the page and appended to the <body>
node. If the parent node already has a Braze content cards view as a direct descendant, the existing content
cards will be replaced.
Display the user's news feed.
The HTML node to render the news feed into. If null/undefined, the feed will be
rendered in fixed position over the right-hand side of the page and appended to the <body>
node. If the
parent node already has an Braze news feed as a direct descendant, the existing feed will be replaced.
A static set of cards to Each item in this Array should be a Card
descendant. If this parameter is null/undefined, all unexpired cards from the last news feed refresh will be
used automatically, a feed refresh will be kicked off automatically if the cached cards are more than 1 minute
old, and the feed will automatically update when new cards are received while it is still showing. If you
provide an explicit set of cards by using this parameter, no action will be taken when new cards are received,
and you must subscribe to feed updates yourself with subscribeToFeedUpdates
and request updates with
requestFeedRefresh
if you want to update this feed with new cards.
A set of categories to filter cards to. Each item in this Array should be a card category as set in the Braze dashboard. If omitted, all cards will be displayed.
Display a given in-app message.
The message to
The HTML node to render the in-app message into. If null/undefined, the message
will be rendered appended within the <body>
node.
Optional callback to invoke once the message is on the screen.
Whether or not the message was displayed (or, in the case of control messages, logged to Braze servers).
Subscribe to content cards updates. The subscriber callback will be called whenever content cards are updated. This method
should be called before calling openSession
.
The callback function to handle new cards. This function will be called with a ContentCards
object which includes all currently available Card
objects. If you want to be notified when a refresh has completed
regardless of whether new cards are available, you should use the successCallback
of requestContentCardsRefresh
.
The identifier of the subscription created. This can be passed to removeSubscription
to cancel the subscription.
Returns undefined if the SDK has not been initialized.
Subscribe to feature flag updates. The subscriber callback will be called whenever feature flags are updated. This method
should be called before calling openSession
.
The callback function to handle new feature flags. This function is always called first with the
available cached list of FeatureFlag
objects, and will also be called when feature flag updates are available.
If there is a failure in receiving updates, this function will be called with the cached list of FeatureFlag
objects.
If you want to be notified when a refresh has completed regardless of whether new feature flags are available,
you should use the successCallback
of refreshFeatureFlags
.
The identifier of the subscription created. This can be passed to removeSubscription
to cancel the subscription.
Returns undefined if the SDK has not been initialized.
Subscribe to news feed updates. The subscriber callback will be called whenever the news feed is updated.
The callback function to handle new cards. This function will be
called with a Feed
object which includes all Card
objects currently in the feed.
The identifier of the subscription created. This can be passed to removeSubscription
to cancel
the subscription. Returns undefined if the SDK has not been initialized.
Subscribe to receive in-app messages. The subscriber callback will be called whenever a new in-app message is
triggered. This method should be called before calling openSession
. If you are using the build of Braze's
library with UI, the most basic usage of this would be
braze.subscribeToInAppMessage(function(inAppMessage) {
braze.showInAppMessage(inAppMessage);
});
The callback function to handle the in-app message. This function will be
called with an InAppMessage
or a ControlMessage
object. If you are using the build
of Braze's library with UI, you may wish to call showInAppMessage
with the provided message.
The identifier of the subscription created. This can be passed to 'removeSubscription` to cancel the subscription. Returns undefined if the SDK has not been initialized.
Subscribe to be notified of network request failures that occured due to an SDK Authentication error. This
method can be used to determine when to call setSdkAuthenticationSignature
to provide the SDK with a new signature.
If you do not have SDK Authentication enabled on the Braze dashboard, this subscription will never be invoked.
The subscriber function that is invoked whenever an SDK Authentication error occurs. It is
invoked with an object containing the errorCode
, reason
for the error, the userId
of the request (if the
user is not anonymous), and the authentication signature
that caused the error.
The identifier of the subscription created. This can be passed to 'removeSubscription` to cancel the subscription. Returns undefined if the SDK has not been initialized.
Toggle the display of Braze content cards, showing them if they are not shown, and hiding them if they are. If you
wish to display multiple content cards feeds on a page simultaneously, you should use showContentCards
and hideContentCards
to show/hide each feed individually instead of this method.
The HTML node to render the content cards into. If null/undefined, the content
cards will be rendered in fixed position over the right-hand side of the page and appended to the <body>
node. If the parent node already has a Braze content cards view as a direct descendant, the existing content
cards will be replaced.
Toggle the Braze news feed, creating it if it does not exist, and destroying it if it does.
The HTML node to render the news feed into. If null/undefined, the feed will be
rendered in fixed position over the right-hand side of the page and appended to the <body>
node. If the
parent node already has an Braze news feed as a direct descendant, the existing feed will be replaced.
A static set of cards to Each item in this Array should be a Card
descendant. If this parameter is null/undefined, all unexpired cards from the last news feed refresh will be
used automatically, a feed refresh will be kicked off automatically if the cached cards are more than 1 minute
old, and the feed will automatically update when new cards are received while it is still showing. If you
provide an explicit set of cards by using this parameter, no action will be taken when new cards are received,
and you must subscribe to feed updates yourself with subscribeToFeedUpdates
and request updates with
requestFeedRefresh
if you want to update this feed with new cards.
A set of categories to filter cards to. Each item in this Array should be a card category as set in the Braze dashboard. If omitted, all cards will be displayed.
By default, Braze silences its logging to prevent spamming production js consoles. Call this method to toggle logging.
Unregisters push notifications on this browser. Note that for Safari, Apple does not offer any unsubscribe mechanism, so on Safari this method leaves the user with push permission granted and simply sets their subscription status to unsubscribed.
When the unsubscribe is successfully recorded and processed by Braze, this callback will be invoked.
If the unsubscribe fails for unknown reasons, this callback will be invoked.
Removes all locally stored SDK data, causing the user to be seen in subsequent calls as a new anonymous user on a new device.
Supported initialization options