所以我让用户观看视频插页式广告(我在admob中设置),以获取我的应用中的一个点。我希望用户观看完整的广告以获得重点,我该如何实现?我试过这个:
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
giveUserPoint();
}
}
});
但是用户甚至不必使用此广告来观看我的广告。使用此代码,用户只需退出广告,即可调用onAdClosed
。如何知道用户是否完全看过我的广告?
有没有办法隐藏X按钮,直到广告结束?
谢谢,
Ruchir
答案 0 :(得分:0)
TL; DR:将@Override onRewarded
与奖励视频广告一起使用
为此,您不应使用常规的视频插页式广告。相反,请使用Android的奖励视频广告:
https://developers.google.com/admob/android/rewarded-video
从文档中
要获得有关奖励视频生命周期事件的通知,您必须实施 RewardedVideoAdListener。奖励广告监听器是使用 setRewardedVideoAdListener()方法。此监听器是自动的 通知您正在调解的所有网络的事件。对于 例如,您会收到通知,告知用户观看某个用户会获得奖励 通过RewardedVideoAdListener的onRewarded()方法播放视频。
因此,只需几个步骤即可实现所需的功能。让我分解一下。
第一步:创建奖励广告实例:
// Use an activity context to get the rewarded video instance.
mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
mRewardedVideoAd.setRewardedVideoAdListener(this);
第二步:加载奖励广告:
private void loadRewardedVideoAd() {
mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",
new AdRequest.Builder().build());
}
第三步:使用回调方法奖励用户:
@Override
public void onRewarded(RewardItem reward) {
Toast.makeText(this, "onRewarded! currency: " + reward.getType() + " amount: " +
reward.getAmount(), Toast.LENGTH_SHORT).show();
// Reward the user.
}
在您的问题中,您指出用户可以简单地退出广告以利用奖励。您可以使用其他回调方法来跟踪/阻止这种情况,这些方法可以准确告诉您用户如何与您的广告互动:
@Override
public void onRewarded(RewardItem reward) {
Toast.makeText(this, "onRewarded! currency: " + reward.getType() + " amount: " +
reward.getAmount(), Toast.LENGTH_SHORT).show();
// Reward the user.
}
@Override
public void onRewardedVideoAdLeftApplication() {
Toast.makeText(this, "onRewardedVideoAdLeftApplication",
Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdClosed() {
Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdFailedToLoad(int errorCode) {
Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdLoaded() {
Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdOpened() {
Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoStarted() {
Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoCompleted() {
Toast.makeText(this, "onRewardedVideoCompleted", Toast.LENGTH_SHORT).show();
}
第四步:现在您已经完全准备好广告,只需显示它
if (mRewardedVideoAd.isLoaded()) {
mRewardedVideoAd.show();
}
答案 1 :(得分:0)
您可以使用setImmersiveMode隐藏X按钮,但是4秒钟后,也会出现“跳过此视频”按钮,这将阻止观看整个视频。但我猜这是基于冥想。并非所有视频都具有此选项。