appboy

Index

Type aliases

InitializationOptions

InitializationOptions: { allowCrawlerActivity?: boolean; allowUserSuppliedJavascript?: boolean; appVersion?: string; baseUrl: string; contentSecurityNonce?: string; devicePropertyAllowlist?: string[]; devicePropertyWhitelist?: string[]; disablePushTokenMaintenance?: boolean; doNotLoadFontAwesome?: boolean; enableHtmlInAppMessages?: boolean; enableLogging?: boolean; enableSdkAuthentication?: boolean; inAppMessageZIndex?: number; localization?: string; manageServiceWorkerExternally?: boolean; minimumIntervalBetweenTriggerActionsInSeconds?: number; noCookies?: boolean; openCardsInNewTab?: boolean; openInAppMessagesInNewTab?: boolean; requireExplicitInAppMessageDismissal?: boolean; safariWebsitePushId?: string; serviceWorkerLocation?: string; sessionTimeoutInSeconds?: number }

Supported initialization options

Type declaration

  • Optional allowCrawlerActivity?: boolean

    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.

  • Optional allowUserSuppliedJavascript?: boolean

    By default, the Braze Web SDK does not allow user-supplied Javascript click actions, as it allows 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 enableHtmlInAppMessages is true, this option will also be set to true.

  • Optional appVersion?: string

    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.

  • baseUrl: string

    This option is required to configure the Braze Web SDK to use the appropriate endpoint for your integration - for example:

       appboy.initialize('YOUR-API-KEY-HERE', { baseUrl: 'sdk.iad-03.appboy.com' })
  • Optional contentSecurityNonce?: string

    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.

  • Optional devicePropertyAllowlist?: string[]

    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.

  • Optional devicePropertyWhitelist?: string[]
    deprecated

    This initialization option is deprecated in favor of devicePropertyAllowlist, which has the same functionality.

  • Optional disablePushTokenMaintenance?: boolean

    By default, users who have already granted web push permission (e.g. through appboy.registerAppboyPushMessages 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.

  • Optional doNotLoadFontAwesome?: boolean

    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.

  • Optional enableHtmlInAppMessages?: boolean

    By default, the Braze Web SDK does not 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 HTML in-app messages, set this property to true. If allowUserSuppliedJavascript is set to true, this option will also be set to true.

    deprecated

    This initialization option is deprecated in favor of allowUserSuppliedJavascript.

  • Optional enableLogging?: boolean

    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 appboy.setLogger before you release your page to production.

  • Optional enableSdkAuthentication?: boolean

    Set to true to enable the SDK Authentication feature. For more information about SDK Authentication, see our Product Documentation.

  • Optional inAppMessageZIndex?: number

    By default, the Braze SDK will show In-App Messages with a z-index of 1040 for the screen overlay, 1050 for the actual in-app message, and 1060 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.

  • Optional localization?: string

    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.

  • Optional manageServiceWorkerExternally?: boolean

    By default, appboy.registerAppboyPushMessages/appboy.unregisterAppboyPushMessages 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 appboy.registerAppboyPushMessages, and ensure that it contains Braze's service worker code, either with self.importScripts('https://js.appboycdn.com/web-sdk-develop/3.3/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.

  • Optional minimumIntervalBetweenTriggerActionsInSeconds?: number

    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.

  • Optional noCookies?: boolean

    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.

  • Optional openCardsInNewTab?: boolean

    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.

  • Optional openInAppMessagesInNewTab?: boolean

    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.

  • Optional requireExplicitInAppMessageDismissal?: boolean

    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.

  • Optional safariWebsitePushId?: string

    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").

  • Optional serviceWorkerLocation?: string

    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, appboy.registerAppboyPushMessages MAY ONLY BE CALLED from web pages that start with http://yoursite.com/mycustompath/.

  • Optional sessionTimeoutInSeconds?: number

    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.

Functions

changeUser

  • changeUser(userId: string, signature?: string): void
  • 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:

    • If the same user is identified on another device, their user profile, usage history and event history will be shared across devices.
    • If your app is used on the same browser by multiple people, you can assign each of them a unique identifier to track them separately. Only the most recent user on a particular browser will receive push notifications and in-app messages.

    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 become orphaned and will not be associated with any future users. These orphaned users are not considered in your user counts and will not be messaged.

    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.

    Parameters

    • userId: string

      A unique identifier for this user. Limit 997 bytes.

    • Optional signature: string

      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.

    Returns void

destroy

  • destroy(): void
  • Destroys this appboy instance, destroying all subscription callbacks and releasing member variables which retain memory.

    Returns void

getCachedContentCards

  • Get all currently available cards from the last content cards refresh.

    Returns ContentCards

    • A ContentCards object which includes all currently available Card objects from the last content cards refresh.

getCachedFeed

  • getCachedFeed(): Feed
  • Get all unexpired cards from the last news feed refresh.

    Returns Feed

    • A Feed object which includes all unexpired Card objects from the last news feed refresh.

getDeviceId

  • getDeviceId(callback: (deviceId: string) => void): void
  • 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:

    appboy.getDeviceId(function(deviceId) {
       console.log('The device id is ' + deviceId);
    });

    Parameters

    • callback: (deviceId: string) => void

      Asynchronous callback - this will be invoked with the deviceId.

        • (deviceId: string): void
        • Parameters

          • deviceId: string

          Returns void

    Returns void

getUser

  • Returns User

    The user currently being tracked by Braze, used for querying the tracked user id and setting user attributes. Should only be accessed via the getUser function.

initialize

  • Initializes this appboy 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.

    Parameters

    Returns boolean

    • Whether or not the appboy instance has been successfully initialized. Reasons for returning false include a missing API key/base URL, user opt out, and ignored crawler bot activity.

isPushBlocked

  • isPushBlocked(): boolean
  • Returns boolean

    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.

isPushGranted

  • isPushGranted(yesCallback: () => void, noCallback: () => void): void
  • DEPRECATED - 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 appboy.registerAppboyPushMessages may be called without the user being prompted. Useful for migrating existing non-Braze push registrations to appboy.

    deprecated

    This function inappropriately reports whether or not the browser currently has an active registered push subscription, and does not answer the intended permissions question of whether the user has granted the browser push permissions. Please use appboy.isPushPermissionGranted instead. This WILL BE REMOVED.

    Parameters

    • yesCallback: () => void

      Invoked if the user has granted push access on this browser

        • (): void
        • Returns void

    • noCallback: () => void

      Invoked if the user has not granted push access on this browser

        • (): void
        • Returns void

    Returns void

isPushPermissionGranted

  • isPushPermissionGranted(): boolean

isPushSupported

  • isPushSupported(): boolean
  • 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.

    Returns boolean

    Whether or not push is supported in this environment.

logCardClick

  • logCardClick(card: Card, forContentCards?: boolean): boolean
  • Logs that the user clicked the given card. This is done automatically when you use Appboy'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.

    Parameters

    • card: Card

      the Card object that received a click

    • Optional forContentCards: boolean

      whether to log this as a content cards event (as opposed to the legacy news feed)

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logCardDismissal

  • logCardDismissal(card: Card): boolean
  • Logs that the user dismissed the given card. This is done automatically when you use Appboy'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.

    Parameters

    • card: Card

      the Card object that received a dismissal

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logCardImpressions

  • logCardImpressions(cards: Card[], forContentCards?: boolean): boolean
  • Logs that the user saw the given cards. This is done automatically when you use Appboy'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.

    Parameters

    • cards: Card[]

      array of Card objects that received impressions

    • Optional forContentCards: boolean

      whether to log this as a content cards event (as opposed to the legacy news feed)

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logContentCardsDisplayed

  • logContentCardsDisplayed(): boolean
  • Logs that the content cards were displayed. This is done automatically when you use Appboy's display module and should only be called if you're bypassing that and manually building the class for displaying the cards in your own code.

    Returns boolean

logCustomEvent

  • logCustomEvent(eventName: string, eventProperties?: object): boolean
  • Reports that the current user performed a custom named event.

    Parameters

    • eventName: string

      The identifier for the event to track. Best practice is to track generic events useful for segmenting, instead of specific user actions (i.e. track watched_sports_video instead of watched_video_adrian_peterson_td_mnf). Value is limited to 255 characters in length, cannot begin with a $, and can only contain alphanumeric characters and punctuation.

    • Optional eventProperties: object

      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.

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logFeedDisplayed

  • logFeedDisplayed(): void
  • Logs that the news feed was displayed. This is done automatically when you use Appboy's display module and should only be called if you're bypassing that and manually building the class for displaying the cards in your own code.

    Returns void

logInAppMessageButtonClick

  • 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 display.showInAppMessage, and should only be called if you're bypassing that method and manually displaying the message in your own code.

    Parameters

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logInAppMessageClick

  • Logs that the user clicked the given in-app message. This is done automatically when the user clicks on a message generated by display.showInAppMessage, and should only be called if you're bypassing that method and manually displaying the message in your own code.

    Parameters

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logInAppMessageHtmlClick

  • logInAppMessageHtmlClick(inAppMessage: HtmlMessage, buttonId?: string, url?: string): boolean
  • 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 display.showInAppMessage, and should only be called if you're bypassing that method and manually displaying the message in your own code.

    Parameters

    • inAppMessage: HtmlMessage

      The message that was clicked

    • Optional buttonId: string

      A button id to associate this click with for analytics

    • Optional url: string

      The url that was clicked

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logInAppMessageImpression

  • Logs that the user saw the given in-app message. This is performed automatically when you use display.showInAppMessage, and should only be called if you're bypassing that method and manually displaying the message in your own code.

    Parameters

    Returns boolean

    Whether or not the event was successfully logged (to be flushed later).

logPurchase

  • logPurchase(productId: string, price: number, currencyCode?: string, quantity?: number, purchaseProperties?: object): boolean
  • Reports that the current user made an in-app purchase. Useful for tracking and segmenting users.

    Parameters

    • productId: string

      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.

    • price: number

      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)

    • Optional currencyCode: string

      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.

    • Optional quantity: number

      Default 1. The quantity of items purchased expressed as a whole number. Must be at least 1 and at most 100.

    • Optional purchaseProperties: object

      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.

    Returns boolean

    Whether or not the purchase was successfully attached to the session (to be flushed later).

openSession

  • openSession(): void
  • Opens a new session, or resumes the previous session if this browser had activity within the last 30 minutes. When a new session is opened, syncs triggered In-App Messages and Content Cards. If the user has previously granted the site permission to send push, automatically sends the push registration to the Braze backend.

    Returns void

registerAppboyPushMessages

  • registerAppboyPushMessages(successCallback?: (endpoint: string, publicKey: string, userAuth: string) => void, deniedCallback?: (temporaryDenial: boolean) => void): void
  • Register this browser environment to receive web push for this user. Supports browsers which implement the W3C Push API (browsers in which appboy.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:

    • Your site must be https
    • Create a 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.

    Parameters

    • Optional successCallback: (endpoint: string, publicKey: string, userAuth: string) => void

      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).

        • (endpoint: string, publicKey: string, userAuth: string): void
        • Parameters

          • endpoint: string
          • publicKey: string
          • userAuth: string

          Returns void

    • Optional deniedCallback: (temporaryDenial: boolean) => void

      If push permission is denied, 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.

        • (temporaryDenial: boolean): void
        • Parameters

          • temporaryDenial: boolean

          Returns void

    Returns void

removeAllSubscriptions

  • removeAllSubscriptions(): void
  • Remove all event subscriptions.

    Returns void

removeSubscription

  • removeSubscription(subscriptionGuid: string): void
  • Remove an event subscription that you previously subscribed to.

    Parameters

    • subscriptionGuid: string

      The identifier of the subscription you wish to remove, returned by the method you initially used to create it.

    Returns void

requestContentCardsRefresh

  • requestContentCardsRefresh(successCallback?: () => void, errorCallback?: () => void): void
  • Requests an immediate refresh of content cards from Appboy 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.

    Parameters

    • Optional successCallback: () => void

      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.

        • (): void
        • Returns void

    • Optional errorCallback: () => void

      Callback that is invoked when an error occurs during the refresh.

        • (): void
        • Returns void

    Returns void

requestFeedRefresh

  • requestFeedRefresh(): void
  • Requests an immediate refresh of the news feed from Braze servers. By default, the news feed is refreshed on display.showFeed (when stale - see display.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` .

    Returns void

requestImmediateDataFlush

  • requestImmediateDataFlush(callback?: (success: boolean) => void): void
  • 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.

    Parameters

    • Optional callback: (success: boolean) => void

      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.

        • (success: boolean): void
        • Parameters

          • success: boolean

          Returns void

    Returns void

resumeWebTracking

  • resumeWebTracking(): void
  • Removes the cookie set by stopWebTracking, causing subsequent calls to the Braze Web SDK to function. You must call initialize after calling this method before calling subsequent methods.

    Returns void

setLogger

  • setLogger(loggerFunction: (message: string) => void): void
  • By default, Braze logs to the browser console. Call this method to set a custom log action and enable debug-level log statements.

    Parameters

    • loggerFunction: (message: string) => void

      A function to invoke with log messages. Should accept a single string parameter for message.

        • (message: string): void
        • Parameters

          • message: string

          Returns void

    Returns void

setSdkAuthenticationSignature

  • setSdkAuthenticationSignature(signature: string): boolean
  • 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.

    Parameters

    • signature: string

      The signature to add to network requests to authenticate the current user.

    Returns boolean

    Whether or not the signature is valid.

stopWebTracking

  • stopWebTracking(): void
  • 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.

    Returns void

subscribeToContentCardsUpdates

  • subscribeToContentCardsUpdates(subscriber: (cards: ContentCards) => void): string
  • Subscribe to content cards updates. The subscriber callback will be called whenever content cards are updated.

    Parameters

    • subscriber: (cards: ContentCards) => void

      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.

    Returns string

    The identifier of the subscription created. This can be passed to removeSubscription to cancel the subscription.

subscribeToFeedUpdates

  • subscribeToFeedUpdates(subscriber: (feed: Feed) => void): string
  • Subscribe to news feed updates. The subscriber callback will be called whenever the news feed is updated.

    Parameters

    • subscriber: (feed: Feed) => void

      The callback function to handle new cards. This function will be called with a Feedobject which includes all Card objects currently in the feed.

        • (feed: Feed): void
        • Parameters

          Returns void

    Returns string

    The identifier of the subscription created. This can be passed to removeSubscription to cancel the subscription.

subscribeToInAppMessage

  • Subscribe to receive in-app messages. The subscriber callback will be called whenever a new in-app message is triggered. If you are using the build of Braze's library with UI, the most basic usage of this would be

    appboy.subscribeToInAppMessage(function(inAppMessage) {
      appboy.display.showInAppMessage(inAppMessage);
    });

    Parameters

    Returns string

    The identifier of the subscription created. This can be passed to 'removeSubscription` to cancel the subscription.

subscribeToNewInAppMessages

  • DEPRECATED - Subscribe to receive in-app messages. The subscriber callback will be called whenever new in-app messages are triggered. If you are using the build of Braze's library with UI, the most basic usage of this would be

    appboy.subscribeToNewInAppMessages(function(inAppMessages) {
      appboy.display.showInAppMessage(inAppMessages[0]);
      return inAppMessages.slice(1);
    });
    deprecated

    Since Web SDK 2.4.0, this function has been replaced by appboy.subscribeToInAppMessage, which has a simpler interface. This function will be removed in a future release.

    Parameters

    Returns string

    The identifier of the subscription created. This can be passed to 'removeSubscription` to cancel the subscription.

subscribeToSdkAuthenticationFailures

  • subscribeToSdkAuthenticationFailures(subscriber: (error: { errorCode: string; reason?: string; signature?: string; userId?: string }) => void): void
  • 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.

    Parameters

    • subscriber: (error: { errorCode: string; reason?: string; signature?: string; userId?: string }) => void

      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.

        • (error: { errorCode: string; reason?: string; signature?: string; userId?: string }): void
        • Parameters

          • error: { errorCode: string; reason?: string; signature?: string; userId?: string }
            • errorCode: string
            • Optional reason?: string
            • Optional signature?: string
            • Optional userId?: string

          Returns void

    Returns void

toggleAppboyLogging

  • toggleAppboyLogging(): void
  • By default, Braze silences its logging to prevent spamming production js consoles. Call this method to toggle logging.

    Returns void

trackLocation

  • trackLocation(): void
  • Causes the Braze Web SDK to begin continuously collecting the user's location while your website is visible in the foreground of their browser, for the duration of this page load. This will cause the browser to request permission from the user if they have not already granted or denied it.

    deprecated

    This method has been deprecated in favor of using the native Geolocation API and passing the location data to User.setLastKnownLocation.

    Returns void

unregisterAppboyPushMessages

  • unregisterAppboyPushMessages(successCallback?: () => void, errorCallback?: () => void): void
  • 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.

    Parameters

    • Optional successCallback: () => void

      When the unsubscribe is successfully recorded and processed by Braze, this callback will be invoked.

        • (): void
        • Returns void

    • Optional errorCallback: () => void

      If the unsubscribe fails for unknown reasons, this callback will be invoked.

        • (): void
        • Returns void

    Returns void

wipeData

  • wipeData(): void
  • Removes all locally stored SDK data, causing the user to be seen in subsequent calls as a new anonymous user on a new device.

    Returns void