中介功能测试套件(测试版)

通过 AdMob 中介功能测试套件,您可以测试是否正确配置了应用和广告单元,使其能够通过 AdMob 中介功能展示来自第三方广告联盟的广告。

本指南概要介绍了如何在 iOS 应用中使用 AdMob 中介功能测试套件。第一步是将该工具集成到您的应用中。

前提条件

  • 使用 Xcode 8.0 或更高版本。

  • 定位到 iOS 8.0 或更高版本。

安装

中介功能测试套件需要使用 CocoaPods 来安装。为此,请将以下这行代码添加到您的 Podfile:

pod 'GoogleMobileAdsMediationTestSuite'

上述代码会配置测试套件以及所必需的 Material Components 依赖项。运行 pod install 以完成安装。

启动中介功能测试套件

设置

要展示该工具,请先导入框架:

Swift

import GoogleMobileAdsMediationTestSuite

Objective-C

@import GoogleMobileAdsMediationTestSuite;

您需要将您的 AdMob 应用 ID 提供给中介功能测试套件。在 AdMob 界面中,您可以为您的应用找到应用 ID,其格式如下所示:

ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX

Swift

let appID = "your application ID"
GoogleMobileAdsMediationTestSuite.present(withAppId:appID, on:self, delegate:nil)

Objective-C

NSString appID = @"your application ID";
[GoogleMobileAdsMediationTestSuite presentWithAppId:appID
                                   onViewController:self
                                           delegate:nil];

请注意,代理属于可选内容,且仅在您希望在工具关闭时收到通知的情况下提供。要实现代理回调,请遵循 GMTSMediationTestSuiteDelegate 协议并实现 mediationTestSuiteWasDismissed 方法。

打开工具

该工具打开时会显示以下免责声明:

勾选复选框,然后按 Agree 继续。

系统随后会显示您帐号的广告单元列表,分为两个标签:Failing Ad UnitsWorking Ad Units

Failing Ad Units 列表又分为 Missing ComponentsConfiguration Errors

在广告单元的所有广告联盟测试成功后,该广告单元将会从“Failing”标签移至“Working”标签。如果您没有看到广告单元列表,则说明广告联盟邀约失败,或找不到广告单元。

如果要搜索广告单元列表,请按顶部的搜索图标,然后输入广告单元 ID 的字符串。您还可以按广告联盟名称或广告格式来进行搜索。

对于给定的广告单元,屏幕会显示以下信息:

  • SDK 是否已安装
  • 适配器是否已安装

选择一个广告单元即可进入广告单元详情屏幕。

广告单元详情

此屏幕显示了广告单元的详细信息,包括广告单元 ID、广告格式以及为该广告单元配置的中介按序调用备用广告:

请注意此屏幕上的以下各方面内容:

广告来源摘要

对于每个广告来源,都会有指示器显示 SDK 和适配器是否已安装以及此配置在此会话中的最后一次测试结果。

请注意,对于自定义事件,会使用 Custom Event: Your custom event 标签。如果找到了您为该自定义事件指定的类,则该自定义事件的适配器状态指示器将显示正值。像其他广告联盟一样,您也可以为自定义事件加载和查看广告。

搜索

按搜索图标会显示一个搜索屏幕,您可以在此屏幕根据广告来源名称搜索广告来源。

批量测试

通过选中广告来源名称左侧的复选框,可以选择要批量测试的每个广告来源。然后,导航栏中会出现一个新选项:

按右上角的加载广告按钮,即可按顺序加载所选广告来源的广告。在测试过程中会显示进度指示器。按左上角的后退图标可清除选择。

加载和展示广告

点按广告来源条目即可查看广告来源详情屏幕:

对于给定的广告来源,屏幕会显示以下信息:

  • SDK 是否已安装
  • 适配器是否已安装
  • 配置参数是否已输入 AdMob 控制台

安装完所有必需的组件后,您就可以进而测试加载广告了。点按加载广告,以向广告来源的 SDK 发送广告请求。在广告请求完成后,会显示一条说明请求是否成功的更新消息。

如果请求失败,请检查控制台日志,查看所测试的 SDK 提供的消息。

如果请求成功:

  • 对于横幅广告,会以内嵌方式展示广告。
  • 对于插页式广告或激励广告,您可以通过点按展示广告来展示广告。

    广告会在新的屏幕中打开,例如:

当您返回广告单元详情屏幕时,系统会显示您上次在广告单元列表屏幕中测试该广告的结果。已成功加载的广告来源会被移至列表底部,从而让需要进一步测试的广告来源排在列表前面。请注意,这些结果不会在各会话间持久保留。

使用广告联盟额外信息配置广告请求(可选)

对于某些参与中介的广告联盟(如 Vungle),需要或可以选择提供自定义广告联盟额外对象,以便向其广告联盟的请求提供额外信息。如果您需要为中介请求提供广告联盟额外信息,则可使用[GoogleAdsMediationTestSuite setAdRequest:]静态方法设置广告请求,供测试套件使用:

Swift

let request = GADRequest()
...
// Set your network extras for your chosen networks here.
// i.e for each network extras object, call 'request.register(<network extras>)'
...
GoogleAdsMediationTestSuite.setAdRequest(request);

Objective-C

GADRequest request = [GADRequest request];
...
// Set your network extras for your chosen networks here.
// i.e for each network extras object, call '[request registerAdNetworkExtras:<network extras>];'
...
[GoogleAdsMediationTestSuite setAdRequest:request];

请务必先完成此操作,然后再启动中介功能测试套件。

这可让您使用任何必需的额外信息对广告请求进行实例化和配置,然后供测试套件向参与中介的广告联盟发送请求时使用。

高级 CocoaPods 配置(可选,仅用于调试)

如果您只想将 pod 纳入应用的调试版本中,则可以在 Podfile 中对此进行如下指定:pod 仅用于 Debug 版本配置。此外,您还需要确保所有调用该工具的代码都带有 #ifdef DEBUG 语句或类似语句。

要将 pod 仅包含在调试配置中,请使用以下这行代码:

pod 'GoogleMobileAdsMediationTestSuite', :configurations => ['Debug'], :path => '/path/to/GoogleMobileAdsMediationTestSuite/'

请确保用 #ifdef DEBUG 将所有引用都封装到框架及其类中:

Swift

import UIKit
#if DEBUG
import GoogleMobileAdsMediationTestSuite
#endif
import GoogleMobileAds

let APP_ID = "ca-app-pub-1234567890123456~1234567890"

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

  @IBAction func presentMediationController(_ sender: AnyObject) {
      #if DEBUG
        GoogleMobileAdsMediationTestSuite.present(withAppId:APP_ID, on:self, delegate:nil)
      #endif
    }

Objective-C

#import "ViewController.h"
#ifdef DEBUG
@import GoogleMobileAdsMediationTestSuite;
#endif
#import <GoogleMobileAds/GoogleMobileAds.h>

static NSString *APP_ID = @"ca-app-pub-1234567890123456~1234567890";

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
}

- (IBAction)presentMediationController:(id)sender {
#ifdef DEBUG
    [GoogleMobileAdsMediationTestSuite presentWithAppId:APP_ID
                                       onViewController:self
                                               delegate:nil];
  }
#endif
}

常见问题解答

是否每次都会显示免责声明?
是的。为了提醒发布商为其中介广告来源启用测试模式,我们特意进行了这样的安排。
为什么我会在广告单元详情页面上多次看到 AdMob?
如果多个中介组定位的是同一个广告单元,那么我们会将所有这些中介组组合在一起。例如,您可能会看到多个 AdMob 条目,还会看到其他多个广告来源。即使在同一个中介组内,也可定义中介合作伙伴多达 3 次。
中介功能测试套件支持哪些广告联盟/广告来源?
该测试套件不仅适用于所有开源且已标明版本的适配器,也适用于自定义事件适配器。如需了解参与我们开源计划的广告联盟列表,请访问我们的中介页面

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面