广告检查器

广告检查器 是一种应用内叠加层,可让获得授权的设备直接在移动应用内对测试广告请求进行实时分析。它包含在 Google 移动广告 SDK 7.68.0 及更高版本中,无需编写任何代码即可启用。

在版本低于 8.5.0 的移动广告 SDK 中使用广告检查器时,您可以执行以下操作:

  • 检查您的广告单元
  • 检查第三方适配器
  • 检查广告是否按预期填充
  • 发现错误并详细了解如何修正错误
  • 查看每个请求中各个广告联盟的中介详细信息
  • 测试单个第三方中介广告来源
  • 确认您已针对广告瀑布流中介正确配置了每个广告单元
  • 测试自定义事件集成

对于移动广告 SDK 8.5.0 及更高版本,您还可以执行以下操作:

  • 查看每个请求中各个广告联盟的出价详细信息
  • 查看每个请求中各个广告联盟的出价和广告瀑布流中介详细信息
  • 测试单个第三方出价广告来源或广告瀑布流中介广告来源
  • 确认您已针对出价和广告瀑布流中介正确配置了每个广告单元

本指南演示了如何启动和使用广告检查器中的不同功能。

前提条件

如要使用广告检查器,您需要:

  • 使用 Google 移动广告 SDK 7.68.0 或更高版本。

启动广告检查器

您可以通过以下方式从应用中的任何位置启动广告检查器:

  1. 使用注册测试设备时在 AdMob 界面中选择的手势。
  2. 使用提供的 API 以编程方式启动。
  3. 使用调试菜单中的“启动”按钮。

使用手势启动

使用手势启动广告检查器,无需对应用进行任何更改;只需执行您在 AdMob 中为该测试设备配置的手势(轻弹两下或摇晃)。了解详情

在 AdMob 界面中设置手势后(等待 15 分钟使其生效),您的应用需要向 Google 移动广告 SDK 发出广告请求,以了解您的手势设置。如果指定的手势不起作用,请尝试加载广告,重启应用,然后再次测试手势。

以编程方式启动

广告检查器也可以通过编程方式启动:

Swift

GADMobileAds.sharedInstance().presentAdInspector(from: viewController) { error in
  // Error will be non-nil if there was an issue and the inspector was not displayed.
}

Objective-C

[GADMobileAds.sharedInstance presentAdInspectorFromViewController:viewController
  completionHandler:^(NSError *error) {
    // Error will be non-nil if there was an issue and the inspector was not displayed.
}];

此 API 适用于通过下列方式注册的测试设备:以编程方式或在 AdMob 界面中注册。

确保传递到此 API 的视图控制器已完全在屏幕上可见(已调用 viewDidAppear:)。如果传递的视图控制器正处于显示过程中(例如,如果在视图控制器的 viewDidLoad 函数中调用该 API),那么将无法显示广告检查器。

查看广告单元并排查问题

启动后,系统会显示广告检查器主屏幕,列出 AdMob 界面中与您的 AdMob 应用 ID 相关联的所有具有出价或中介配置的广告单元:

我们建议您在使用广告检查器之前先初始化 Google 移动广告 SDK

查看广告单元的中介广告瀑布流详细信息

点按某个广告单元可查看其 SDK 请求日志,其中详细记录了在系统响应最新广告请求将广告填充到该广告单元之前(或在广告瀑布流以无任何广告填充而结束之前)的中介广告瀑布流。

使用披露指示器可以展开每个请求,以显示该请求的中介广告瀑布流的结果,以及与该请求相关的任何错误和延迟。

对于第三方广告来源,错误消息会直接从广告来源发送。如需了解详情,请咨询您的第三方广告来源。

查看广告单元的出价详细信息

前提条件:Google 移动广告 SDK 8.5.0 或更高版本

如果您还不熟悉出价功能,请参阅概览

在 SDK 请求日志中,您可以看到广告请求中调用的出价广告来源。点按 SDK 请求日志中的某个广告单元,即可查看出价竞价中每个广告来源的详细信息。

出价结果的排列顺序为,可操作项更靠近列表顶部:

  • 最上面是在竞价中胜出的广告联盟。

  • 接下来是有问题的广告联盟。您可以按照相应问题的排查步骤操作。

  • 然后是未返回任何广告或未出价的广告联盟。这可能意味着该广告来源存在问题。此类问题有很多种,因为广告来源可能是由于设置或决策原因而没有出价。您可以参考广告来源的设置指南,或直接与广告来源联系以寻求支持

  • 最后,列表底部是出价竞价失败的广告联盟。

中介广告瀑布流可以根据广告来源的有效每千次展示费用 (eCPM) 值来放置出价竞价中获胜的广告来源。

在中介广告瀑布流中调用广告来源时,广告来源便会投放广告。如需详细了解出价如何与中介广告瀑布流协同运作,请参阅中介组中出价广告来源和瀑布流广告来源的示例 2示例 3

高级广告单元调试

在排查广告单元问题时,深入研究广告请求和响应有助于找出问题所在,或者与 Google 支持团队分享这些信息,以便他们协助调试。点按广告瀑布流链顶部的菜单图标,然后选择共享广告请求和响应以导出完整的广告请求和响应。这样,您就不必在自己的应用上运行网络轨迹了。

此外,您还可以点按请求字符串所在菜单中的 Third-party bidding parameter(第三方出价参数)选项,查看已解码的第三方出价参数。这会详细说明哪些第三方出价参数可能存在问题,帮助您调试应用或验证广告联盟是否成功收集了其信号。

查看可用的适配器

点击 Adapters(适配器)标签页,查看与您应用中出价或中介配置中的广告来源关联的所有第三方适配器的列表。然后,展开卡片以查看其初始化状态和 SDK 版本。除了支持的第三方适配器之外,您还可以查看自定义事件适配器。借助自定义事件,发布商可以使用 AdMob 不支持的广告联盟。在适配器列表中,自定义事件可通过其唯一的类名称与标准第三方适配器区分开来。除了提供类名称和状态信息之外,广告检查器还会在 AdMob 网页界面中显示为这些自定义事件分配的标签。

如果找不到相应适配器或初始化失败,请参阅排查使用广告检查器发现的问题,了解详情。

测试广告单元

如果您想测试广告单元,但不想在应用界面中导航到该广告单元,广告检查器支持直接从广告单元详情页面进行测试。此外,您还可以同时测试多个广告单元、异步加载和查看测试广告请求,甚至可以执行单个广告来源测试。

广告测试

本部分介绍的广告检查器广告测试是一款非常实用的工具,可与单个广告来源测试搭配使用,用于验证基本广告体验和中介配置。

准备好测试广告单元后,点按广告检查器界面顶部的请求测试广告按钮,以触发广告检查器广告测试。然后,测试结果会显示在 SDK 请求日志中的Requested from ad inspector(从广告检查器请求)标题下方。

了解如何在应用中使用广告检查器

单个广告来源测试

广告检查器提供了一项功能,可让您限制应用中的广告请求,以便仅投放来自某个出价或广告瀑布流中介广告来源的广告。这样,您便可以验证是否已正确实现了第三方适配器,以及广告来源是否按预期投放。

如需启用此功能,请开启屏幕底部的单一广告来源测试开关。此时会显示以下广告来源选择对话框:

您必须先初始化 Google 移动广告 SDK,然后才能使用单一广告来源测试。

然后,您可以选择一个广告来源进行测试。选择广告来源后,系统会显示以下屏幕:

单一广告来源测试设置适用于今后在同一会话中发出的所有广告请求。但是,此类设置不会应用于该会话中之前已缓存但尚未显示的任何广告。我们建议您在应用单一广告来源测试时强制重启您的应用,以便使可能会投放的缓存广告失效,这些广告并非来自您所选的接收广告请求的广告来源。

重启应用后,所有广告单元展示位置都将仅展示来自所选广告联盟的广告。当单一广告来源测试处于有效状态时启动广告检查器,即会显示有效的测试广告来源:

在单一广告来源测试模式下,所有广告请求都会尝试从所选广告来源填充广告,无论是否针对请求的广告单元的出价或中介配置了该广告来源。如果您要测试的广告来源不在某广告单元的中介广告瀑布流中,您会收到一条“未填充”错误消息。

在单一广告来源测试中,您可以点按广告单元来查看其 SDK 请求日志。 这样您就可以了解,所选广告来源是否填充了在启用单一广告来源测试后发出的广告请求。如果广告来源未能加载广告,则系统会显示一条错误消息,说明相应错误。

如果您向某个中介广告瀑布流多次添加了所选广告来源,则会在广告瀑布流中看到在有广告填充之前(或在广告瀑布流以无任何广告填充而结束之前)对该广告来源的每一次调用。

停止单个广告来源测试

如需停止测试,请关闭开关:

以下重启屏幕上随后会显示确认消息:

我们建议在停止测试后强制重启应用,以便使接受测试的广告来源的缓存广告无效。

复制整个调试输出

广告检查器支持从该工具复制包含整个调试输出的 JSON 字符串,包括 AdMob 应用的详细信息、适配器初始化状态以及所有广告单元的测试结果。

为此,请点按应用图标七次,直到看到已将广告检查器 JSON 复制到剪贴板消息。