如何在 adMobPro 中显示加载的奖励视频?

Posted

技术标签:

【中文标题】如何在 adMobPro 中显示加载的奖励视频?【英文标题】:How to show loaded reward video in adMobPro? 【发布时间】:2016-09-21 05:06:50 【问题描述】:

我在 phonegap 应用程序中使用https://github.com/floatinghotpot/cordova-admob-pro。

对于我正在使用的插页式广告和横幅广告

AdMob.showInterstitial();

AdMob.showBanner(getSelectedPosition());

工作正常。现在我正在尝试显示奖励视频。首先,我准备了奖励视频

AdMob.prepareRewardVideoAd(adId: admobid.reward, autoShow: false); 

那我试着展示一下

AdMob.showRewardVideoAd();

但是视频没有显示,方法 showRewardVideoAd() 是我的猜测 w.r.t。 showInterstitial(),在文档中我没有找到任何方法如AdMob.showRewardVideoAd()

什么是正确的方法,我应该如何显示它?请帮忙

【问题讨论】:

【参考方案1】:

我不确定,但也许您应该等待视频准备好后再致电showRewardVideoAd。尝试从prepareRewardVideoAd 的成功回调中调用该函数。

另外,您使用的是“Admob”吗?在函数调用之前?我觉得很有必要。

【讨论】:

【参考方案2】:

相关:

作为新手,我早上来到这个页面并没有运气 -pro 模块 所以,我转向了 -free 模块 即cordova-plugin-admob-free

我犯了几个错误,但最后解决了,在这里写了一个github页面,现在可以正常工作了:https://github.com/manoharreddyporeddy/everyday-solutions/blob/master/display-ads-on-android-using-admob.js

【讨论】:

【参考方案3】:

您需要做的就是实现所有必需的方法,例如 onResume、onPause。

看看我的活动课:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAd;
import com.google.android.gms.ads.reward.RewardedVideoAdListener;

public class AdActivity extends AppCompatActivity implements RewardedVideoAdListener 

    private RewardedVideoAd mRewardedVideoAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ad);

        // Use an activity context to get the rewarded video instance.
        mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
        mRewardedVideoAd.setRewardedVideoAdListener(this);
        requestNewRewardVideo();
    

    protected void onResume() 
        super.onResume();
        mRewardedVideoAd.resume(this);
    

    @Override
    protected void onPause() 
        super.onPause();
        mRewardedVideoAd.pause(this);
    

    @Override
    public void onDestroy() 
        mRewardedVideoAd.destroy(this);
        super.onDestroy();
    

    private void requestNewRewardVideo() 
        //load rewared video
        mRewardedVideoAd.loadAd("ca-app-pub-xxxxxxxxxxxxxxxxxx",
                new AdRequest.Builder().build());

    

    @Override
    public void onRewardedVideoAdLoaded() 
        mRewardedVideoAd.show();
    

    @Override
    public void onRewardedVideoAdOpened() 

    

    @Override
    public void onRewardedVideoStarted() 

    

    @Override
    public void onRewardedVideoAdClosed() 
        //request for new reward video
        requestNewRewardVideo();
    

    @Override
    public void onRewarded(RewardItem rewardItem) 
        // reward your user here
    

    @Override
    public void onRewardedVideoAdLeftApplication() 

    

    @Override
    public void onRewardedVideoAdFailedToLoad(int i) 

    

应用构建.gradle

实施 'com.google.android.gms:play-services-ads:11.4.2'

点击按钮时显示广告:

if (mRewardedVideoAd.isLoaded()) 
                mRewardedVideoAd.show();
            

【讨论】:

以上是关于如何在 adMobPro 中显示加载的奖励视频?的主要内容,如果未能解决你的问题,请参考以下文章

基于 iOS ADMOB 奖励的视频广告加载失败

Google奖励视频无法加载

在branch.io中的redeemRewards函数调用时每次显示错误消息

Admob奖励视频广告

如何限制奖励视频广告长度(admob)?

在React Native中多次显示AdMob奖励广告。