【问题标题】:Admob - no ad to showAdmob - 没有广告可显示
【发布时间】:2011-03-18 10:54:09
【问题描述】:

你好 我尝试制作一些在 Android 手机上显示广告的示例程序,并尝试在 v2.2 的 Emulator 上对其进行测试 代码中的一切似乎都很好,但调试器中的 AdListener 说:

响应消息为零或空;
onFailedToReceiveAd(没有广告可显示)。

有什么办法可以让我错吗?有没有人遇到同样的问题? 这是代码 清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.AdTest"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".AdTest"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
<!-- AdMobActivity definition -->
<activity android:name="com.google.ads.AdActivity"
android:configChanges="orientation|keyboard|keyboardHidden" />
</application>
<uses-sdk android:minSdkVersion="7"></uses-sdk>
<!-- AdMob SDK requires Internet permission -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

布局xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
/>
</LinearLayout>

和活动代码

package com.AdTest;
import com.google.ads.*;
import com.google.ads.AdRequest.ErrorCode;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;

public class AdTest extends Activity implements AdListener{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  LinearLayout layout = (LinearLayout)findViewById(R.id.main);
   AdView adView = new AdView(this, AdSize.BANNER, "anonymouse");
   // Unit ID is correct, I changed it on purpose while pasting here
    adView.setAdListener(this);
    layout.addView(adView);
    AdRequest request= new AdRequest();
    adView.loadAd(request);            
  }

 public void onFailedToReceiveAd(AdView adView)
    {
        Log.d("AdListener", "onFailedToReceiveAd");
    }

    public void onFailedToReceiveRefreshedAd(AdView adView)
    {
        Log.d("AdListener", "onFailedToReceiveRefreshedAd");
    }

    public void onReceiveAd(AdView adView)
    {
        Log.d("AdListener", "onReceiveAd");
    }

    public void onReceiveRefreshedAd(AdView adView)
    {
        Log.d("AdListener", "onReceiveRefreshedAd");
    }

    @Override
    public void onDismissScreen(Ad arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
          Log.d("AdListener", "onFailedToReceiveAD");

    }

    @Override
    public void onLeaveApplication(Ad arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPresentScreen(Ad arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onReceiveAd(Ad arg0) {
         Log.d("AdListener", "Received succesfully");

    }
}

【问题讨论】:

  • s there any way for it to be my fault? 直到看到你的代码我们才知道。

标签: java android admob


【解决方案1】:

我遇到了同样的问题

onFailedToReceiveAd(没有广告可显示)。

由于某些原因,AdMob 似乎没有为我们的应用发送广告内容。即使我处于测试模式,仍然没有广告。

我在 AdMob 上制作了自家广告来验证我的申请。这是一种比测试模式更容易的开发方式。

【讨论】:

    【解决方案2】:

    我在我的 Activity 上实现了 AdListener 并将其设置为 AdView 监听器,然后添加了以下内容

        public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1)
    {
        Log.d("AdMob", "Failed to receive an Ad.  Requesting a new one..." + arg1);
        arg0.stopLoading();
        arg0.loadAd(new AdRequest());
    
    }
    

    【讨论】:

    • ciclyc 冗余怎么样?如果失败,您可以使用此代码调用自己 - 无限循环。
    【解决方案3】:

    我也有同样的问题。所以我更改了代码,将测试模式设置为 true,然后 Admob 测试广告开始在模拟器上显示。在你的 OnCreate() 方法中试试这个:

    LinearLayout layout = (LinearLayout)findViewById(R.id.main);    
    AdView adView = new AdView(this, AdSize.BANNER, "anonymouse");    
    // Unit ID is correct, I changed it on purpose while pasting here     
    adView.setAdListener(this);     
    AdRequest request = new AdRequest();
    request.setTesting(true);     
    adView.loadAd(request);
    

    如果您在真实设备上运行它并且仍然没有广告可显示,那么我想这可能与 Admob 填充率有关。

    【讨论】:

    • 我通过这个实现将我的应用程序发布到了 Android Market,在大约 100 次请求之后,真实的广告开始在真实设备上显示,尽管填充率很低(大约 20%)。这证明代码是正确的,问题出在 Admob 端。
    【解决方案4】:

    将测试模式更改为真。请注意,在当天至少进行 3 次访问尝试之前,不会显示广告。

    【讨论】:

    • 我不怀疑你,但你有一个链接,它说在一天进行 3 次访问尝试之前不会显示广告?
    • 对不起,我不记得我在哪里读到的,可能是在 SDK 本身中。
    【解决方案5】:

    最新的 admob SDK 4.0.4 似乎无法在 1.5 设备上显示广告。

    在模拟器中它适用于 1.6+,但不适用于 1.5。

    我认为它来自与 AdSense 的新交叉广告。据我所知,SDK 现在将 webview 包装为视图的可视化组件,因此它可以发布不同类型的广告。仔细查看日志显示启用了 WebView.multitouch - 因为 1.5 不支持多点触控(对于我们使用 Java 的开发人员而言),因为 Apple 将其玩具从婴儿车中扔出并有一个 dummyspit(我知道他们相信只有他们被允许同时使用两根手指..) 并且可能在 webview 上启用多点触控会导致内部异常并且视图永远不会被创建,因此无法接收来自 admob http 服务器的 HTML 回复。

    另见link

    【讨论】:

      【解决方案6】:

      1/ 获取最新的 SDK 版本
      2/ 使用您的发布者 ID 尝试 admob 演示
      3/ 在测试模式下尝试(这应该始终有效)
      4/ 尝试添加一些示例自家广告(在没有其他广告可用时显示)
      5/ 尝试更改您的关键字

      一般来说,admob 会在日志中打印出详细的错误信息(ID 缺失、清单中的活动缺失等)。

      【讨论】:

        【解决方案7】:

        我已经完成了 admob 集成,它可以在设备和模拟器上运行。

        所以,请尝试以下代码:

        我认为你必须从 main.xml 中删除 textview

        也可以试试这个:

        1) 在您的 admob a/c 中创建新应用 2)然后简单地用新的替换以前的应用程序的id

        试试吧兄弟。

        【讨论】:

          【解决方案8】:

          我也遇到了这个问题。您可以在加载之前尝试自定义请求。像这样:

          AdRequest re = new AdRequest();
          //re.setTesting(true);
          re.setGender(AdRequest.Gender.FEMALE);
          adview.loadAd(re);
          

          我把我的例子,apk文件和源码放在这里,大家可以试试:

          Add Google Admob in Android Application

          【讨论】:

            猜你喜欢
            • 2018-08-15
            • 1970-01-01
            • 1970-01-01
            • 2014-02-02
            • 2021-02-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多