使用 AdMob SDK 调用 DFP 时出现无效的广告请求

Posted

技术标签:

【中文标题】使用 AdMob SDK 调用 DFP 时出现无效的广告请求【英文标题】:Invalid Ad request when calling DoubleClick for Publishers with AdMob SDK 【发布时间】:2013-06-21 16:51:40 【问题描述】:

我正在使用 Admob SDK 从 android 上的 DFP 加载横幅广告。

我正在使用此页面中定义的 XML 方法来加载广告:https://developers.google.com/mobile-ads-sdk/docs/dfp/fundamentals

当我运行应用程序时,我得到

06-21 16:44:30.354: I/Ads(2641): onFailedToReceiveAd(Invalid Ad request.)

当我通过

更改为测试模式时
adRequest.addTestDevice("xxx");

然后我就可以成功看到 Google Test 横幅了。所以假设我的 SDK 集成是正确的,如果“无效的广告请求”是怎么回事?

【问题讨论】:

您使用的是什么广告单元 ID? Invalid Ad Request 表示 SDK 无法正确解释您的广告单元 ID。您的广告单元中有空格吗?当您设置测试模式时,SDK 会抓取 AdMob 测试广告,并且不会通过 DFP 后端,因此测试模式可能会起作用。 贴一些代码,需要更多信息... @EricLeichtenschlag,adUnitId 给了我的客户,但我使用它们时没有空间。我只是从 Google 下载示例项目并用这个 ID 替换:google-mobile-dev.googlecode.com/files/…。是否需要从 DFP 平台进行设置? @MattCooper,只需从 Google 下载示例项目并将 kSampleAdUnitID 替换为我的 ID 即可重现此问题。 该错误表示广告单元 ID 无效。当 SDK 尝试使用该广告单元查询 DFP 时,该广告单元不存在。可能是客户给了您错误的广告单元 ID。确保他们告诉您正确的网络代码和广告单元的正确名称。如果客户使用的是 DFP 高级版,则广告单元也可以是分层的。所以它可能类似于/12345/a/b/c/your_ad_unit 【参考方案1】:

您的广告单元很可能无效。您需要访问您正在使用的 DFP 帐户,并确保网络 ID、广告单元名称和尺寸正确无误。可能没有匹配的广告,或者真的会发生任何事情......但就像你说的测试广告有效,所以很可能是 DFP 中的设置错误。

我通常在网站上使用 DFP,因此 Admob SDK 可能会略有不同,但如果有帮助的话,我有这个小工具可以用来测试我的 DFP 广告投放:

http://coop182.github.io/jquery.dfp.js/dfptests/test.html?google_console=1&networkID=15572793&adunitID=Leader&dimensions=728x90

您也可以按 CTRL+F10 调出 DFP 网络控制台并获取有关广告投放的更多信息……但就像我说的那样,这可能没有太大帮助,因为它是 Admob 广告…… . 但值得一试!

【讨论】:

【参考方案2】:

形成另一个线程here:

您无需在市场上已有应用即可获得新应用的发布者 ID。在“添加站点/应用程序”表单上的 Android 包 URL 字段中,只需输入“market://details?id=your.package.name”。您当然希望将“your.package.name”替换为您应用的实际包名称。

viewWidth 警告很好,在插入发布者 ID 后您可能仍会看到它们。

编辑:here 也有一个很好的建议。

【讨论】:

以上是关于使用 AdMob SDK 调用 DFP 时出现无效的广告请求的主要内容,如果未能解决你的问题,请参考以下文章

使用 Admob SDK 版本 6.12.0 的 Xamarin iOS 应用程序上的 Admob 问题

为啥调用 GetThreadTimes 时出现“句柄无效”错误?

尝试通过android调用JSON api时出现无效请求错误

当我从样式组件中使用我自己的库时出现无效的钩子调用错误

使用omnipay 通过securepay 处理时出现无效指纹异常

在我的 iOS 应用中包含 Google+ SDK 时出现捆绑验证错误