使用AdMob的onFailedToRecieveAd(无效广告请求)消息

时间:2013-08-27 14:22:49

标签: android admob

我一直在努力让AdMob在我的应用上工作一段时间。我一直在日志中获取onFailedToRecieveAd(无效广告请求)消息。我已将我的测试应用程序与此配对:

  AdView adView;
   LinearLayout ll;

   public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
    adView = new AdView(this, AdSize.BANNER, "pub-2...............");//inserted my 16 digit pub id here
    adView.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);

    ll = new LinearLayout(this);  
    ll.setOrientation(LinearLayout.VERTICAL);  

    ll.addView(adView); 
    setContentView(ll); 
    AdRequest adRequest = new AdRequest();

    adRequest.addTestDevice("3...............");// 16 digits, tried other strings as 
   // follows:

   //for addTestDevice I've tried several numbers, including the 16 digit device
  // number given me by my "device id" application, the "0123456789ABCDEF" device number
  // given by my console and device windows, the "CECE.........................." 32 digit
 // device number my logcat file told me to use in a logcat message, 
  //  "AdRequest.TEST_EMULATOR"
  // which an admob example in the docs said to use, "9774d56d682e549c" which another 
  //  admob docs example said to use.

     adView.loadAd(adRequest);

我也尝试过adView.loadAd(new AdRequest());在另一个google admob示例应用中使用没有设备ID。

没有任何东西可以显示任何内容,它甚至没有为广告创建空间,只是logcat中的onFailedToRecieveAd(无效广告请求)消息

我还在清单中包含了必要的权限和“com.google.ads.AdActivity”。

4 个答案:

答案 0 :(得分:14)

哇,经过几天的挫折和各种论坛的帖子,我找到了答案。

您必须在Admob网站上转到您的帐户,为admob广告设置您的特定应用,并获得新的更长的发布商编号。我的发布商编号只以'pub -......'开头,我的新号码更长,以'ca-app-pub -.......'开头。当我在一个示例横幅ap中看到“ca-app-pub”序言时,我从一开始就很好奇。

Google Admob“Google移动广告SDK”开发网站上的“横幅广告1”说明(https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals?hl=en_US#android)中没有提到必须返回您的admob帐户来设置广告的特定应用并获得一个新的发布商编号。

愚蠢的错误是最难修复的。

答案 1 :(得分:3)

小心id,有2个代码:编辑号(如:pub-xxxxxxxxxxxxxxxx),另一个是横幅ID(如下:ca-app-pub-xxxxxxxxxxxxxxxx / xxxxxxxxxx)(这一个你需要使用)

你需要使用最后一个,如果你使用第一个不工作:)

答案 2 :(得分:1)

收到广告失败并不罕见。这是一条普通邮件,主要是说目前没有广告可以为您的应用投放。

这意味着您的Admob集成正在运行,您将从服务器获得响应。随着您的应用发送更多请求,它将更有可能获得广告展示次数。

答案 3 :(得分:0)

您是否尝试过在未设置测试设备ID的情况下请求广告?

adView.loadAd(new AdRequest());

尝试添加以下代码行以获取有关失败的更多信息:

// Set AdListener
adView.setAdListener(new AdListener() {
    @Override
    public void onFailedToReceiveAd(Ad ad, ErrorCode error) {
        System.err.println("Ad failed: " + ad.toString() + error.toString());    
    }

    @Override
    public void onReceiveAd(Ad ad) {
        System.out.println("Ad received: " + ad.toString());
    }
});