Storage
This article describes the different device-level properties captured when using the Braze iOS Swift SDK.
Device properties
By default, Braze will collect the following device-level properties to allow device, language, and time zone-based message personalization:
- Device Carrier (see note on the
CTCarrier
deprecation) - Device Locale
- Device Model
- Device OS Version
- Push Authorization Status
- Push Display Options
- Push Enabled
- Device Resolution
- Device Time Zone
The Braze SDK does not collect IDFA automatically. Apps may optionally pass IDFA to Braze by implementing the methods directly below. Apps must obtain explicit opt-in to tracking by the end user through the App Tracking Transparency framework before passing IDFA to Braze.
- To set the advertising tracking state, use
set(adTrackingEnabled:)
. - To set the identifier for advertiser (IDFA), use
set(identifierForAdvertiser:)
.
Configurable device fields are defined in the Braze.Configuration.DeviceProperty
enum. To disable or specify the device field you’d like to allowlist, add the fields to the devicePropertyAllowList
property of the configuration
object.
For example, to specify time zone and locale collection to be allowlisted, set:
1
configuration.devicePropertyAllowList = [.timeZone, .locale]
1
2
3
4
configuration.devicePropertyAllowList = @[
BRZDeviceProperty.timeZone,
BRZDeviceProperty.locale
];
By default, all fields are enabled. Note that without some properties, not all features will function properly. For instance, local time zone delivery will not function without the time zone.
To read more about the automatically collected device properties, visit our SDK data collection.