BanhmiDev / admob_consent

This is a wrapper for Google's User Messaging Platform (UMP) SDK in Flutter
https://pub.dev/packages/admob_consent
Apache License 2.0
12 stars 11 forks source link

IOS 14 - IDFA Explainer Message - App rejected #6

Open mingosnunes opened 3 years ago

mingosnunes commented 3 years ago

The explainer message before the ATT IOS Alert is against Apple policies for data collection. My IOS app got rejected by them because of that.

I know that this package only invokes the Google UMP SDK but this way other developers are alerted and maybe redirect this issue to Google devs (don't know where).

Thanks.

BanhmiDev commented 3 years ago

I read about this issue in the early days, seems like Apple's policy is set in stone about explainer messages appearing before the ATT dialog. IMO using the UMP ATT explainer message is pretty redundant, too many popups for the end-user. I personally just use it for the EU consent.

mingosnunes commented 3 years ago

What are your settings on the EU consent? If I use the Google Ads vendor, they request personalized ads again. That is most likely against Apple policies as well

BanhmiDev commented 3 years ago

Apple probably referred to https://developer.apple.com/app-store/review/guidelines/#data-collection-and-storage 5.1.1 (IV), I'm assuming they just don't want any messages before their built-in ATT dialog, read that other people also had the same issue before. Google initially requests legitimate interest only, so that should be fine.

paul678 commented 3 years ago

Hi @mingosnunes , I've had the same issue with the Apple review team and the fix was not removing the UMP explainer but changing the default button text from "Allow" (something like that was the default) to something neutral like "OK" (also updated the message to sound more like an explanation for the iOS ATT dialog rather then an intent to force the user to press "Allow").

Hope this helps. Also don't forget to make the AppTrackingTransparency optional and test on iOS < 14 for any crashes (I did this mistake and instantly got crashes from older iOS version) Maybe @Gimu could also add a note somewhere in the documentation so that developers not used to iOS will not forget about this

hicnar commented 3 years ago

@paul678 I've found some examples on the web, but I think because of the ever-changing names/fields in Xcode they may be a bit out-of-date. Could you please have a look at the screenshot I've attached and confirm that's what's needed in order to avoid pre iOS 14 crashes?

Screenshot 2021-07-16 at 11 11 19

paul678 commented 3 years ago

@paul678 I've found some examples on the web, but I think because of the ever-changing names/fields in Xcode they may be a bit out-of-date. Could you please have a look at the screenshot I've attached and confirm that's what's needed in order to avoid pre iOS 14 crashes?

Screenshot 2021-07-16 at 11 11 19

I can confirm that I use the same settings 👌

hicnar commented 3 years ago

@paul678 sorry to bother you, but if on iOS it works perfectly as expected, Android gives me " Invalid response from server." in the onConsentFormError stream subscription. Did you have anything like that with your app?

paul678 commented 2 years ago

@paul678 sorry to bother you, but if on iOS it works perfectly as expected, Android gives me " Invalid response from server." in the onConsentFormError stream subscription. Did you have anything like that with your app?

Sorry for late response, I'm in vacation. I've checked and there is nothing special about the Android configuration. You just need to add a GDPR message from AdMob and it should work. I actually have it disabled now because it was causing some crashes (and I didn't update the app for some time so I cannot double-check)

hicnar commented 2 years ago

@paul678 Thanks for your response. I actually managed to figure this out. The reason was my account did not have payments fully configured. It is appalling though that Google's API just returns a generic error that really says nothing specific about the real cause.