Firebase Admob广告未加载实时广告

时间:2016-05-31 05:21:23

标签: android firebase admob

我已使用Firebase添加了AdMob。未显示实时广告,测试广告正常运行。如果我添加.addTestDevice("D9XXXXXXXXXXXXXXXXXXXXXXXXXXXXX");",则会显示测试广告。

我正在执行Google Documentation的步骤。

项目级别 - build.gradle

 dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

应用级别 - build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.firebase:firebase-ads:9.0.1'
}

MainActivity.java

AdView mAdView;
AdRequest adRequest;


@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  MobileAds.initialize(getApplicationContext(), "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXX");

    mAdView = (AdView) findViewById(R.id.adView);
    adRequest = new AdRequest.Builder().build();

}

activity_main.xml中

 <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_id" />

的strings.xml

<string name="banner_id">ca-app-pub-XXXXXXXXXXXX/XXXXXXXXX</string>

我在Logcat中收到错误

  

W / Ads:收到广告回复时出现问题。 ErrorCode:0

     

W / Ads:无法加载广告:0

我还尝试导出用于测试实时广告的应用,但失败了。有许多答案表明,Google可能没有针对我的应用的广告,但没有任何与此相关的日志。

4 个答案:

答案 0 :(得分:0)

在代码中进行以下更改

在应用级apply plugin: 'com.google.gms.google-services'结束时添加build.gradle

应用级别 - build.gradle

dependencies {
    classpath 'com.android.tools.build:gradle:2.1.0'
    classpath 'com.google.gms:google-services:3.0.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

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

在初始化广告AdRequest后添加AdView,将mAdView.loadAd(adRequest);加载到AdRequest,如下所示:

<强> MainActivity.java

AdView mAdView;
AdRequest adRequest;


@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  MobileAds.initialize(getApplicationContext(), "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXX");

    mAdView = (AdView) findViewById(R.id.adView);
    adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

}

答案 1 :(得分:0)

您需要在代码中添加mAdView.loadAd(adRequest);。 您的代码如下所示:

 AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);//Required this line to load ad

请参阅Load the ad in the MainActivity class

答案 2 :(得分:0)

从ADMOB帐户中添加付款信息并等待批准

如果测试广告运行良好,则说明您的实现是正确的,但是您需要填写admob帐户中的“付款”选项。填写完该表格后,您将收到一封有关确认付款细节的电子邮件,并显示一条消息,指示是否您的信息已被admob小组接受,如果是,则将显示实时广告。 但请记住,广告最初不会展示。批准后也要花费一些时间。 这是错误代码的代码片段,以查找出问题所在

mAdView =(com.google.android.gms.ads.AdView)findViewById(R.id.adView);

    mAdView.setAdListener(new com.google.android.gms.ads.AdListener() {
        @Override
        public void onAdLoaded() {
            // Code to be executed when an ad finishes loading.
            Toast.makeText(HomeActivity.this, "onAdLoaded", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            if(errorCode==AdRequest.ERROR_CODE_INTERNAL_ERROR)

            Toast.makeText(HomeActivity.this, "onAdFailedToLoad", Toast.LENGTH_SHORT).show();

            // Code to be executed when an ad request fails.
        }

        @Override
        public void onAdOpened() {
            Toast.makeText(HomeActivity.this, "onAdOpened", Toast.LENGTH_SHORT).show();


        }

        @Override
        public void onAdLeftApplication() {
            Toast.makeText(HomeActivity.this, "onAdLeftApplication", Toast.LENGTH_SHORT).show();


        }

        @Override
        public void onAdClosed() {
            Toast.makeText(HomeActivity.this, "onAdClosed", Toast.LENGTH_SHORT).show();



        }
    })
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

获取错误代码

ERROR_CODE_INTERNAL_ERROR-内部发生了一些事情;例如,从广告服务器收到无效的响应。 ERROR_CODE_INVALID_REQUEST-广告请求无效;例如,广告单元ID不正确。 ERROR_CODE_NETWORK_ERROR-由于网络连接,广告请求失败。 ERROR_CODE_NO_FILL-广告请求成功,但没有广告。

如果您收到错误代码3,则一段时间后,您会在一段时间后展示广告。

答案 3 :(得分:-1)

查看values文件夹中的string.xml。如果你的横幅ID不是这样的话 <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string> (此ID ca-app-pub-3940256099942544/6300978111仅适用于测试广告) 然后将其替换为您自己的横幅广告单元ID。