[英]Admob - no ad to show
您好我尝试在Android手机上制作一些显示广告的示例程序,我尝试在v2.2的模拟器上测试它。代码中的所有内容似乎都很好,但调试器中的AdListener说:
响应消息为零或null;
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");
}
}
我遇到了同样的问题
onFailedToReceiveAd(没有要显示的广告)。
由于某些原因,AdMob似乎没有为我们的应用发送广告内容。 即使我处于测试模式,仍然没有广告。
我在AdMob上创建了自己的房子广告,以验证我的申请。 这是一种比测试模式更简单的开发方式。
我在我的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());
}
我也有同样的问题。 所以我更改了代码以将测试模式设置为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填充率有关。
将测试模式更改为true。 请注意,在当天至少进行3次访问尝试之前,不会显示广告。
似乎最新的admob SDK 4.0.4不会在1.5设备上显示广告。
在模拟器中,它适用于1.6+,但不适用于1.5。
我认为这是来自AdSense的新交叉广告。 据我所知,SDK现在将webview包装为视图的可视组件,以便它可以发布不同类型的广告。 仔细查看日志显示WebView.multitouch已启用 - 因为Apple不会支持多点触控(对于我们Java开发人员),因为Apple将玩具扔出婴儿车并拥有dummyspit(据我所知,他们认为只允许他们使用一次使用两个手指..)并且可能在webview上启用多点触控会导致内部异常并且视图永远不会被创建,因此无法从admob http服务器接收HTML回复。
另见此链接
1 /获取最新的SDK版本
2 /尝试使用您的发布商ID的admob演示
3 /在测试模式下尝试(这应该始终有效)
4 /尝试添加一些样本房屋广告(当没有其他广告可用时显示)
5 /尝试更改您的关键字
通常,admob会将详细错误打印到日志中(ID丢失,清单中缺少活动等)。
我已经完成了admob集成,它既可以在设备上运行,也可以在模拟器上运行。
所以,请尝试下面的代码:
我认为你必须从main.xml中删除textview
并尝试这个:
1)在您的admob a / c创建新应用程序2)然后只需用新的应用程序替换以前应用程序的ID
试试兄弟。
我也遇到了这个问题。 您可以在加载之前尝试自定义请求。 像这样:
AdRequest re = new AdRequest();
//re.setTesting(true);
re.setGender(AdRequest.Gender.FEMALE);
adview.loadAd(re);
我把我的例子,apk文件和源代码放在这里,你可以尝试:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.