# Prepare for Apple’s App Store data disclosure requirements

Apple requires developers publishing apps on the App Store to disclose
[certain information](https://developer.apple.com/app-store/app-privacy-details/)
regarding their apps' data use. Apple has
[announced](https://developer.apple.com/news/?id=vlj9jty9) that these
disclosures are required for new apps and app updates starting December 8, 2020.
This document contains ML Kit library behaviors that could require disclosure
according to Apple's guidelines.

This page lists the data collected by only
[the latest version](https://developers.google.com/ml-kit/release-notes) of each
ML Kit iOS SDK.

## Collected data

### Data collected in all features

|---|---|
| **Data** | **By default, the ML Kit SDK collects...** |
| Device information | Device information (such as manufacturer, model, OS version and build) and available ML hardware accelerators. Used for diagnostics and usage analytics. |
| Application information | Bundle ID and app versions. Used for diagnostics and usage analytics. |
| Device or other identifiers | Per-installation identifiers that are not intended to uniquely identify a user or physical device. Used for diagnostics and usage analytics. |
| Performance metrics | Performance metrics (such as latency). Used for diagnostics and usage analytics. |
| API configuration | API configuration (such as image format and resolution). Used for diagnostics and usage analytics. |
| Event type | Event type (such as feature initializations, model downloads, detection, resource releases). Used for diagnostics and usage analytics. |
| Error codes | Error code for feature events (such as feature initializations, model downloads, detection, resource releases). Used for diagnostics and usage analytics. |

### Extra data collected in specific features

#### Custom object detection and image labeling

`MLKitObjectDetectionCustom`  

`MLKitImageLabelingCustom`

- If you are using these libraries with custom models, the following data is collected:
  - Name, version, and URI/URL of the machine learning model for diagnostics
- If you are using [Firebase Model Deployment](https://firebase.google.com/docs/ml/manage-hosted-models) with *`MLKitLinkFirebase`* to remotely host a custom model, refer to the [Firebase ML model downloader](https://firebase.google.com/docs/ios/app-store-data-collection#firebasemlmodeldownloader) and [Firebase installations](https://firebase.google.com/docs/ios/app-store-data-collection#installations) sections in [Prepare for Apple Store data disclosure requirements](https://firebase.google.com/docs/ios/app-store-data-collection).

#### Translate

`MLKitTranslate`

- Configured source and destination languages. Used for diagnostics and usage analytics.
- ML Kit uses *Firebase remote config* and *Firebase installations* for remote configuration diagnostics. Please refer to the [Firebase remote config](https://firebase.google.com/docs/ios/app-store-data-collection#remote-config) and [Firebase installations](https://firebase.google.com/docs/ios/app-store-data-collection#installations) sections in [Prepare for Apple Store data disclosure requirements](https://firebase.google.com/docs/ios/app-store-data-collection).

#### Entity extraction and digital ink recognition

`MLKitEntityExtraction`  

`MLKitDigitalInkRecognition`

- Configured languages. Used for diagnostics and usage analytics.

#### Smart reply

`MLKitSmartReply`

- Identified languages. SmartReply internally uses language identification to only respond to specific languages. Used for diagnostics and usage analytics.
- ML Kit uses *Firebase remote config* and *Firebase installations* for remote configuration diagnostics. Please refer to the [Firebase remote config](https://firebase.google.com/docs/ios/app-store-data-collection#remote-config) and [Firebase installations](https://firebase.google.com/docs/ios/app-store-data-collection#installations) sections in [Prepare for Apple Store data disclosure requirements](https://firebase.google.com/docs/ios/app-store-data-collection).

#### Language ID

`MLKitLanguageID`

- Identified languages. Used for diagnostics and usage analytics.