본문 바로가기
Android

Android TargetSDK 34 배포 이슈 (AD_ID 권한)

by whoyoung90 2024. 8. 15.
반응형

> 이슈

사내 앱을 24년 08월 31일까지 Android 14 (API 수준 34) 이상을 타겟팅하기 위해

targetSDK를 34로 올려서 배포를 해보았는데 AD_ID 관련 이슈가 발생하여 이를 기록하고자 한다.

최근에 생긴 정책이라 하는데, 앱에 따로 광고관련 기능이 없더라도 AD_ID 관련 설문은 반드시 응해야 했다.

Android 13(API 33)에 광고 ID 변경사항 도입
광고 ID를 사용하고 Android 13 이상을 타겟팅하는 앱은 앱 매니페스트에서 com.google.android.gms.permission.AD_ID 권한을 선언해야 합니다. 이 권한을 포함하지 않으면 광고 ID가 0으로 처리되고 ID에 액세스하려고 시도하면 ID 대신 0으로 된 문자열이 반환됩니다.

 

> 분석

공식 문서를 확인해보면 아래와 같은 문구가 적혀있다.

https://developer.android.com/about/versions/13/behavior-changes-13?hl=ko

"앱의 서드 파티 SDK 코드에서 광고 ID를 사용하는지 확인해야 합니다. 사용하는 경우 앱에서 광고 ID를 사용한다고 선언해야 합니다."
"일부 SDK는 이미 SDK의 라이브러리 매니페스트에서 com.google.android.gms.permission.AD_ID 권한을 선언했을 수 있습니다."
"앱이 라이브러리의 매니페스트에서 AD_ID 권한을 사용하는 SDK 를 사용하는 경우 이 권한은 매니페스트 파일과 기본적으로 병합됩니다. 이 경우 매니페스트 파일에서 권한을 선언할 필요가 없습니다."

 

결국 요약하자면 내가 광고 ID를 명시적으로 선언해두지 않았더라도

앱의 설치된 서드 파티 라이브러리에 따라 광고 ID가 사용되고 있었을 수도 있다는 뜻이다.

그렇게 사용하는 경우 앱에서 광고 ID를 사용한다고 선언해달라는 것이다.

 

구글링 결과 앱에 Firebase-Crashlytics, Firebase-Analytics, Google-Analytics 등을 연동하였다면

AD_ID 권한이 자동으로 들어간다고 하는데, 우리 앱의 경우에도 Firebase Analytics 라이브러리가 설치되어 있었다.

그래서 광고 ID 권한 선언을 하라는 거였구나..🤔

https://github.com/firebase/firebase-android-sdk/issues/2582

 

> 해결 1

다음과 같이 AndroidManifest.xml 파일 내에 AD_ID를 사용하지 않는다고 명시적으로 선언해준다.

https://github.com/firebase/firebase-android-sdk/issues/2582#issuecomment-1102577560

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

<meta-data
            android:name="google_analytics_adid_collection_enabled"
            android:value="false" />

 

그러나 remove 및 false를 선언하여 재배포하여도 여전히 AD_ID 권한을 설정하라고 뜬다는 글들이 있었고,

Google Play측에서의 정식 답변은 해결책 2와 같다고 한다.

> 해결 2 ✅

Google Play측에서 해당 이슈와 관련하여 답변을 받았다는 글이 있는데

Analytics를 사용하는 경우 광고 ID 섹션의 분석 사용 사례에 대한 AD_ID 권한에서 YES를 선택해야 한다고 한다.

 

우리 앱에는 Firebase Analytics가 설치되어 있으므로

위의 설문에서 예(AD_ID를 사용합니다)를 선택하고 Analytics에 체크를 해주면 된다고 한다. (나도 이걸로 해결하였다)

https://github.com/firebase/firebase-android-sdk/issues/2582#issuecomment-1207751116

I have Contacted to Google Play support they replied that if you use analytics,
you need to choose YES on The AD_ID permission for analytics use case on Advertising ID section.

You should not remove permission manually or remove analytics sub-modules which contains AD_ID permission since it can break things.

So just need to choose YES even if the app is not using Ads

 

 

[참고 URL]

https://velog.io/@mraz3068/Android-Target-SDK-33-Deployment-Issue-related-ADID-Permission

반응형

댓글