Les signaux sécurisés sont des données encodées collectées sur l'appareil client et partagées avec certains enchérisseurs. Ce guide vous explique comment collecter et envoyer des signaux sécurisés à Google Ad Manager à l'aide du SDK IMA.
L'API Secure Signals nécessite la version 3.18.1 ou ultérieure du SDK IMA pour iOS.
Pour sélectionner des signaux et des enchérisseurs, et activer le partage de signaux sécurisés, consultez Partager des signaux sécurisés avec les enchérisseurs.
Utiliser un fournisseur de signaux tiers
Pour utiliser des signaux sécurisés, vous devez déployer une classe d'adaptateur de collecteur de signaux dans votre application pour collecter les signaux, les encoder et les transmettre au SDK IMA.
Suivez les instructions de votre fournisseur tiers pour configurer un compte auprès de lui, inclure des frameworks, et configurer son adaptateur de signaux sécurisés dans votre application.
Le SDK IMA pour iOS initialise automatiquement chaque adaptateur de signaux sécurisés, sans qu'il soit nécessaire d'apporter d'autres modifications à votre code.
Voici un exemple de la façon dont vous pouvez ajouter un adaptateur de signaux sécurisés à votre projet :
Envoyer des données personnalisées
En plus d'utiliser un fournisseur de signaux tiers, vous pouvez également collecter, encoder et envoyer des signaux avec des données personnalisées. Avant de pouvoir envoyer des signaux sécurisés avec des données personnalisées, vous devez activer les signaux personnalisés dans Ad Manager.
Pour chaque demande de flux, procédez comme suit :
- Créez un objet
IMASecureSignals
contenant vos données personnalisées encodées sous forme de chaîne. - Ajoutez l'objet
IMASecureSignals
à votre requête de flux en définissant l'attributIMAStreamRequest.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)
}
}