Firebase Crashlytics - Use of Advertising ID - android

According to this page, every application submitted to the Play Store must not have the capability to collect both persistent device identifier and Advertising ID. Failure to comply will result in application removal from the Play Store.
Now, I have an application that is collecting persistent device identifier for security purposes, but I still want to use Firebase Crashlytics, as I added the SDK, I noticed that the SDK collects Advertising ID, but I can't find the code that initiate the collection.
So, my question is will the Firebase Crashlytics SDK collect Advertising ID automatically on library inclusion to the app?
If it does, is there any way to disable the collection of Advertising ID?

Related

Firebase does not collect age and gender data

I am linking my Android and iOS app to Firebase Analytics, and it seems to work well except I cannot collect the "automatic" information about the user, such as gender and age.
I can see some thousands of users, and I can also track custom events (like in-app purchases)
But in the same view, gender and age are not present.
This question looks like the same, but the answer is not applicable: I used DebugView to test it and then deactivated it as per documentation.
of course, View "All Users" audience displays the same data.
There are possible reasons:
Google Signals isn't activated. Make sure that you have enabled Google Signals for your property, because Google signals are session data that Google associates with users who have logged in to their Google accounts and who have turned on Ads Personalization.
Collection of Device Advertising IDs is disabled.
Please ensure that the Collection of Device Advertising IDs is enabled, so that you will be able to see demographic and interest data on the Analytics dashboard since this is used to track user properties such as Age, Gender and Interests. Also, Analytics derives demographics and interests data from the Android Advertising ID or the iOS Identifier for Advertisers (IDFA).
google-services.json or dependencies are outdated
I have such problem. 1 and 3 solve it. You also can contact Firebase Support.
According to this help center page on automatically collected user properties,
For iOS apps, the app must collect IDFA in order to automatically derive the Age, Gender, and Interests properties.
The link in there further clarifies:
On iOS, the SDK collects the Advertising Identifier if it is available. For IDFA to be available, a developer has to link in the following libraries:
libAdIdAccess.a
AdSupport.framework
So you might want to check if you're including the necessary dependencies.
Based on the answer here, Firebase Analytics demographic reports is thresholded for privacy reasons. Once you have enough data -- at least 10 users per age/gender bracket -- data for that bracket will be shown.

Prevent OneSignal sending Android Advertising identifier

I have received an warning from Google Play:
Reason for warning: Violation of Usage of Android Advertising ID
policy and section 4.8 of the Developer Distribution Agreement
I have been checking and app should be sending the Android Advertising ID. It has to be a library because I am not doing it.
I use crashlytics and OneSignal and both could be the problem. But I have found in the documentation of OneSignal that the SDK get it:
https://documentation.onesignal.com/docs/handling-personal-data#section-personal-information-sent-as-data-tags
Some data is automatically collected by the OneSignal SDK. For example, on mobile devices this typically include's the device's advertising id, purchases they have made in your app, the timezone setting of the device, and location data (if your app has location permission).
I am trying to disable the SDK continue collecting the advertising identifier but I don't find how to do it. In addition, the list of collected data is not clear because Advertising identifier does not appear:
https://documentation.onesignal.com/docs/data-collected-by-the-onesignal-sdk
I would need to know how to configure OneSignal SDK for not collecting anymore the Advertising identifier.
Thanks.
Google has started emailing apps that use Advertising Id and do not have a privacy policy to tell them they must add a privacy policy.
You can address this by adding a privacy policy to your Play Store listing and in your app. If you do not already have a privacy policy, there are tools available to create one such as http://www.docracy.com/mobileprivacy (free) or https://www.iubenda.com/en/ ($27/yr)
After speaking a little bit more with JonF, he spoke with OneSignal developers and they said that it is possible to avoid sending the Advertising ID changing some lines in the SDK:
Most of the tracking for Android can be removed from registerUserTask
in
https://github.com/OneSignal/OneSignal-Android-SDK/blob/3a4d4353b1d803852e3b9986b828c9b823801ce5/OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignal.java#L1180-L1182
The problem is that it is not possible to keep the library integrated with gradle, but at least it is a solution.
I have been thinking to implement the change with Reflection but I don't have much time now for it, it could be another way.

Security warning in Google developer console Pre-launch report's security tab

Recently, I've been getting a security warning in my Google developer console's Pre-launch report's security tab after uploading the apk. This is the issue:
Sending Device Identifiers
Detected in APK (List of APKs)...
Your app is using device identifiers (IMEI, MAC address, Build Serial, etc.) and sending identifier data to a remote network address.
This issue is commonly (but not only) found in apps using an outdated Advertising SDK.
To stop receiving this warning, try updating or changing any SDKs or code in your app that may be using device identifiers.
Sending device identifiers is not a best practice for most use-cases and if you're using this identifier for advertising purposes, this may be a violation of Google Play policies and can affect your app’s visibility on the Play Store. To get recommendations on how your app can use identifiers, learn about unique identifier best practices.
I'm using the Appsflyer sdk in my project to register user events, tracking installs and uninstalls etc., I'm also using the latest sdks for this. When I remove this sdk, the security issue doesn't show up in the pre-launch report.
When I contacted Appsflyer support team, they mentioned not to use the functions that send IMEI and Android Id data using their API calls, which I didn't include in first place. And also not to include READ_PHONE_STATE permission, which I removed and uploaded to play store again, which resulted in the Security issue.
They also made sure that atleast one device identifier, GAID, Android ID or IMEI, MUST be collected to allow for proper attribution.
In their newer SDK versions, the GAID or Google AID is collected automatically and does not require any specific action on my part.
Is this the reason for the security warning?
Any help is appreciated. Thanks in advance.
I contacted the support team of AppsFlyer and they solved my problem, the solution is basically removing the recollection of IMEI, option that seems to be enabled by default, this is done by placing:
AppsFlyerLib.getInstance().setCollectIMEI(false);
Just above Appsflyer.startTracking call in your OnCreate of the MainActivity (or wherever in the app you've placed the startTracking call)
In my case I was using the segment integration so I placed this just above this line:
Analytics.setSingletonInstance(analyticsBuilder.build());
Hopefully this will help you, otherwise I'd suggest you to contact the support team, they answered me really fast

Callback to app when Reset Google Advertising ID

An App uses Google Advertising ID. But as read online this tends to be changed based on User event.
If user visits Google Settings -> Ads screen and resets the ID than a new ID is been issued.
My Question is do other Android App gets a broadcast or a callback which states the Advertising ID has been changed. This is just to avoid re-query AdvertisingIdClient.getAdvertisingInfo(context).getId(); on every onResume.
Please guide if someone has any suggestion for the same.
At the moment, there is no callback which can give when the Advertising ID has been changed. The best way to detect if the Advertising Id has been changed is to get the AdvertisingIdClient.info.
AdvertisingIdClient is a helper library for retrieval of advertising ID and related information such as the limit ad tracking setting.
It is intended that the advertising ID completely replace existing usage of other identifiers for ads purposes (such as use of ANDROID_ID in Settings.Secure) when Google Play Services is available. Cases where Google Play Services is unavailable are indicated by a GooglePlayServicesNotAvailableException being thrown by getAdvertisingIdInfo().

Firebase Analytics demographics

The Firebase Analytics dashboard shows a card for demographics, including age and gender.
According to https://support.google.com/firebase/answer/6317486?hl=en Firebase should be automatically collecting age and gender. Can anyone explain how it collects that information, and if anything else needs to be done in order to provide it?
In my dashboard, I'm seeing no age or gender data. I also haven't found any public API in the firebase-analytics SDK that would allow for setting the age or gender of the user.
If it comes from the advertiser id, does that mean we must also integrate with AdMob in order to get that data -- and if we don't use AdMob, then age and gender are impossible to gather? And does AdMob then also have to be linked with the Firebase project before it can start populating that data?
On Android, this data is derived from the Advertising Id, which is automatically collected on devices with Google Play Services installed. On iOS, this data is derived from the Advertising Identifier (IDFA) when available (i.e. when your app links to the Ad Support Framework). AdMob is not a prerequisite for Age, Gender or Interests on either platform.
Clarifying note from comments: Firebase Analytics demographic reports is thresholded for privacy reasons. Once you have enough data -- at least 10 users per age/gender bracket -- data for that bracket will be shown.
In case someone else stumbles upon this, make sure that you have the google signals enabled in the admin console. This is not part of the firebase analytics onboarding process as far as I remember, and it's off by default.
You can find how to do it here:
https://support.google.com/analytics/answer/9445345?hl=en
Joe, if you are building iOS app and you have no access to IDFA you will not see demographics data for your users. You need to link to ad support framework. Please read the Apple developer documentation on when its okay to use ad support framework in your app.

Categories

Resources