セキュア シグナルは、クライアント デバイスで収集され、選択したビッダーと共有されるエンコードされたデータです。このガイドでは、IMA SDK を使用して安全なシグナルを収集し、Google アド マネージャーに送信する方法について説明します。
セキュア シグナル API には、tvOS 向け IMA SDK のバージョン 4.8.2 以降が必要です。
シグナルとビッダーを選択してセキュア シグナルの共有を有効にするには、ビッダーとセキュア シグナルを共有するをご覧ください。
サードパーティのシグナル プロバイダを使用する
安全なシグナルを使用するには、アプリにシグナル コレクタ アダプタ クラスをデプロイして、シグナルを収集、エンコードし、IMA SDK に渡す必要があります。
サードパーティ プロバイダの手順に沿って、プロバイダのアカウントを設定し、フレームワークを含め、アプリでセキュア シグナル アダプタを設定します。
tvOS 向け IMA SDK は、コードを変更しなくても、各セキュア シグナル アダプタを自動的に初期化します。
セキュア シグナル アダプタをプロジェクトに追加する方法の例を次に示します。
カスタムデータを送信する
サードパーティのシグナル プロバイダを使用するだけでなく、カスタムデータを使用してシグナルを収集、エンコード、送信することもできます。カスタムデータを含むセキュア シグナルを送信するには、アド マネージャーでカスタム シグナルを有効にする必要があります。
広告リクエストごとに、次の操作を行います。
- エンコードされたカスタムデータを文字列として含む
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)
}
...