開始使用安全信號

安全信號是經過編碼的資料,會在用戶端裝置上收集,並與特定出價方共用。本指南說明如何使用 IMA SDK 收集並傳送安全信號至 Google Ad Manager。

安全信號 API 需要 iOS 版 IMA SDK 3.18.1 以上版本。

如要選取信號和出價方,並啟用安全信號共用功能,請參閱「與出價方共用安全信號」。

使用第三方信號供應器

如要使用安全信號,您必須在應用程式中部署信號收集器轉接器類別,以便收集信號、對信號進行編碼,並將信號傳遞至 IMA SDK。

請按照第三方供應商的操作說明設定帳戶,並納入框架,以及在應用程式中設定安全信號轉接器。

iOS 版 IMA SDK 會自動初始化每個安全信號轉接程式,而不需要對程式碼進行任何額外變更。

以下範例說明如何在專案中加入安全信號轉接程式:

傳送自訂資料

除了使用第三方信號供應器,您也可以收集、編碼及傳送含有自訂資料的信號。您必須先在 Ad Manager 中啟用自訂信號,才能傳送含有自訂資料的安全信號。

針對每項廣告請求,建立 IMASecureSignals 物件,其中包含以字串形式提供的已編碼自訂資料。接著,請呼叫 IMAAdsRequest.secureSignals 屬性,將 IMASecureSignals 物件新增至廣告要求。

以下是 Objective-C 和 Swift 的範例:

Objective-CSwift

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];
}
...

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)
}
...