Skip to content

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 turned on or off based on your needs. You 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, so you can integrate the Braze SDK in the following ways:

  • Minimum integration: Braze automatically collects data that is necessary to communicate with Braze services.
  • Optional data collected by default: Braze automatically captures some data that is broadly useful for most of your use cases. You can opt to disable automatically collecting this data if it’s non-essential for communication with Braze services.
  • Optional data not collected by default: Braze captures some data that is useful for certain use cases and doesn’t automatically enable the collection for broad compliance reasons. You can opt to collect this data where it suits your use cases.
  • Personalized integration: Braze gives you 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 you initialize the SDK. This data is non-configurable and is essential in core platform functions. Except for session start and session end, all other automatically tracked data doesn’t count toward your data point allotment.

Attribute Description Why it’s collected
App-Version-Name /
App-Version-Code
The most recent app version This attribute is used to send messages related to app version compatibility to the correct devices. It can be used to notify users of service disruptions or bugs.
Country Country identified by IP address geolocation This attribute is used to target messages based on location.
Device ID Device identifier, a randomly generated string This attribute is used to differentiate users’ devices and send messages to the correct device.
OS and OS version Currently reported device or browser and device or browser version This attribute is used to only send messages to compatible devices. It can also be used within segmentation to target users to upgrade app versions.
Session start and session end 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 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 Current SDK version This attribute is used to only send messages to compatible devices and avoid service disruption.
Session ID and session timestamp 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

Braze 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 targets users based on whether they have received a previous campaign.
Received message from campaign with tag Boolean. This filter targets users based on whether they have received a campaign that currently has a tag.
Retarget campaign Boolean. This filter targets users based on whether they have opened or clicked on a specific email, push, or in-app message in the past.
Uninstalled Boolean and time

Optional data collected by default

In addition to the minimum integration data, the following attributes are automatically captured by Braze when you initialize the SDK integration. You 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 only send messages to compatible browsers. It can also be used for browser-based segmentation.
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 only send messages 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 only send messages to compatible devices.
Device wireless carrier Android, iOS The mobile carrier This attribute is optionally used for message targeting.

Note: This field has been deprecated as of iOS 16 and will default to -- in a future iOS version.
Language Android, iOS, Web Device or 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 or browser resolution Optionally used for device-based message targeting. The format of this value is “<width>x<height>”.
Time zone Android, iOS, Web Device or browser time zone This attribute is used to send messages at the appropriate time, according to each user’s local time zone.
User agent Web User agent This attribute is used to only send messages 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, and others), see the platform-specific documentation: Android, iOS, Web.

Data not collected by default

By default, the following attributes aren’t collected. Each attribute needs to be manually integrated.

Attribute Platform Description Why it’s Not Collected
Device Ad Tracking Enabled Android, iOS On iOS:
set(adTrackingEnabled:)

On Android:
Braze.setGoogleAdvertisingId()
This property requires additional app-level permissions, which must be granted by the integrator.
Device IDFA iOS Device identifier for advertisers This requires the Ad Tracking Transparency framework, which will trigger additional privacy review from the App Store. For more details, see set(identifierForAdvertiser:)
Google Advertising ID Android Identifier for advertising within Google Play apps This requires the app to retrieve the GAID and pass it to Braze. For more details, refer to Optional Google Advertising ID.

Personalized integration

To make the most out of Braze, our SDK 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.

HOW HELPFUL WAS THIS PAGE?
New Stuff!