安全信号是在客户端设备上收集并与选定出价方共享的编码数据。本指南将向您介绍如何使用 IMA SDK 收集安全信号并将其发送给 Google Ad Manager。
安全信号 API 需要 IMA SDK for tvOS 4.8.2 版或更高版本。
如需选择信号和出价方并启用安全信号共享,请参阅与出价方共享 安全信号。
使用第三方信号提供方
如需使用安全信号,您必须在应用中部署信号收集器适配器类以收集信号、对其进行编码并将其传递给 IMA SDK。
请按照第三方提供方的说明在其处设置账号, 添加框架, 并在应用中设置其安全信号适配器。
IMA SDK for tvOS 会自动初始化每个安全信号适配器,而无需对您的代码进行任何额外更改。
以下示例展示了如何将安全信号适配器添加到项目中:

发送自定义数据
除了使用第三方信号提供方之外,您还可以收集、编码和发送包含自定义数据的信号。在发送包含自定义数据的安全信号之前,您必须先在 Ad Manager 中开启自定义信号。
对于每个 广告请求,请执行以下操作:
- 创建一个
IMASecureSignals对象,其中包含编码后的自定义数据(以字符串形式)。 - 通过设置
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)
}
...