Skip to content
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

Newest SDK adds extra AD permissions even using strict package #275

Closed
novavision opened this issue Apr 22, 2024 · 7 comments
Closed

Newest SDK adds extra AD permissions even using strict package #275

novavision opened this issue Apr 22, 2024 · 7 comments

Comments

@novavision
Copy link

novavision commented Apr 22, 2024

Hi.

Here are some extra AndroidManifest.xml lines are added by latest AppsFlyer SDK.

<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION"/>
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID"/>
<property android:name="android.adservices.AD_SERVICES_CONFIG" android:resource="@xml/ga_ad_services_config"/>

Previous version (if I am not wrong I used 6.8.0 before) added just a single line

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

which I excluded using

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

App is rejected by Google Play using strick package and these lines

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" tools:node="remove"/>
<uses-permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" tools:node="remove"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" tools:node="remove"/>

Why these new lines added? Why the my app rejected by GooglePlay?

@novavision
Copy link
Author

Is anyone from the developer team alive here?

@pazlavi pazlavi added support and removed support labels Apr 24, 2024
Copy link

👋 Hi @novavision and Thank you for reaching out to us.
In order for us to provide optimal support, please submit a ticket to our support team at [email protected].
When submitting the ticket, please specify:

  • ✅ your AppsFlyer sign-up (account) email
  • ✅ app ID
  • ✅ production steps
  • ✅ logs
  • ✅ code snippets
  • ✅ and any additional relevant information.

@allan-o3h
Copy link

We also had our app rejected by google play due to:

Version code 108: Policy Declaration - Data Safety Section: Device Or Other IDs Data Type - Device Or Other IDs (some common examples may include Advertising ID, Android ID, IMEI, BSSID, MAC address), Possible SDKs: com.appsflyer:af-android-sdk

Downgrading back to version 6.12.21 worked (6.14.0 is the one that failed).

I'm guessing this is due to Added support for Google's new EU consent policy (DMA) in the android 6.13.0 library (included with unity version 6.14.0).

@allan-o3h
Copy link

We added AppsFlyer.setDisableAdvertisingIdentifiers(true); between the call to initSDK and the call to startSDK and that appears to have resolved our google play review issues with 6.14.0.

I also added:

AppsFlyer.enableTCFDataCollection(false);
AppsFlyer.setConsentData(AppsFlyerConsent.ForGDPRUser(false, false));

to be safe but it should be disabling advertising identifiers that makes a difference here.

@novavision
Copy link
Author

AppsFlyer.setDisableAdvertisingIdentifiers(true);
Should be set before initialization, according to support reply.
My case was resolved - in a fact there was no mistake. AppsFlyer support analyzed my build to ensure no ID is collected. Then they contacted the Google review team and somehow solved it. From what I understood - Google was a problem.
Just after that app was reviewed successfully

@allan-o3h
Copy link

Thanks, the resolution of your case is probably what resolved my issue as well. I found it unlikely that a runtime change would effect a static analyses review failure.

The Unity code for setDisableAdvertisingIdentifiers is:

public static void setDisableAdvertisingIdentifiers(bool disable)
{
    if (instance != null && instance is IAppsFlyerAndroidBridge)
    {
        IAppsFlyerAndroidBridge appsFlyerAndroidInstance = (IAppsFlyerAndroidBridge)instance;
        appsFlyerAndroidInstance.setDisableAdvertisingIdentifiers(disable);
    }
}

So if you call that before initSDK (or one of the other functions that has the side effect of assigning instance) it literally does nothing.

Copy link

This issue is stale because it has been open for 30 days with no activity.

@github-actions github-actions bot added the stale label Jun 16, 2024
@af-vero af-vero closed this as completed Jul 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants