Admob显示测试广告但不显示真实广告。

61

我在使用Admob来展示Android广告。测试广告正常显示,但真实广告没有显示。而且,我没有遇到真实插页式广告的任何问题,它们正常工作。只有真实横幅广告没有显示出来。以下是我的Java代码:

private InterstitialAd interstitial;    
interstitial = new InterstitialAd(MainActivity.this);

        interstitial.setAdUnitId("ca-app-pub-********");

        AdView adView = (AdView) this.findViewById(R.id.adView);               
        AdRequest adRequest = new AdRequest.Builder()

        // Add a test device to show Test Ads
         .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
         .addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")
                .build();

        // Load ads into Banner Ads
        adView.loadAd(adRequest);

        // Load ads into Interstitial Ads
        //interstitial.loadAd(adRequest);

布局文件是

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-********" />

</LinearLayout>

发布 AndroidManifest.xml。发布 build.gradle - Jared Burrows
最终你是怎么解决你的问题的? - Himanshu
你能解决这个问题吗? - aricherca
我认为如果您正在使用插页式广告,您不需要向布局文件添加任何内容。 - Piotr Sagalara
17个回答

58

当应用程序新注册AdMob时,需要一些时间和一些广告请求来建立库存。因此,您可能不会立即看到实时印象。一旦您的应用程序开始发出更多请求,您应该会看到更一致的结果。请注意,测试广告通过与实际广告相同的渠道运行。能够返回测试广告可以确保您的应用程序与我们的网络正确通信。耐心等待几天,它将会生效。


13
如果你的程序编写正确,但没有填写付款信息,那么测试广告将正确显示,但生产广告不会。因此,即使测试广告和实际广告使用相同的渠道运作,你也可能会遇到这个问题。 - Jindřich Skeldal
2
@Usmanlqbal,我检查了一下,你的广告现在已经出现了,你是怎么解决这个问题的? - Manohar Reddy Poreddy
真的吗?两周太长了,有人知道如何缩短这段时间吗? - dmarquina
1
所有我的广告都显示NO_FILL,即使过了四个月。我尝试了多个应用程序,甚至在Xamarin中重新编写了整个应用程序,但我从未看到过任何一条实时广告。我无法发布任何我制作的应用程序。所有测试广告在每个应用程序中都有效,但即使过了四个月,我也没有看到任何填充。我该怎么办? - Apache
在我的应用程序中,我应用了测试广告(横幅和插页式广告),它们都显示得很完美,但是当我应用真正的广告时,两者都没有显示。我等待了一天,过了一天后只有横幅广告显示,现在插页式广告没有显示(我的广告ID是在1年前生成的,为什么上传到Google Play商店后需要等待1天才能在我的应用程序中显示)。现在我该如何显示插页式广告呢? - Developer
显示剩余2条评论

19

移除那行写着的内容

.addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")

另外,当您使用虚拟设备时,无论如何都会显示测试广告。您是在真实设备上进行测试吗?


是的,我正在真实设备上测试...如果我保留那行代码,我会在我的真实设备上看到测试广告...但是如果我删除这行代码就不会有广告。 - Vishal Afre
1
当然了...如果我没有在清单文件中添加它们,那么我怎么可能得到真正的插页式广告呢? - Vishal Afre
我在自己注册为测试设备的设备上进行了测试,结果很傻。但是当我在另一台设备上测试时,真正的广告出现了。耶! - axunic
测试横幅广告和测试插页式广告显示完美,但真实的插页式广告没有显示,而真实的横幅广告也完美显示。 - Developer

13

您可能正在使用示例单元ID:ca-app-pub-3940256099942544/6300978111

如果您使用上述单元ID,则将看到测试广告。

在发布应用程序之前,请确保更改为您自己的单元ID。


10
"可能是因为您最近创建了新的广告单元ID并请求实时广告。如果是这种情况,广告需要几个小时才能开始服务。"
"我也遇到了同样的问题,如果您可以显示测试广告,则没有问题,实时广告很快就会显示(当然,在删除 .addTestDevice(...) 后)。"
"我猜谷歌需要时间收集一些信息(位置、年龄、性别等),以展示能够吸引用户的广告。"
"也许您已经知道,但永远不要忘记:不要触碰实时广告,否则您将很快被封禁。"

https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/fBe3YL3ffpo


6
以下是有关展示实时广告所需的时间的官方答案。
当应用程序首次请求广告时,通常需要花费一小时和几个广告请求来建立库存。因此,您可能不会立即看到实时印象。
请注意:在某些情况下,可能需要更长的时间。请等待24小时再寻求额外的帮助。
一旦您的应用程序发出更多请求,您应该会看到更加一致的结果。请注意,测试广告通过与实时广告相同的渠道运作。能够返回测试广告可以确保您的应用程序与我们的网络正常通信。
来源:https://support.google.com/admob/answer/2993019?hl=en

6

您需要先添加支付信息。我在Google Admob中忘记了这个步骤,所以没有显示广告。

此外,请确保使用真实的广告ID而不是测试ID。


6
如果您已经删除:
.addTestDevice()

请确保在string.xml文件中使用AdMob提供给您的相同ID。

AdMob ID页面


5

回答一个老问题,但我面临的是相同的问题,测试广告可见,生产密钥的广告无法工作。

后来我发现我没有在Admob中提供付款细节。

Admob中必须提供付款细节。请更新并检查几个小时后它开始出现。


4
创建Live Ad单元ID:

登录

https://apps.admob.com

  1. 在左侧菜单中单击 ->应用
  2. 添加应用
  3. 选择是否已发布您的应用于Google Play或App Store
  4. 如果没有->输入应用信息
  5. 创建广告单元
  6. 使用新的Ad单元替换测试Ad单元。
  7. 发布应用到Playstore后,您将看到广告!

在XML文件中添加AdView。

  <com.google.android.gms.ads.AdView 
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_ad_unit_id">
  </com.google.android.gms.ads.AdView>

在字符串中: <string name="banner_ad_unit_id">your_new_ad_unit</string> 在你的Java代码中:
 AdView mAdView = (AdView) v.findViewById(R.id.adView);
 AdRequest adRequest = new AdRequest.Builder().build();
 mAdView.loadAd(adRequest);

3
一般来说,这是由于两个原因导致的:
1. 您将您的设备定义为测试设备。 2. 如果您正在使用 Android Studio 的模拟器,则始终会看到测试广告。
引用Google文档的说法,Android模拟器和iOS模拟器都会自动配置为测试设备。

enter image description here

更多信息请查看谷歌网站

我在使用安卓模拟器呢,哈哈,谢谢。 - Cristofer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接