구글 애드몹 리워드 광고를 기존 앱에 적용하려 했는데 문제가 발생했다.
RewardAd.load 에서 load부분이랑, @Override 가 적용되지 않는 문제가 발생했다.
AdRequest adRequest = new AdRequest.Builder().build();
RewardedAd.load(this, "ca-app-pub-3940256099942544/5224354917",
adRequest, new RewardedAdLoadCallback() {
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error.
Log.d(TAG, loadAdError.toString());
rewardedAd = null;
}
@Override
public void onAdLoaded(@NonNull RewardedAd ad) {
rewardedAd = ad;
Log.d(TAG, "Ad was loaded.");
}
});
메시지 내용은 Cannot resolve method 'load' in 'RewardedAd'
No candidates found for method call RewardedAd.load(this, "ca-app-pub-3940256099942544/5224354917", adRequest, new RewardedAdLoadCallback() { @Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { // Handle the error. Log.d(TAG, loadAdError.toString()); rewardedAd = null; } @Override public void onAdLoaded(@NonNull RewardedAd ad) { rewardedAd = ad; Log.d(TAG, "Ad was loaded."); } }).
이다.
이는 구글 광고 SDK 버전이 낮을 때 발생하는 문제로, 의외로 아주 쉽게 해결이 가능한데 build속성의 gradle로 가서
dependencies {
//최신버전의 구글 광고 SDK
implementation 'com.google.android.gms:play-services-ads:20.4.0'
}
implementation '최신 버전의 구글 광고 SDK' 로 바꿔주면 된다.
기존 앱의 구글 애드몹 광고를 업데이트 할 때 구글 광고 SDK 버전을 꼭 확인해야 한다.
리워드 광고 삽입과 최신 구글 애드몹 광고 SDK는 항상 여기서 확인할 수 있다.
https://developers.google.com/admob/android/rewarded?hl=ko