This guide explains RudderStack’s Braze deduplication feature in detail and how you can use it to save data points and avoid billing overages in Braze.
Deduplication in Braze
Braze charges its consumption based on data points it ingests for every user property and events like session starts and ends, purchases, etc. These data points are accumulated whenever you update a user profile or when the users perform specific actions.
Braze counts all data points irrespective of whether you send any duplicates. It considers every property (except the standard ones) as a data point and counts it against your billing.
With the deduplication feature, RudderStack prevents duplicate user traits in the identify and track calls from being sent to Braze, thus saving data points and ultimately avoiding billing overages in Braze.
This feature is particularly useful in Reverse ETL scenarios where a large number of rows are sent with duplicate columns.
Get started
To use the Braze deduplication feature, follow these steps:
Log in to your Braze dashboard and go to Settings > Developer Console.
Generate a new REST API key with the users.export.ids permission. You can find it in the User Data section of permissions.
You also need to include the permissions listed in the Braze destination’s connection settings.
Use this REST API key to set up your Braze destination.
RudderStack stores the previous identify object and uses it for comparison - this check occurs directly in the Braze SDK.
Cloud mode
RudderStack uses the /users/export/ids endpoint (leveraging the users.export.ids scope in the REST API key used for setting up the Braze destination) to export data from a user profile by specifying a user identifier. It then compares the user profile against the incoming user traits to determine any deltas.
If a delta is found, RudderStack sends only the updated user traits to Braze and drops the others.
RudderStack implements the deduplication logic such that it will not surpass Braze’s API limits in most cases. However, in scenarios where this limit is surpassed, RudderStack defaults to sending all events without deduplication until the volume returns below the permissible rate limits.
The following example highlights how RudderStack sends deduplicated data to Braze:
Go to the Braze destination in your RudderStack dashboard and click the Live Events button. Also, log in to your Braze dashboard.
Send the test payloads - you should be able to see them in your Live Events viewer. Also, confirm that the attributes show up as expected in your Braze dashboard by going to the User Search tab.
Add or update a few attributes while retaining the rest of the event payload. If you used the event payload in Step 3, you can use the following modified payload to test the impact of the attribute changes:
Resend your event payload. You should see the new event with only the added/updated attributes. You can also confirm in the Braze dashboard that the attributes were added/updated (by going to the User Search tab for the same test user ID).
How do I observe the difference in data point billing due to deduplication?
In your Braze dashboard, go to Subscriptions and usage and check the metrics by the appropriate date filters (before and after enabling deduplication) to observe the data point differences over that period.
Does RudderStack support deduplication in case of nested arrays?
RudderStack supports the deduplication of both simple and nested arrays stored as properties.
However, if there are any changes within the nested array or object, RudderStack considers the entire array or object as changed before sending it to Braze.
For example, if you send the below data that is already sent previously to Braze, RudderStack deduplicates it and prevents additional data point consumption.
This site uses cookies to improve your experience while you navigate through the website. Out of
these
cookies, the cookies that are categorized as necessary are stored on your browser as they are as
essential
for the working of basic functionalities of the website. We also use third-party cookies that
help
us
analyze and understand how you use this website. These cookies will be stored in your browser
only
with
your
consent. You also have the option to opt-out of these cookies. But opting out of some of these
cookies
may
have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This
category only includes cookies that ensures basic functionalities and security
features of the website. These cookies do not store any personal information.
This site uses cookies to improve your experience. If you want to
learn more about cookies and why we use them, visit our cookie
policy. We'll assume you're ok with this, but you can opt-out if you wish Cookie Settings.