Bezpieczne sygnały to zakodowane dane zbierane na urządzeniu klienta i udostępniane wybranym licytującym. Z tego przewodnika dowiesz się, jak zbierać i wysyłać bezpieczne sygnały do Google Ad Managera za pomocą pakietu IMA SDK.
Interfejs API bezpiecznych sygnałów wymaga pakietu IMA SDK na iOS w wersji 3.18.1 lub nowszej.
Aby wybrać sygnały i licytujących oraz włączyć udostępnianie bezpiecznych sygnałów, zapoznaj się z artykułem Udostępnianie bezpiecznych sygnałów licytującym.
Korzystanie z usługi zewnętrznego dostawcy sygnałów
Aby korzystać z bezpiecznych sygnałów, musisz wdrożyć w aplikacji klasę adaptera modułu zbierającego sygnały, która będzie zbierać sygnały, kodować je i przekazywać do pakietu IMA SDK.
Postępuj zgodnie z instrukcjami dostawcy zewnętrznego, aby utworzyć u niego konto, uwzględnić platformy i skonfigurować w aplikacji adapter bezpiecznych sygnałów.
Pakiet IMA SDK na iOS automatycznie inicjuje każdy adapter bezpiecznych sygnałów bez wprowadzania dodatkowych zmian w kodzie.
Oto przykład dodawania do projektu adaptera bezpiecznych sygnałów:
Wysyłanie danych niestandardowych
Oprócz korzystania z usług dostawcy sygnałów zewnętrznych możesz też zbierać, kodować i wysyłać sygnały z danymi niestandardowymi. Zanim zaczniesz wysyłać bezpieczne sygnały z danymi niestandardowymi, musisz włączyć sygnały niestandardowe w Ad Managerze.
W przypadku każdego żądania strumienia wykonaj te czynności:
- Utwórz obiekt
IMASecureSignals
zawierający zakodowane dane niestandardowe w formacie ciągu tekstowego. - Dodaj obiekt
IMASecureSignals
do żądania przesyłania strumieniowego, ustawiając atrybutIMAStreamRequest.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)
}
}