Gli indicatori sicuri sono dati codificati raccolti sul dispositivo client e condivisi con offerenti selezionati. Questa guida mostra come raccogliere e inviare indicatori sicuri a Google Ad Manager utilizzando l'SDK IMA.
L'API Secure Signals richiede la versione 3.18.1 o successive dell'SDK IMA per iOS.
Per selezionare gli indicatori e gli offerenti e attivare la condivisione di indicatori sicuri, consulta Condividere indicatori sicuri con gli offerenti.
Utilizzare un fornitore di indicatori di terze parti
Per utilizzare gli indicatori sicuri, devi implementare una classe adattatore per la raccolta degli indicatori nella tua app per raccogliere gli indicatori, codificarli e trasmetterli all'SDK IMA.
Segui le istruzioni del fornitore di terze parti per configurare un account, includi i framework, e configura l'adattatore dei segnali sicuri nella tua app.
L'SDK IMA per iOS inizializza automaticamente ogni adattatore di indicatori sicuri, senza ulteriori modifiche al codice.
Ecco un esempio di come potresti aggiungere un adattatore di indicatori sicuri al tuo progetto:
Inviare dati personalizzati
Oltre a utilizzare un fornitore di segnali di terze parti, puoi anche raccogliere, codificare e inviare segnali con dati personalizzati. Prima di poter inviare indicatori sicuri con dati personalizzati, devi attivare gli indicatori personalizzati in Ad Manager.
Per ogni richiesta di stream, esegui le seguenti operazioni:
- Crea un oggetto
IMASecureSignals
contenente i tuoi dati personalizzati codificati come stringa. - Aggiungi l'oggetto
IMASecureSignals
alla richiesta di flusso impostando l'attributoIMAStreamRequest.secureSignals
:
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)
}
}