Admob - 没有广告显示

时间:2011-03-18 10:54:09

标签: java android admob

您好 我尝试在Android手机上制作一些显示广告的示例程序,并尝试在v2.2的模拟器上进行测试 代码中的所有内容似乎都很好,但调试器中的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");

    }
}

8 个答案:

答案 0 :(得分:2)

我遇到了与

相同的问题
  

onFailedToReceiveAd(无广告展示)。

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

我在AdMob上创建自己的家庭广告以验证我的申请。这是一种比测试模式更简单的开发方式。

答案 1 :(得分: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());

}

答案 2 :(得分:1)

我也有同样的问题。所以我更改了代码以将测试模式设置为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填充率有关。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

最新的admob SDK 4.0.4似乎不会在1.5设备上展示广告。

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

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

另见link

答案 5 :(得分:0)

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

通常,admob会将详细错误打印到日志中(ID丢失,清单中缺少活动等)。

答案 6 :(得分:0)

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

所以,请尝试以下代码:

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

并试试这个:

1)在你的admob a / c中创建新的应用程序 2)然后简单地用新的

替换先前app的id

试试兄弟。

答案 7 :(得分:0)

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

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

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

Add Google Admob in Android Application