【问题标题】:Admob interstitial stopped working without project changesAdmob 插页式广告在未更改项目的情况下停止工作
【发布时间】:2016-08-02 09:29:20
【问题描述】:

我正在开发一个新应用程序并使用 Admob 来制作插页式广告。我在 1-2 个月前对广告进行了编码,一切都很棒。这些天我快要发布了,但我注意到大概 2 周后广告就再也没有展示过了。所以我决定调试。一切似乎都很好,没有例外,但是 Admob SDK 总是报告未加载插页式广告,尽管 SDK 调用了回调 onAdLoaded

这是我的配置,我省略了无关的东西:

buildscript {
    ...
    dependencies {
        ...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

dependencies {
    compile "com.android.support:support-v4:18.0.+"
    compile "com.google.android.gms:play-services-analytics:9.0.2"
    compile 'com.google.android.gms:play-services-ads:9.0.2'        
}

apply plugin: 'com.google.gms.google-services'

这是有奇怪行为的代码 sn-p:

private com.google.android.gms.ads.InterstitialAd mInterstitialAd; 

public void loadInterstitial() {
    mInterstitialAd = new InterstitialAd(context);
    mInterstitialAd.setAdUnitId(adUnitId);
    mInterstitialAd.setAdListener(new AdListener() 
    {
        @Override
        public void onAdLoaded() {
            super.onAdLoaded();

            Log.d(TAG, "is loaded = " + mInterstitialAd.isLoaded()); // FALSE!!!
        }
    }
}

public void showInterstitial() {
    if(mInterstitialAd.isLoaded()) { // ALWAYS FALSE!!!
        mInterstitialAd.show();
    } else {            
        loadInterstitial(); // FAILED TO LOAD AD with error code = 1
    }
}

当我调用showInterstitial 时,在我调用loadInterstitial 之后,我可以看到onAdLoaded 已被调用,检查是否加载了插页式广告总是返回false,并且loadInterstitial方法被再次调用,现在 Admob SDK 给我一个错误,它无法加载广告,错误代码 = 1。

这已经在多台设备上进行了测试,并且没有对与广告或 Google Play 服务库相关的项目进行任何更改,它只是停止工作。

您知道可能是什么问题,或者我可以做些什么来更成功地调试这些错误?

非常感谢。

【问题讨论】:

    标签: android admob google-play-services interstitial


    【解决方案1】:

    添加最新的gradle

    compile 'com.google.android.gms:play-services-ads:9.2.1'  
    

    并删除

    dependencies {
            ...
            classpath 'com.google.gms:google-services:3.0.0'
           }
    

    同时删除插件

    apply plugin: 'com.google.gms.google-services'
    

    更新:

    我想你错过了AdRequest

       InterstitialAd mInterstitialAd = new InterstitialAd(mContext);
       AdRequest adRequest = new AdRequest.Builder().build();
    
       mInterstitialAd.setAdUnitId(mContext.getString(R.string.full_screen_id));
       mInterstitialAd.loadAd(adRequest);
    

    【讨论】:

    • 它没有用。我还使用新 ID 创建了一个新的 Admob 插页式广告,结果相同,错误代码为 1。奇怪的是,Admob 将我的广告加载请求计为“展示次数”,这意味着他们的后端认为这些请求是好的。可能问题出在 Google Play 服务 SDK...
    • @middlehut 你的问题解决了吗?
    • 我有广告请求,没有它我无法加载插页式广告并收到错误代码 1 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多