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:
- Erstellen Sie ein
IMASecureSignals
-Objekt, das Ihre codierten benutzerdefinierten Daten als String enthält. - Fügen Sie das
IMASecureSignals
-Objekt Ihrer Streamanfrage hinzu, indem Sie das AttributIMAStreamRequest.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)
}
}