开始使用安全信号

请选择平台HTML5 Android iOS tvOS

安全信号是在客户端设备上收集并与所选出价方共享的编码数据。本指南介绍了如何使用 IMA SDK 收集安全信号并将其发送到 Google Ad Manager。

安全信号 API 需要使用 3.18.1 版或更高版本的 IMA SDK for iOS。

如需选择信号和出价方并启用安全信号共享功能,请参阅与出价方共享安全信号

使用第三方信号提供商

如需使用安全信号,您必须在应用中部署信号收集器适配器类,以收集信号、对其进行编码,并将其传递给 IMA SDK。

按照第三方提供商的说明,向其设置账号,包括框架,并在应用中设置其安全信号适配器。

IMA SDK for iOS 会自动初始化每个安全信号适配器,而无需对代码进行任何额外更改。

以下示例展示了如何向项目添加安全信号适配器:

发送自定义数据

除了使用第三方信号提供商之外,您还可以收集、编码和发送包含自定义数据的信号。您必须先在 Ad Manager 中启用自定义信号,然后才能发送包含自定义数据的安全信号。

对于每个广告请求,请执行以下操作:

  1. 创建一个 IMASecureSignals 对象,其中包含以字符串形式编码的自定义数据。
  2. 通过设置 IMAAdsRequest.secureSignals 属性,将 IMASecureSignals 对象添加到您的广告请求中:

Objective-C

BasicExample/ViewController.m

...
- (void)requestAds {
  // Create an ad display container for ad rendering.
  IMAAdDisplayContainer *adDisplayContainer =
      [[IMAAdDisplayContainer alloc] initWithAdContainer:self.videoView
                                          viewController:self
                                          companionSlots:nil];
  // Create an ad request with our ad tag, display container, and optional user context.
  IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:kTestAppAdTagUrl
                                                adDisplayContainer:adDisplayContainer
                                                   contentPlayhead:self.contentPlayhead
                                                       userContext:nil];
  
  IMASecureSignals *signals =
      [[IMASecureSignals alloc] initWithCustomData:@"My encoded signal string"];
  request.secureSignals = signals;
  
  [self.adsLoader requestAdsWithRequest:request];
}
...

Swift

BasicExample/ViewController.swift

...
private func requestAds() {
  // Create ad display container for ad rendering.
  let adDisplayContainer = IMAAdDisplayContainer(
    adContainer: videoView, viewController: self, companionSlots: nil)
  // Create an ad request with our ad tag, display container, and optional user context.
  let request = IMAAdsRequest(
    adTagUrl: ViewController.testAppAdTagURL,
    adDisplayContainer: adDisplayContainer,
    contentPlayhead: contentPlayhead,
    userContext: nil)
  
  let signals = IMASecureSignals(customData: "My encoded signal string")
  request.secureSignals = signals
  
  adsLoader.requestAds(with: request)
}
...