SDK data collection
When you integrate the Braze SDK with your app or site, Braze automatically collects certain types of data. Some of this data is essential for our processes and some of this data can be toggled on or off based on your needs. Integrators can also configure Braze to collect additional types of data to further power your segmentation and messaging.
Braze is designed to allow for flexible data collection. The Braze SDK can be integrated in three ways:
- Minimum integration: Braze automatically collects data that is necessary to enable communication with the Braze services.
- Optional data collected by default: Braze automatically captures some data that is broadly useful for most of our customers’ use cases. Integrators can opt to disable this automatically collected data if it is non-essential to the minimum integration.
- Personalized integration: Integrators have the flexibility to collect data in addition to the default optional data.
Minimum integration
The following lists the strictly-necessary data generated and received by Braze when an integrator chooses to initialize the SDK. These elements are non-configurable and are essential in core platform functions. With the exception of session start and end, all other automatically tracked data does not count toward your data point allotment.
Attribute | Platform | Description | Why it’s Collected |
---|---|---|---|
App-Version-Name / App-Version-Code |
Android, iOS, Web | The most recent app version | This attribute is used to ensure messages related to app version compatibility are sent to the correct devices. It can be used to notify users of service disruption or bugs. |
Country | Android, iOS | Country identified via IP address geolocation | This attribute is used to target messages based on location. |
Device ID | Android, iOS, Web | Device identifier, a randomly generated string | This attribute is used to differentiate users’ devices and ensure messages are sent to the correct intended device. |
IDFV | iOS | Device identifier—IDFV collection is now optional on our Swift SDK | Used to differentiate users’ devices, and ensure messages are sent to the correct intended device. |
OS and OS version | Android, iOS, Web | Currently reported device/browser and device/browser version | This attribute is used to ensure messages are only sent to compatible devices. It can also be used within segmentation to target users to upgrade app versions. |
Session start and session end | Android, iOS, Web | When the user begins using your integrated app or site | The Braze SDK reports session data used by the Braze dashboard to calculate user engagement and other analytics integral to understanding your users. Exactly when the session start and session end is called by your app or site is configurable by a developer (Android, iOS, Web). |
SDK message interaction data | Android, iOS, Web | Push direct opens, in-app message interactions, Content Card interactions | This attribute is used for quality control purposes, like checking that a message was received and that sending isn’t duplicated. |
SDK version | Android, iOS, Web | Current SDK version | This attribute is used to ensure messages are only sent to compatible devices and to ensure no disruption of the service. |
Session ID and session timestamp | Android, iOS, Web | Session identifier, a randomly generated string and session timestamp | Used to determine whether the user is starting a new or existing session and to determine re-eligibility of messages intended for this user. Certain messaging channels such as in-app messages and Content Cards are synchronized to the device upon session start. Our backend will then use data related to when it last contacted Braze servers (which the device stores and sends back) to know if the user is eligible for any new messages. |
Calculated metrics
The Braze backend generates metrics calculated on SDK data, message interaction data related to non-SDK messages, and derived information. For clarity, this calculated data is not tracked by the SDK but generated by the Braze services, and a user profile will display both tracked data and generated data.
Calculated metrics include the following attributes.
Attribute | Description |
---|---|
First used app | Time |
Last used app | Time |
Total session count | Number |
Clicked card | Number |
Last received any message | Time |
Last received email campaign | Time |
Last received push campaign | Time |
Number of feedback items | Number |
Number of sessions in the last Y days | Number and time |
Received message from campaign | Boolean. This filter allows you to target users based on their having (not) received a previous campaign. |
Received message from campaign with tag | Boolean. This filter allows you to target users based on their having (not) received a campaign that currently has a tag. |
Retarget campaign | Boolean. This filter allows you to target users based on whether or not they have opened, or clicked on a specific email, push, or in-app message in the past. |
Uninstalled | Boolean and time |
If you are interested in only the minimum integration, and you integrate with mParticle, Segment, Tealium, or GTM, note the following:
- Mobile platforms: You must manually update the code for these configurations. mParticle and Segment do not offer a way to do this through their platform.
- Web: Braze integration must be done natively to allow for the minimum integration configuration. Tag managers do not offer a way to do this through their platform.
Optional data collected by default
In addition to the minimum integration data, the following attributes are automatically captured by Braze when an integrator initializes the SDK. An integrator can opt-out of collecting these attributes to allow for a minimum integration.
Attribute | Platform | Description | Why it’s Collected |
---|---|---|---|
Browser name | Web | Name of the browser | This attribute is used to ensure messages are only sent to compatible browsers. It can also be used for browser-based segmentation. |
Device Ad Tracking Enabled | iOS | adTrackingEnabled attribute for iOS |
This attribute tracks whether or not this app has Ad Tracking enabled. |
Device IDFA | iOS | Device identifier for advertisers | Optionally used to track data. |
Device locale | Android, iOS | The default locale of the device | This attribute is used to translate messages to a user’s preferred language. |
Device model | Android, iOS | The specific hardware of the device | This attribute is used to ensure messages are only sent to compatible devices. It can also be used within segmentation. |
Device brand | Android | The brand of device (for example, Samsung) | This attribute is used to ensure messages are only sent to compatible devices. |
Device wireless carrier | Android, iOS | The mobile carrier | This attribute is optionally used for message targeting. |
Language | Android, iOS, Web | Device/browser language | This attribute is used to translate messages to a user’s preferred language. |
Notification settings | Android, iOS, Web | Whether this app has push notifications enabled. | This attribute is used to enable push notifications. |
Resolution | Android, iOS, Web | Device/browser resolution | Optionally used for device-based message targeting. The format of this value is “<width> x<height> ”. |
Time zone | Android, iOS, Web | Device/browser time zone | This attribute is used to ensure messages are sent at the appropriate time, according to each user’s local time zone. |
User agent | Web | User agent | This attribute is used to ensure messages are only sent to compatible devices. It can also be used within segmentation. |
To learn more about tracking device-level properties such as device wireless carrier, time zone, resolution, etc.), see the platform specific documentation: Android, iOS, Web.
Personalized integration
To make the most out of Braze, integrators often implement the Braze SDKs and log custom attributes, custom events and purchase events that are pertinent to their business on top of the automatically collected data.
A personalized integration allows for customized communication that is relevant to your users’ experience.
Braze will ban or block users with over 5 million sessions (“dummy users”) and no longer ingest their SDK events. For more information, refer to Spam blocking.