Admob 显示测试广告,但不显示真实广告
Posted
技术标签:
【中文标题】Admob 显示测试广告,但不显示真实广告【英文标题】:Admob shows Test ads but not real ads 【发布时间】:2015-05-10 22:31:47 【问题描述】:我正在使用 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_
android:layout_
android:orientation="vertical" >
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_
android:layout_
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-********" />
</LinearLayout>
【问题讨论】:
发布AndroidManifest.xml
。发帖build.gradle
。
你的问题最后是怎么解决的?
你能解决这个问题吗?
如果您使用的是插页式广告,我认为您不需要在布局文件中添加任何内容。
【参考方案1】:
当应用新注册到 AdMob 时,需要一些时间和一些广告请求来允许构建广告资源。因此,您可能不会立即看到实时展示。一旦您的应用开始发出更多请求,您应该会看到更一致的结果。请注意,测试广告通过与实时广告相同的渠道运作。能够返回测试广告可确保您的应用程序与我们的网络正常通信。请耐心等待几天后它会起作用。
【讨论】:
我有同样的问题,我的真实广告(横幅广告)已经 2 天没有显示了。我还要再等几天?这是我发布的应用网址:play.google.com/store/apps/… 如果您正确完成所有编程但未填写付款信息,您的测试广告会正确显示,但生产广告则不会。因此,即使是测试广告通过与实时广告相同的渠道运行,您也会遇到此问题。 @Usmanlqbal 我检查了您的广告即将投放,您是如何解决问题的? 真的吗?两个星期很多,有谁知道如何缩短这个时间? 我的所有广告都显示为 NO_FILL,即使在四个月后也是如此。我尝试了多个应用程序,甚至在 Xamarin 中重写了整个内容,而且我从来没有见过一个直播广告出现过。我无法发布我制作的任何应用程序。所有测试广告都适用于每个应用程序,但即使在四个月后,我也看到 0 次填充。我该怎么办?【参考方案2】:删除上面写着的那一行
.addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")
此外,当您使用虚拟设备时,无论如何它都会显示测试广告。你是在真机上测试吗?
【讨论】:
是的,我正在真实设备上进行测试...如果我保留那条线路,那么我会在我的真实设备上收到一个测试广告...但是当我删除线路时没有广告 当然...如果我没有在清单中添加它们,我怎么可能得到真正的插页式广告 愚蠢。我在我自己注册为测试设备的设备上测试它。我在另一台设备上测试并显示了真实的广告。是的。 测试横幅和测试插页式广告完美显示,但真正的插页式广告没有显示,而真实的横幅广告也完美显示。【参考方案3】:您可能正在使用示例单元 ID:ca-app-pub-3940256099942544/6300978111
如果您使用上述,那么您将看到测试广告。
确保在发布应用之前更改为您自己的单位 ID。
【讨论】:
【参考方案4】:“可能是您最近才创建了一个新的广告单元 ID 并请求投放实时广告。如果是这种情况,可能需要几个小时才能开始投放广告。”
我也遇到了同样的问题,如果你可以展示测试广告,那很好,直播广告很快就会展示(当然是在你删除 .addTestDevice(...) 之后)。
我猜 google 需要时间来收集一些信息(位置、年龄、性别...)来正确展示用户感兴趣的广告。
您可能知道但永远不要忘记:请勿触摸实时广告,您将很快被禁止。
https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/android/fBe3YL3ffpo
【讨论】:
【参考方案5】:如果您已删除:
.addTestDevice()
然后,确保您使用的 ID 与 AdMob 在您的 string.xml 文件中提供的 ID 相同
AdMob ID page
【讨论】:
【参考方案6】:回答一个老问题,但我也遇到过同样的问题,即测试广告可见且生产密钥的广告不起作用。
后来我发现我没有向 Admob 提供付款详情。
Admob 中的付款详情是必须的。请在几个小时后更新并检查它开始出现。
【讨论】:
【参考方案7】:您必须先添加您的付款信息。我忘记在 Google Admob 中执行此操作,所以它没有显示任何广告。
另外,请确保您使用真实的广告 ID 而不是测试 ID。
【讨论】:
【参考方案8】:创建实时广告单元 ID
登录
https://apps.admob.com
-
在左侧菜单中点击 ->Apps
添加应用
选择您是在 Google Play 还是 App Store 上发布您的应用
如果没有 -> 输入您的应用信息
创建广告单元
用新的广告单元替换测试广告单元。
应用发布到 Playstore 后,您就会看到广告!
在您的 xml 中添加 AdView
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_
android:layout_
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);
【讨论】:
【参考方案9】:以下是显示实时广告所需时间的官方答案。
在第一个广告之后开始展示广告需要多长时间 请求?
当应用新注册到 AdMob 时,通常最多需要 小时和几个广告请求,以允许建立库存。因为 这样,您可能不会立即看到实时展示。
注意:在某些情况下,可能需要一个多小时。请稍等 24 在寻求其他帮助前几个小时。
一旦您的应用发出更多请求,您应该会看到更加一致 结果。请注意,测试广告通过相同的渠道投放 作为现场广告。能够返回测试广告可确保您的 应用程序正在与我们的网络正常通信。
来源:https://support.google.com/admob/answer/2993019?hl=en
【讨论】:
【参考方案10】:看看你的 logcat。它会说明为什么没有显示真实的广告。
这可能是因为在您所在的位置,您的设备目前没有可显示的内容。
【讨论】:
可能... 情况相同。 我检查了 Logcat。它说“广告服务器没有填充”。这意味着什么?? 这意味着广告服务器目前没有广告可以显示给您。正是我说的可能。这是预期的状态。它会不时发生。 没有。是否提供广告与您的应用是否已在 Google Play 上发布完全无关。【参考方案11】:我也遇到过这个问题。 AdView 和 IntersitialAd 仅向我展示了 模拟器 上的测试广告。但是真实设备上有真实的广告。 我认为firebase可以检测你是使用模拟器还是真实设备。我用过firebase:
com.google.firebase:firebase-ads:11.0.4
【讨论】:
【参考方案12】:在我的情况下,这是因为 app > build.gradle 中的密钥库文件路径错误。确保你有正确的 storeFile 文件('file path')
我相信它会帮助某人找到答案。
【讨论】:
【参考方案13】:我遇到了同样的问题,并认为我永远无法解决它。
错误原因: Admob 正在展示测试广告,因为从 admob 加载的广告不适合容器,主要是线性布局,因为加载的广告宽度更大。
修复: 我的解决方法是创建一个自定义大小为 320x50 的横幅广告,然后加载它。
我无法在答案中发布我的代码,但您可以从 Jay Patel 对以下 *** 问题的回答中找出自己的代码。
How to set adSize?
【讨论】:
【参考方案14】:如果您选择 Native Express 模板,请使用此链接。 NativeExpressAdView 不适用于 AdView。 https://firebase.google.com/docs/admob/android/native-express
NativeExpressAdView adView = (NativeExpressAdView)findViewById(R.id.adView);
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_
android:layout_
ads:adUnitId="ca-app-123123123123/123123123"
ads:adSize="320x150">
</com.google.android.gms.ads.NativeExpressAdView>
【讨论】:
【参考方案15】:其实我也遇到过这个问题。您必须登录到 admob 并转到您在那里添加的应用程序。该应用程序有一个 admob id。使用应用的 id 来做these steps。 然后在该应用程序中(在 admob 中)创建一个新横幅或任何类型的广告,并使用该横幅的 id 来完成these steps。当您创建横幅时,它会自行为您提供说明。
【讨论】:
您能否从您的链接中添加需要哪些相关步骤? 这些不仅仅是步骤,它是 developer.google.com 上的完整教程,所以我觉得与其全部重写,不如自己访问并查看。【参考方案16】:它可能没有显示广告,因为您的应用仍处于开发模式,您可以按照说明here 在您的 ad mob 帐户中注册一个测试设备。即使在开发模式下,您也应该能够在测试设备上看到广告。
这里复制步骤
通过 https://apps.admob.com 登录您的 AdMob 帐户。 点击边栏中的设置。 单击“测试设备”选项卡。 点击添加测试设备。 选择您设备的平台。 输入设备名称。考虑使用可帮助您快速识别 AdMob 帐户中设备的名称。 注意:任何有权访问您的 AdMob 帐户的人都可以看到设备名称。 输入您的广告 ID/IDFA。 Learn how to find your advertising ID/IDFA. 选择用于激活广告检查器的手势: 无,摇晃或轻弹两次 点击完成。【讨论】:
【参考方案17】:发生这种情况一般有两个原因:
-
您将设备定义为测试设备。
如果您使用的是模拟器 android studio,您总是会看到测试广告。
根据 Google 文档,android 模拟器会自动配置为测试设备。
更多信息请查看Google Web Site。
【讨论】:
以上是关于Admob 显示测试广告,但不显示真实广告的主要内容,如果未能解决你的问题,请参考以下文章
Admob 测试广告不起作用,只有真实的广告在显示 - Android
Cordova - AdMob 插件可以显示测试广告,但不能显示真实广告