開始使用安全信號

選取平台: HTML5 Android iOS tvOS

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

安全信號 API 須使用 IMA SDK for iOS 3.18.1 以上版本。

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

使用第三方信號供應商

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

請按照第三方供應商的操作說明,向他們設定帳戶、加入架構,並在應用程式中設定安全信號轉接程式。

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

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

傳送自訂資料

除了使用第三方信號供應商,您也可以收集、編碼及傳送信號和自訂資料。如要傳送含有自訂資料的安全信號,請務必先在 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)
}
...