diff --git a/_docs/_user_guide/data_and_analytics/user_data_collection/sdk_data_collection.md b/_docs/_user_guide/data_and_analytics/user_data_collection/sdk_data_collection.md index ea54bd18d55..7ee7afd0c05 100644 --- a/_docs/_user_guide/data_and_analytics/user_data_collection/sdk_data_collection.md +++ b/_docs/_user_guide/data_and_analytics/user_data_collection/sdk_data_collection.md @@ -11,10 +11,11 @@ description: "This reference article addresses the data that is collected by the > 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: +Braze is designed to allow for flexible data collection. The Braze SDK can be integrated in the following 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. +- **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 automatically collecting this data if it is non-essential to the minimum integration. +- **Optional data not collected by default:** Braze provides the ability to capture some data that is useful for certain customers' use cases but does not automatically enable the collection for broad compliance reasons. Integrators can opt in to collect this data where it suits their use cases. - **Personalized integration:** Integrators have the flexibility to collect data in addition to the default optional data. ## Minimum integration @@ -66,24 +67,33 @@ If you are interested in only the minimum integration, and you integrate with mP 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]({{site.baseurl}}/developer_guide/platform_integration_guides/sdk_primer/#blocking-data-collection) 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 "``x``". | -| 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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) | This attribute is used to ensure messages are only sent to compatible devices. It can also be used within segmentation. | +| 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 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.

**Note:** This field has been deprecated as of iOS 16 and will default to `--` in a future iOS version. | +| 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 "``x``". | +| 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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent) | This attribute is used to ensure messages are only sent to compatible devices. It can also be used within segmentation. | {: .reset-td-br-1 .reset-td-br-2 .reset-td-br-3 .reset-td-br-4} To learn more about tracking device-level properties such as device wireless carrier, time zone, resolution, etc.), see the platform specific documentation: [Android]({{site.baseurl}}/developer_guide/platform_integration_guides/android/storage/ "Android allowlist documentation"), [iOS]({{site.baseurl}}/developer_guide/platform_integration_guides/swift/storage/ "iOS allowlist documentation"), [Web]({{site.baseurl}}/developer_guide/platform_integration_guides/web/cookies_and_storage/#device-properties "Web allowlist documentation"). +## Data not collected by default + +By default, the following attributes are not collected. You'll need to integrate each one manually. + +| Attribute | Platform | Description | Why it's Not Collected | +|----------------------------|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Device Ad Tracking Enabled | Android, iOS | On iOS:
[`set(adTrackingEnabled:)`](https://braze-inc.github.io/braze-swift-sdk/documentation/brazekit/braze/set(adtrackingenabled:))

On Android:
[`Braze.setGoogleAdvertisingId()`](https://braze-inc.github.io/braze-android-sdk/kdoc/braze-android-sdk/com.braze/-i-braze/set-google-advertising-id.html) | 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:)`](https://braze-inc.github.io/braze-swift-sdk/documentation/brazekit/braze/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]({{site.baseurl}}/developer_guide/platform_integration_guides/android/initial_sdk_setup/optional_gaid_collection). | +{: .reset-td-br-1 .reset-td-br-2 .reset-td-br-3 .reset-td-br-4} + ## Personalized integration To make the most out of Braze, integrators often implement the Braze SDKs and log [custom attributes]({{site.baseurl}}/user_guide/data_and_analytics/custom_data/custom_attributes/#setting-custom-attributes), [custom events]({{site.baseurl}}/user_guide/data_and_analytics/custom_data/custom_events/#logging-custom-events) and [purchase events]({{site.baseurl}}/user_guide/data_and_analytics/custom_data/purchase_events/#logging-purchase-events) that are pertinent to their business on top of the automatically collected data.