Я интегрировал admob и admob mediation в свое приложение. Проблема в том, что когда я пытаюсь загрузить объявление с иранским ip admob не может загрузить видео и вызывает обратный вызов вознаграждения на сервер !!
Когда я пытаюсь загрузить с другими странами ip, проблем нет, а если загрузка не удалась, вознаграждение не дается.
Вот мой код:
Конфигурация admob:
MobileAds.initialize(activity, "ca-app-pub-*************************");
чтобы загрузить объявление:
RewardedAdCallback showCallback = new RewardedAdCallback() {
@Override
public void onRewardedAdClosed() {
super.onRewardedAdClosed();
}
@Override
public void onUserEarnedReward(@NonNull com.google.android.gms.ads.rewarded.RewardItem rewardItem) {
super.onUserEarnedReward(rewardItem);
giveReward();
}
@Override
public void onRewardedAdOpened() {
super.onRewardedAdOpened();
}
@Override
public void onRewardedAdFailedToShow(int i) {
super.onRewardedAdFailedToShow(i);
}
};
if (adMobAd == null) {
adMobAd = new com.google.android.gms.ads.rewarded.RewardedAd(activity,
activity.getString(R.string.rewarded_ad_unit_id));
adMobAd = MobileAds.getRewardedVideoAdInstance(activity);
}
if (adMobAd.isLoaded()) {
adMobAd.show(activity, showCallback);
return;
}
ServerSideVerificationOptions options = new ServerSideVerificationOptions.Builder()
.setCustomData(DeviceUUID.getId()).build();
adMobAd.setServerSideVerificationOptions(options);
adMobAd.loadAd(new AdRequest.Builder().build(), new RewardedAdLoadCallback() {
@Override
public void onRewardedAdLoaded() {
super.onRewardedAdLoaded();
adMobAd.show(activity, showCallback);
}
@Override
public void onRewardedAdFailedToLoad(int i) {
super.onRewardedAdFailedToLoad(i);
}
});
Когда пользователь запрашивает объявление из Ирана, вызывается обратный вызов onRewardedAdFailedToLoad (), и admob отправляет обратный вызов onUserEarnedReward () на сервер, не вызывая его на стороне Android.