센로그

[AdMob] 빌드 시 광고가 제대로 동작하지 않는 문제 본문

꿀팁

[AdMob] 빌드 시 광고가 제대로 동작하지 않는 문제

seeyoun 2024. 8. 8. 04:06

◆ 문제상황

AdMob 보상형 광고 테스트 시 발생한 문제이다.

Unity 에디터에서는 AdMob 광고가 잘 작동했으나, 빌드 후에는 작동이 되지 않았다.

  • 처음에는 광고가 정상적으로 로드되고 재생되었으나, Reward 지급 시 앱이 비정상 종료되었다.
  • AdMob 패키지를 최신 버전으로 업데이트 한 후 다시 시도해보니, MobileAds.Initialize가 동작하지 않았다.

 


◆ 원인

빌드시 구글 플레이스토어에 업로드하기 위해 R8을 사용했는데,
R8이 빌드 과정에서 AdMob 관련 필요 정보들(com.google.android.gms.ads)을 난독화시키는 과정에서 일어난 문제로 보인다.
 


◆ 해결 방법

R8이 난독화 시 AdMob 관련 클래스를 포함하지 않도록 해야한다.
 

  1. Edit > Project Settings > Player > Android > Publishing Settings 에서 Build > Custom Proguard File 을 체크한다.


  2. 그러면 Assets/Plugins/Androidproguard-user.txt 가 생성된다.
  3. 해당 파일에 다음 내용을 추가한다.
    -keep class com.google.unity.** {
       *;
    }
    -keep public class com.google.android.gms.ads.**{
       public *;
    }
    -keep public class com.google.ads.**{
       public *;
    }
    -keepattributes *Annotation*
    -dontobfuscate


 

덤으로, 구글 플레이게임 서비스 난독화 방지 코드는 다음과 같다.

-keep class com.google.android.gms.games.PlayGames { *; }
-keep class com.google.android.gms.games.leaderboard.** { *; }
-keep class com.google.android.gms.games.snapshot.** { *; }
-keep class com.google.android.gms.games.achievement.** { *; }
-keep class com.google.android.gms.games.event.** { *; }
-keep class com.google.android.gms.games.stats.** { *; }
-keep class com.google.android.gms.games.video.** { *; }
-keep class com.google.android.gms.games.* { *; }
-keep class com.google.android.gms.common.api.ResultCallback { *; }
-keep class com.google.android.gms.signin.** { *; }
-keep class com.google.android.gms.dynamic.** { *; }
-keep class com.google.android.gms.dynamite.** { *; }
-keep class com.google.android.gms.tasks.** { *; }
-keep class com.google.android.gms.security.** { *; }
-keep class com.google.android.gms.base.** { *; }
-keep class com.google.android.gms.actions.** { *; }
-keep class com.google.games.bridge.** { *; }
-keep class com.google.android.gms.common.ConnectionResult { *; }
-keep class com.google.android.gms.common.GooglePlayServicesUtil { *; }
-keep class com.google.android.gms.common.api.** { *; }
-keep class com.google.android.gms.common.data.DataBufferUtils { *; }
-keep class com.google.android.gms.games.quest.** { *; }
-keep class com.google.android.gms.nearby.** { *; }


 
 

Comments