繁体   English   中英

Admob - 没有广告显示

[英]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文件和源代码放在这里,你可以尝试:

在Android应用中添加Google Admob

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM