Crashlytics can be an effective and convenient way for you to discover the causes and severity of crashes in your app. But to do its job, Crashlytics needs to collect and analyze a lot of information about your users and their activity.
At Step 1, select the Website option or App option or both.
Answer some questions about your website or app.
Answer some questions about your business.
- 1. What is Crashlytics?
- 2.1. Information Collected by Crashlytics
- 2.2. Crashlytics Terms of Service
- 2.3. Privacy Law
- 5. Special Rules for Developers with EU Users
- 5.1. Collecting Consent
- 5.2. International Transfers
- 6. Summary
What is Crashlytics?
Few things are more frustrating for a developer than their app repeatedly crashing. This can cause delays in development, degrade user experience, or, at worst, end up completely destroying your project.
This is where crash reporting software, such as Crashlytics, can be useful. Crashlytics will log usage data about your app and provide insights into the nature of stability problems.
Crashlytics provides a software development kit (SDK) that developers can integrate into an Android, iOS or Unity app. It was created by Fabric. The company was acquired by Google in 2017, and Crashlytics is now part of Google's Firebase platform.
This only needs to be a short section, containing some key information specified by Crashlytics.
It's also a requirement under certain privacy laws to which you're likely to be subject.
Information Collected by Crashlytics
Many people think of personal information as being the obvious things like a person's name, address or social security number. However, the definition is a lot broader than this.
According to Crashlytics' Terms of Service, Crashlytics collects data such as:
- Device state information
- Unique device identifiers
- Location data
- Usage data
- Email address (depending on how the developer implements Crashlytics)
This sort of data can constitute personal information. It reveals information about individual people, and can, in theory, be linked to them. It also reveals how individuals use your app. Many people would consider this to be intrusive.
Crashlytics Terms of Service
- Is "readily accessible" from your website and/or app
- Lists the types of information that Crashlytics collects
- States that this information is shared with third parties (including Crashlytics)
- Explains how Crashlytics collects and uses this information
- Discloses that your app uses technology to track your users' activities and collect information from them
The collection of device and usage information also falls under the ambit of certain data protection and privacy laws, such as:
- The EU General Data Protection Regulation (GDPR)
- The California Online Privacy Protection Act (CalOPPA)
- Canada's Personal Information Protection and Electronic Documents Act (PIPEDA)
These laws are in place to ensure that you treat your users' personal information respectfully and that you're transparent about what personal information you collect.
Not all privacy laws are equally demanding.
The EU's GDPR, on the other hand, is much more extensive and covers every aspect of how you collect and process the personal information of your users. It also has a much wider definition of what constitutes personal information.
Generally speaking, you don't only have to consider the privacy laws of your home country. You must also obey the privacy laws of the places where your users reside. So if you have users in the EU, you're obligated to make sure your app follows the strict rules imposed by the GDPR.
We're going to take a look at three examples of Privacy Policies that make reference to Crashlytics. Each approaches the requirements slightly differently, but together you can learn from them and provide your users with something compliant and comprehensive.
Callabio appears to have covered most of what is required of it under the Crashlytics Terms of Service. However, it doesn't specifically state that this information will be used to track users, and it doesn't disclose that Crashlytics collects location data.
Callabio then goes on to provide links to further privacy information provided by Google and Fabric, which is a welcome addition:
Here's our second example, from DBDSoft. DBDSoft has included some of the information required by Crashlytics but not all of it:
DBDSoft identifies the types of information collected: "device state information, unique device identifiers, device hardware and OS information [...] physical location.."
DBDSoft does name Crashlytics but doesn't specifically state that this information will be shared with them. It's important to mention this because your users need to know where this information is going.
This meets the requirement that you state that information will be shared with third parties, including Crashlytics.
Crashlytics is also mentioned in the Third-Party Services clause in the Third Party SDK's section. Here, users are informed that the Fabric SDK makes it possible for the app to "capture and collect crash logs through the Crashlytics service and interact with the Twitter Platform."
This meets the requirement that the types of information collected by Crashlytics are listed.
In the clause that covers what information Momento collects, a general Usage Information section notes that "anonymous analytical information" is collected when the service is used and this includes "information about your interaction with the Services, including the actions you take on the Services."
Even though Crashlytics isn't mentioned here explicitly, this clause still works to meet the requirement that you disclose that your app uses technology to track your users' activities and collect information from them.
Let's take a look at some examples.
Slack places an option to access its "Privacy and licenses" at the bottom of its Settings menu:
Tapping on this option leads to the following screen:
Here's a slightly different approach from Malwarebytes.
Here are the options available in the About screen:
Special Rules for Developers with EU Users
The Crashlytics Terms of Service makes some specific demands of developers who have users based in the European Union.
If you have users in the EU, or if you're based in the EU, you'll need to abide by EU privacy law.
Just to reiterate: this applies to all the users you have in the EU. It doesn't matter whether you're based in the United Kingdom, United States, or the United Arab Emirates - or anywhere else, for that matter. What matters is where your users are located.
EU privacy rules apply to anyone collecting the personal information of people in the EU for the purposes of "offering goods or services." Note that this applies whether or not your app costs money or makes a profit.
The Crashlytics Terms of Service states the following:
Meeting EU data protection standards means abiding by these two important privacy laws:
- The ePrivacy Directive. Sometimes known as the EU Cookies Directive, the ePrivacy Directive requires you to earn consent for using cookies and other devices. This includes any software that accesses a user's information or tracks their behavior, such as Crashlytics.
- The General Data Protection Regulation (GDPR). The GDPR sets the standard of consent. It requires that, wherever you're asking for consent, you must do so in a meaningful way. You can't assume that you have a user's consent for crash reporting and then ask them to opt out. You need to take proactive steps to ensure that they're really happy for you to use their personal information in this way.
Not every company is very good at complying with these rules. But it's very important that you do so, as the EU's Data Protection Authorities aren't shy about taking legal action.
In fact, Google itself was hit with an eye-watering €50 million fine in January 2019 because of the way in which it was collecting consent. So it might be not surprising that, by default, Firebase Crashlytics collects users' personal information without their consent.
If you're serving EU users, you should enable opt-in reporting. This is an option provided by the service, and so it's your responsibility to activate it. This will give your users real control about whether you use their personal information for this purpose.
Here's Google's guidance on how to do this for Android users within Firebase:
Many apps collect consent for crash reporting. Here's an example from Ookla's Android app, Speedtest:
You should also provide an option to allow your users to withdraw consent once they've given it (or provide consent if they've previously refused it). Here's how Speedtest does this:
The Crashlytics Terms of Service gives the following requirement:
The Crashlytics Terms require that you obtain EU users' consent to transfer their data to countries outside of the EU.
This is a somewhat confusing provision.
There are rules about transferring personal information out of the EU, to non-EU countries. These rules are discussed at Chapter 5 of the GDPR. There are several different ways to legally perform such a transfer. The GDPR sets out several safeguards.
It is possible to transfer a user's personal information out of the EU on the basis of their consent. However, this is normally a last resort, where none of the other safeguards are available.
Data transfers to Crashlytics used to be covered by Google's certification under the EU-U.S. Privacy Shield Framework. Under this framework, it wasn't necessary or appropriate to seek a user's consent to transfer their data outside of the EU for the purposes of using Crashlytics. However, Privacy Shield has since been invalidated and the EU-U.S. Data Privacy Framework has taken its place.
Although this part of Crashlytics' Terms of Service is confusing, and although it appears to have been ignored by many if not all developers, remember that you do agree to fulfill this requirement by using the service.
This must include information about:
- The types of information Crashlytics collects
- How Crashlytics collects and uses this information
You must disclose that:
- This information is shared with Crashlytics (i.e. Google) and other third parties
- Crashlytics tracks your users' activities
There are extra requirements pertaining to any of your users in the EU:
- Get consent for collecting crash reporting data
- Provide notice of, and get consent for, the transfer of your users' personal information outside of the EU