-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firebase Analytics: New Apple Privacy Guidelines (Fall 2020) #5928
Comments
This comment has been minimized.
This comment has been minimized.
To answer your questions:
|
Googlers-only bug number: b/160005774 |
Thanks for your comment, @morganchen12! I am still missing some answers to 1. (Privacy Information on the App Store):
Answers to those questions, will be important for all developers integrating Firebase Analytics in order to answer the privacy questions during Apple's app review process as well as inform app users about the use of data by the 3rd-party Firebase SDK. My question in 2. (Permission to track) explicitly asked about an app that only includes Firebase Analytics (no AdMob or other advertising SDKs). From Apple's website:
Does Firebase use the collected data to perform such activity? |
Analytics' collected data is described in this support document. Analytics will track the user's country but not their granular location and will not automatically track or log contacts, photos, or other data even if the user has given permission for the app to access that data. If you're using Analytics and want to track that data you must log it manually. Analytics does use ad ID data to determine advertising efficiency, so this does constitute tracking under Apple's guidelines. |
We’ve heard of several Apple rejections of apps in the Kids Category that use Firebase, even if they have disabled IDFA. The rejections relate to the latest Apple Review Guidelines regarding kids apps as described in section 1.3 (https://developer.apple.com/app-store/review/guidelines/#safety). We consider using Firebase Auth and Cloud Firestore but we are reluctant to do so, in fear that Apple may reject our app even if we don’t use IDFA. We don’t plan to use analytics nor advertising. Can you give us some insight into this? Will there still be references to IDFA if we just use the above products and opt-out from IDFA? |
@morganchen12 Thank you for the clarification. |
So this would in essence mean that I would have to show the AppTransparencyFramework dialog in order to be able to keep using Firebase Analytics? Do I understand this correctly? |
Currently that is the case if the AdSupport framework is linked. You can use FirebaseAnalytics without linking AdSupport, but linking is not as explicit a control as we'd like because of issues like #1686. Edit: This is no longer required with the latest version of Analytics. Analytics will now recognize the blank ad ID if AppTrackingTransparency consent is unavailable and continue to work correctly without ad features, even if AdSupport is linked. |
Thanks for the update. This is good to know. I know that there are other frameworks that currently links AdSupport too, so this is definitely something to watch out for. |
Will the Firebase team be providing any official guidance in the future, such as in a blog post or docs page, about how developers using the SDK can best navigate this change in policy? There is speculation that Google will be getting rid of their GAID in a similar fashion. Regardless of whether this happens or not, it would be nice to have some concrete information compiled that developers can reference to ensure that Firebase is behaving exactly as desired. |
A blogpost or guidance in the developer documentation would even be better. Isn’t it possible to disable the usage of a unique id? Whether it is or isn’t linked to a ad framework. Thanks. |
@kev-lam and the rest of the Analytics team are working on more comprehensive official guidance. |
@morganchen12 thanks for the quick reply and update! |
Do we have any update on this? |
You can use Firebase + AdMob and serve ads without the advertising identifier, but expect to see decreased ad revenue. The AdMob docs for iOS 14 can be found here. |
So, can you confirm that Firebase Analytics doesn't require IDFA, and we don't need to state our app is using it when we publish to the AppStore? |
Just for 100% clarity, if we do not want to use the IDFA in iOS 14, all we have to do is forgo the ATT framework and the Firebase SDK will operate with no issues other than decreased revenue and reduced attribution data? |
In the latest version of Analytics, yes. Older versions aren't aware of the zeroed out IDFA and will treat it as a normal advertising identifier, which probably won't cause any issues, but is not ideal. |
Will Firebase Analytics request ATT Authorization in future versions or Are we responsible, as developers, to request that authorization? |
Analytics will never automatically request ATT authorization. It's up to you to decide whether or not access to the advertising identifier is critical to your business and request the required permissions if necessary. |
So, I'd also like some more insight into what data Firebase collects when only crash reporting is used. We do not use analytics as we're prohibited to do so by Apple, because we are an app made for kids. We also do not need IDFA. But we just started receiving rejections for only including the code that has references to IDFA, even if it is programatically disabled. So if the code we ship contains calls to |
@Legoless IDFA and |
OK, but those Crashlytics Installation UUIDs (according official page https://firebase.google.com/support/privacy#crash-stored-info ) are not used for tracking user or his/her device by other installed apps that uses Firebase SDK (with Analytics or not) or used for some other form of identification and linking back to user or device? In other words, we can safely define on AppStore Connect's App Privacy form that data type: Diagnostics > Crash Data are "Data Not Linked to You"? |
We have interpreted this differently, so I'm curious to the opinion from Google. This is the Q&A flow of the App Store Privacy details regarding Diagnostics → Crash Data: Q: Indicate how crash data collected from this app is being used by you or your third-party partners (select all that apply): Q: Is the crash data collected from this app linked to the user’s identity?
The column name of the Firebase table that mentions the Crashlytics Installation UUIDs, is called “Personal Data“ for these items. Q: Do you or your third-party partners use crash data for tracking purposes? |
Crashlytics crash data, including UUIDs, are not associated with any other identifiers and are not used to share data between third parties. Crash information is associated with a user if you call the
No. |
@morganchen12 Hi! Jumping late into this conversation. I hope its okay for me to ask a specific question pertaining to our app's situation, the above thread is a lot to process and understand. I'm using the following Firebase pods:
We use the Analytics SDK to track the following:
My Questions:
|
@xanderbuck A Firebaser can verify this, but to my understanding:
I'm pretty sure that this is the case- but in the event that I am wrong, anyone is welcome to correct me. |
@xanderbuck Will's breakdown is correct. Do note that the user ID you're setting should not be personally identifiable information. If you're using an email, you should hash it or otherwise make it unidentifiable. Also, if you're passing a user ID to Analytics, your data collection purpose in the Identifiers category may differ from Will's screenshot above. |
@willbattel @morganchen12 according to this support document Analytics collects the vendor identifier if AdSupport isn't linked. If I do not set a UserID with And is the collected data "linked to a user" if I don't set a UserID? https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor |
@ndreisg collection of the two identifiers is not mutually exclusive; if you're calling |
Hey all, thanks for your patience. Our documentation is now available here. Feel free to continue to leave feedback or questions in this thread and I will address them as they come in. |
Hi there, thanks for all of the information already shared. I'm only using Analytics, Crashlytics, and RemoteConfig, and have disabled collection of the Advertising Identifier / IDFA / ad personalisation. From what I understand, in this case in terms of identifiers Firebase is only tracking an app-instance identifier, a vendor identifier, and also the anonymised IP address. Does anyone know if in this case this should be included in Apple's Identifiers category? Apple's Identifiers category mentions identifiers "Such as the device's advertising identifier, or other device-level ID", so it only mentions device level identifiers rather than app level identifiers. I suppose vendor identifier would be considered a device level identifier. |
It's unclear whether Apple expects every identifier to be reported or only identifiers that fit one of the two definitions Apple has provided. IDFA and IDFV are, by Apple's definitions, device-level identifiers. |
In my app I'm using Analytics & Crashlytics. |
I'm using only |
@A5Wali Collection of app_instance_id can be disabled with the new Consent API. See this doc for how the various consent settings enable/disable identifier collection. @meowofficial I'm not sure about how the lack of AdSupport will affect Apple Search Ads attribution. However, starting in 2021, you can include the AdSupport framework and Analytics won't collect the IDFA unless you present the AppTrackingTransparency dialogue. |
I'm using Flutter. What should happen so I can understand this takes effect? January 1st or may be specific |
The current version of Analytics is sufficient and you will not need to upgrade. Mechanically, what happens is once Apple starts enforcing App Tracking Transparency prompts the IDFA will be all zeroes unless the prompt is accepted. Analytics recognizes this special value and treats it as if the IDFA is not available. |
@morganchen12 You said a little earlier:
Using
|
@xanderbuck what you're doing is fine. |
@morganchen12 Thanks a bunch for your help! |
@morganchen12 Thanks for posting the support document. I have a question about it. Mostly, it says "collect" data, but sometimes "record" instead. What's the difference between "collect" and "record", if there is any? E. g. for Messaging it says "Records the APNs token". I am only using FirebaseMessaging without analytics, but that includes FirebaseInstanceID. I am wondering if the "FCM registration token" (is this the same as the Firebase Instance ID?) is a "User ID", "Device ID", or "Other Data" under Apple's definition? |
@herrernst "collect" and "record" are used interchangeably in that document. Given its one-to-one association with the APNs token, you can probably categorize the FCM token and the APNs token identically. |
Thanks for your answer, but it still have questions regarding the documentation.
The first point would indicate that the client (App/SDK) generates the token, but the second point would indicate that device model, language etc. are sent to the server/cloud, who generates the token. Who really does? |
@herrernst The token is generated server-side from the client details disclosed in the second bullet you listed. The generated token is then sent down to the client and is used/stored by both the client and the server. |
In fall 2020, Apple will enforce new privacy guidelines for 3rd-party analytics SDK, such as Firebase Analytics.
Details are outlined in this document: https://developer.apple.com/app-store/user-privacy-and-data-use/
1. Privacy Information on the App Store
Apple will require developers to provide information about the privacy practices when submitting apps in App Store Connect.
The provided information will be used to inform users about the privacy practices of an app on the App Store.
Question
Developers need to know the exact set of data that is collected by the Firebase SDK in order to provide this information to Apple.
2. Permission to track
Apple will require apps to explicitly ask for the users permission to track them or access their device’s advertising identifier. The new AppTrackingTransparency framework needs to be used to prompt the user for permission.
According to Apple, the AppTrackingTransparency framework needs to be used to ask for permission in the following cases:
Question
Given an app that only includes Firebase Analytics (no AdMob or other advertising SDKs) and does not link to the AdSupport.framework (so that the IDFA is not used):
Looking forward to your interpretation of the new rules and your recommendation towards developers.
The text was updated successfully, but these errors were encountered: