Erste Schritte mit sicheren Signalen

Sichere Signale sind codierte Daten, die auf dem Clientgerät erhoben und an ausgewählte Bieter weitergegeben werden. In dieser Anleitung erfahren Sie, wie Sie mit dem IMA SDK sichere Signale erfassen und an Google Ad Manager senden.

Für die Secure Signals API ist Version 3.18.1 oder höher des IMA SDK für iOS erforderlich.

Informationen zum Auswählen von Signalen und Bietern sowie zum Aktivieren der Freigabe sicherer Signale finden Sie unter Sichere Signale für Bieter freigeben.

Drittanbieter für Signale verwenden

Wenn Sie sichere Signale verwenden möchten, müssen Sie eine Adapterklasse für die Signalerfassung in Ihrer App bereitstellen, um Signale zu erfassen, zu codieren und an das IMA SDK zu übergeben.

Folgen Sie der Anleitung des Drittanbieters, um ein Konto bei ihm einzurichten, Frameworks einzubinden und den Adapter für sichere Signale in Ihrer App einzurichten.

Das IMA SDK für iOS initialisiert automatisch jeden Adapter für sichere Signale, ohne dass Sie Änderungen an Ihrem Code vornehmen müssen.

Hier ist ein Beispiel dafür, wie Sie Ihrem Projekt einen Adapter für sichere Signale hinzufügen können:

Benutzerdefinierte Daten senden

Sie können nicht nur einen Drittanbieter für Signale verwenden, sondern auch Signale mit benutzerdefinierten Daten erheben, codieren und senden. Bevor Sie sichere Signale mit benutzerdefinierten Daten senden können, müssen Sie benutzerdefinierte Signale in Ad Manager aktivieren.

Führen Sie für jede Streamanfrage die folgenden Schritte aus:

  1. Erstellen Sie ein IMASecureSignals-Objekt, das Ihre codierten benutzerdefinierten Daten als String enthält.
  2. Fügen Sie das IMASecureSignals-Objekt Ihrer Streamanfrage hinzu, indem Sie das Attribut IMAStreamRequest.secureSignals festlegen:

Objective-C

app/ViewController.m

- (void)requestStream {
  // Create a stream request. Use one of "Livestream request" or "VOD request",
  //  depending on your type of stream.
  IMAStreamRequest *request;
  if (kStreamType == StreamTypeLive) {
    // Livestream request. Replace the asset key with your value.
    request = [[IMALiveStreamRequest alloc] initWithAssetKey:kLiveStreamAssetKey
                                                networkCode:kNetworkCode
                                          adDisplayContainer:self.adDisplayContainer
                                                videoDisplay:self.imaVideoDisplay
                                                userContext:nil];
  } else {
    // VOD request. Replace the content source ID and video ID with your values.
    request = [[IMAVODStreamRequest alloc] initWithContentSourceID:kVODContentSourceID
                                                          videoID:kVODVideoID
                                                      networkCode:kNetworkCode
                                                adDisplayContainer:self.adDisplayContainer
                                                      videoDisplay:self.imaVideoDisplay
                                                      userContext:nil];
  }
  
  IMASecureSignals *signals =
      [[IMASecureSignals alloc] initWithCustomData:@"My encoded signal string"];
  request.secureSignals = signals;
  
  [self.adsLoader requestStreamWithRequest:request];
}

Swift

app/ViewController.swift

 func requestStream() {
  // Create a stream request. Use one of "Livestream request" or "VOD request".
  let signals = IMASecureSignals(customData: "My encoded signal string")
  if ViewController.requestType == StreamType.live {
    // Livestream request.
    let request = IMALiveStreamRequest(
      assetKey: ViewController.assetKey,
      networkCode: ViewController.networkCode,
      adDisplayContainer: adDisplayContainer!,
      videoDisplay: imaVideoDisplay,
      userContext: nil)
    request.secureSignals = signals
    adsLoader?.requestStream(with: request)
  } else {
    // VOD stream request.
    let request = IMAVODStreamRequest(
      contentSourceID: ViewController.contentSourceID,
      videoID: ViewController.videoID,
      networkCode: ViewController.networkCode,
      adDisplayContainer: adDisplayContainer!,
      videoDisplay: imaVideoDisplay,
      userContext: nil)
    request.secureSignals = signals
    adsLoader?.requestStream(with: request)
  }
}