Android

[애드몹] 앱 세트 ID(com.google.android.gms.permission.AD_ID)를 앱에 도입하는 방법 : SDK 버전에 따라 앱 세트ID 설정이 필요하다.

Android13이 설치된 휴대전화에서 AdMob SDK가 정상동작하게 하려면 별도의 작업이 필요하다.

미루고 미루고 있었는데 구글 AdMob에서 메일이 왔다. 이제는 처리해야할 시간인듯싶다.


지난 4월인지 3월인지 정확하게 기억나지 않지만 앱의 광고수익이 하락하고 있기 때문이다.

처음에는 러시아와 우크라이나의 전쟁으로 인한 수익감소로 생각했지만 아니었던 것이다.

내용을 살펴보니 4월 1일 부터 전면적으로 사용자 맞춤설정 선택 해제관련하여 적요이 시작된 듯 싶다.

자세한 내용은 다음과 같다.

 

2021년 Google Play 서비스 업데이트

2021년 말, Google Play 서비스 업데이트의 일환으로 Android 설정에서 광고 ID를 사용한 맞춤설정을 선택 해제할 경우 사용자의 광고 ID가 삭제됩니다. 식별자에 액세스하려고 시도해도 식별자 대신 0으로 된 문자열이 반환됩니다. 규정 준수를 위해 노력하는 개발자와 광고/분석 서비스 제공업체를 지원하고 사용자의 선택을 존중하기 위해 선택 해제 환경설정에 관한 알림이 전송됩니다. 앞서 언급한 알림 시스템을 테스트하려면 이 양식을 작성하세요.

이번 Google Play 서비스의 단계적 출시로 2021년 말부터 Android 12에서 실행되는 앱이 영향을 받으며, 2022년 4월 1일부터는 Google Play를 지원하는 모든 기기에서 실행되는 앱으로 적용 범위가 확대됩니다. 분석 및 사기 방지와 같은 광고 이외의 필수 사용 사례에는 앱 세트 ID를 사용하세요.

또한 앱이 타겟을 Android 13 이상으로 업데이트할 때 매니페스트 파일에서 Google Play 서비스 일반 권한을 다음과 같이 선언해야 합니다.

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

Google 모바일 광고 SDK(play-services-ads)와 같은 일부 SDK는 이미 SDK의 라이브러리 매니페스트에서 이 권한을 선언했을 수 있습니다. 앱에서 이러한 SDK를 종속 항목으로 사용하는 경우 앱의 기본 매니페스트에서 권한을 명시적으로 선언하지 않더라도 SDK 라이브러리 매니페스트의 AD_ID 권한은 기본적으로 앱의 기본 매니페스트와 병합됩니다. Android 개발자 사이트에서 매니페스트 파일 병합에 관해 자세히 알아보세요.

이 권한은 2022년 4월 1일부터 모든 기기에 적용됩니다. 자세한 내용은 API 문서를 참고하세요.

고유 식별자에 관한 권장사항을 자세히 알아보세요.

 

 

AdMob를 사용중이라면 기존에 선언한 것들은 그대로 사용하면된다.

첫번째로 프로젝트 수준의 build.gradle 파일에는 다음과 같이 Google의 Maven 저장소와 Maven 중앙 저장소를 buildscript 및 allprojects 섹션에 선언하였을 것이다.

buildscript {
    repositories {
        google()
        mavenCentral()
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

 

두번째로는 모듈의 앱 수준 Gradle 파일(일반적으로 app/build.gradle)에 Google 모바일 광고 SDK의 종속 항목을 추가해주었을 것이다.

내가 사용중인 버전은 다음과 같다.

implementation 'com.google.firebase:firebase-ads:20.2.0'

2022년 7월 6일 기준으로 최신버전은 다음과 같다.

implementation 'com.google.firebase:firebase-ads:21.1.0'

아래와 같이 gms의 SDK를 사용해도 되고, firebase를 사용중이라면 나와 같이 사용해도 된다.

dependencies {
  implementation 'com.google.android.gms:play-services-ads:21.0.0'
}

 

세번째로,  

AdMob 앱 ID(AdMob UI에서 식별됨)가 앱의 AndroidManifest.xml 파일에 추가되어 있을 것이다. android:name=”com.google.android.gms.ads.APPLICATION_ID”가 있는 <meta-data> 태그를 추가했을 것이다.

<manifest>
    <application>
        <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-본인의 ID값을 넣어준다."/>
    </application>
</manifest>

앱 개발중에 테스트가 필요한 경우 반드시 Sample Admob App ID를 사용해야한다.  또는 테스트할 휴대전화를 테스트폰으로 등록해야한다. 그렇지 않을 경우 앱광고가 중단될 수 있다.

 

이제 해야할 일을 해보자!!  앱세트ID를 도입하기 위한 중요한 포인트가 있다. 

앱에서 Google 모바일 광고 SDK 20.4.0 이상을 사용하는 경우에는 SDK가 com.google.android.gms.permission.AD_ID 권한을 자동으로 선언하고 가능할 때마다 광고 ID에 액세스한다.  그럼으로 별도의 앱세트ID 선언을 개발자가 해줄 필요없다!!

 

 

그러나 앱에서 Google 모바일 광고 SDK 20.3.0 이하를 사용하고 Android 13을 타겟팅하는 경우에는 다음과 같이 AndroidManifest.xml 파일에 com.google.android.gms.permission.AD_ID 권한을 추가해야 Google 모바일 광고 SDK에서 광고 ID에 액세스할 수 있도록 반드시 추가해 주어야 한다.

<manifest>
    <application>
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>

        <-- For apps targeting Android 13 or higher & GMA SDK version 20.3.0 or lower -->
        <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

    </application>
</manifest>

 

Google AdMob의 SDK 버전별 조치사항

  • ​20.6.0 GMA SDK : 아동대상 서비스로 취급하기 위한 태그가 광고요청에 추가 된 경우 광고ID 접속제한
  • 20.5.0 GMA SDK : 맞춤설정 거부한 사용자를 위한 보고 및 사기방지기능 앱세트ID지원
  • 20.4.0 GMA SDK : 앱에서 광고ID사용을 위한 일반권한 선언 자동처리

 

 

광고 SDK 초기화는 다음과 같이 선언해서 사용하고 있을 것이다.

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });
    }
}

 

 

Android 13 티라미수(Tiramisu)를 타겟팅(targetSdkVersion 32)하는 앱은 Google 광고 ID에 액세스할 수 있는

[안드로이드 13 티라미수(Tiramisu)가 올 하반기에 출시된다. 만약 올해 말에 안드로이드13으로 타겟팅할 수 있다. 구글플레이에서 영문 메일이 도착했다. 구글 번역기로 번역해보니 이런 내용이다

playground.naragara.com

 

[REFERENCE]

 

 

 

Leave a Reply

error: Content is protected !!