AdMob不刷新广告



这是我的AdView

<com.google.ads.AdView
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adUnitId=""
    ads:adSize="BANNER"
    ads:testDevices="TEST_EMULATOR"
    ads:loadAdOnCreate="true"
/>

在Admob网站上,我将"自动刷新"设置为"刷新率:22秒"。

以下是LogCat的输出:

12-10 11:59:20.757: I/Ads(30363): adRequestUrlHtml: <html><head><script .......
12-10 11:59:22.296: I/Ads(30363): Received ad url: <"url":  ..... 
12-10 11:59:47.085: I/Ads(30363): Refreshing ad.
12-10 11:59:47.390: I/Ads(30363): adRequestUrlHtml: <html><head><script ...........
12-10 11:59:48.339: I/Ads(30363): Received ad url: <"url": ..... 
12-10 11:59:49.394: I/Ads(30363): onReceiveAd()
12-10 12:00:09.276: I/Ads(30363): Refreshing ad.
12-10 12:00:09.558: I/Ads(30363): adRequestUrlHtml: <html><head><script ...... 
12-10 12:00:10.046: I/Ads(30363): Received ad url: <"url":  ...... 
12-10 12:00:11.448: I/Ads(30363): onReceiveAd()
12-10 12:00:31.463: I/Ads(30363): Refreshing ad.
12-10 12:00:31.558: I/Ads(30363): adRequestUrlHtml: <html><head><script ....... 
12-10 12:00:32.085: I/Ads(30363): Received ad url: <"url":  .......... 
12-10 12:00:33.191: I/Ads(30363): onReceiveAd()

虽然LogCat显示AdMob刷新广告,但相同的Add(第一次加载的Add)显示在设备上。

在Java端有什么需要做的吗

Advertise.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <com.google.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res/com.becomputer06.vehicle.diary.free"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ads:adUnitId=""
        ads:adSize="BANNER"
        ads:loadAdOnCreate="true"
    />
</LinearLayout>

AndroidMenifest

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android" package="com.becomputer06.vehicle.diary.free"
    android:versionCode="2"
    android:versionName="1.0.1.FREE">
           ........
</manifest>

上面列出的代码的结果(编译错误):-

Description Resource    Path    Location    Type
error: No resource identifier found for attribute 'adSize' in package 'com.becomputer06.vehicle.diary.free' advertise.xml   /vehicle-diary-free/res/layout  line 5  Android AAPT Problem
error: No resource identifier found for attribute 'adUnitId' in package 'com.becomputer06.vehicle.diary.free'   advertise.xml   /vehicle-diary-free/res/layout  line 5  Android AAPT Problem
error: No resource identifier found for attribute 'loadAdOnCreate' in package 'com.becomputer06.vehicle.diary.free' advertise.xml   /vehicle-diary-free/res/layout  line 5  Android AAPT Problem
R cannot be resolved to a variable  

我在这里假设您在XML定义中包含了实际的adUnitId。否则你就不会收到广告了。

请注意您处于测试模式。通过指定ads:testDevices="TEST_EMULATOR",您要求模拟器向您发送测试广告。当您在测试模式下请求广告时,每次都会收到相同的广告。尝试删除该参数,或者更好的是尝试在您的设备上调试,看看是否会得到不同的结果。

在Admob网站上,我认为您已经通过提供包名称来注册您的应用程序。之后,您需要从网站中获取发布者id,并在xml中的adUnitId中给出它。

java代码中:

    AdView adview = (AdView)findViewById(R.id.adView);
    AdRequest re = new AdRequest();
    re.setGender(AdRequest.Gender.FEMALE); 
    adview.loadAd(re);   

在xml中:

 <LinearLayout android:id="@+id/LinearLayout02" android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:orientation="vertical" >
    <com.google.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res/com.xxxx" (com.xxx---> your application package name)
        android:id="@+id/adView"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        ads:adSize="BANNER"
        android:background="#4876FF"
        ads:adUnitId=" "
        />
</LinearLayout>

在Admob网站中,进入设置,将刷新率更改为12秒。请同时点击此选项"使用谷歌广告和谷歌认证的广告网络来提高填充率"。我想这会解决你的问题。

在res文件夹->下的"values"你需要添加新的xml名为attrs.xml在其中你需要添加

     <?xml version="1.0" encoding="utf-8"?>
     <resources>
     <declare-styleable name="com.google.ads.AdView">
     <attr name="adSize">
       <enum name="BANNER" value="1"/>
       <enum name="IAB_MRECT" value="2"/>
       <enum name="IAB_BANNER" value="3"/>
       <enum name="IAB_LEADERBOARD" value="4"/>
    </attr>
    <attr name="adUnitId" format="string"/>
   </declare-styleable>
   </resources>

我有一个类似的问题,更新admob SDK到最新版本解决了这个问题

最新更新