Admob LibGDX Реализация вознаграждений
Добрый день, не могли бы вы помочь. я использую LibGDX
а также AdMob
,
У меня есть интерфейс:
public interface AdService {
void showRewarded();
boolean rewardedVideoAdIsLoaded();
}
AndroidLauncher.java:
public class AndroidLauncher extends AndroidApplication implements AdService{
private static final String AD_UNIT_ID_REWARDED = "ca-app-pub-ХХХХХХХХХХХХХ/ХХХХХХХХХ";
protected RewardedVideoAd rewardedVideoAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new Game(this), config);
MobileAds.initialize(this, "ca-app-pubXXXXXXXXXX~XXXXXXXXXXXXXXXX");
rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED, new AdRequest.Builder().build());
rewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
@Override
public void onRewardedVideoAdLoaded() {
}
@Override
public void onRewardedVideoAdOpened() {
}
@Override
public void onRewardedVideoStarted() {
}
@Override
public void onRewardedVideoAdClosed() {
rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED, new AdRequest.Builder().build());
}
@Override
public void onRewarded(RewardItem rewardItem) {
}
@Override
public void onRewardedVideoAdLeftApplication() {
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
}
@Override
public void onRewardedVideoCompleted() {
}
});
}
@Override
public void showRewarded() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if(rewardedVideoAd.isLoaded())
rewardedVideoAd.show();
else
rewardedVideoAd.loadAd(AD_UNIT_ID_REWARDED, new AdRequest.Builder().build());
}
});
}
@Override
public boolean rewardedVideoAdIsLoaded() {
return rewardedVideoAd.isLoaded();
}
}
Тогда я звоню showRewarded()
в игре для показа рекламы.
ad.addListener(new InputListener(){
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
return true;
}
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
game.adService.showRewarded();
}
});
Хочу, чтобы бонус начислялся после закрытия вознагражденного видео? Как мне это сделать? Я предполагаю, что следующий метод onRewardedVideoAdClosed()
должен быть использован. Но я не могу понять, как я могу это сделать.