Защищённые сигналы — это закодированные данные, которые собираются на клиентском устройстве и передаются выбранным участникам торгов. В этом руководстве показано, как собирать и отправлять защищённые сигналы в Google Ad Manager с помощью IMA SDK.
Для API защищенных сигналов требуется версия IMA SDK 3.18.1 или выше для iOS.
Чтобы выбрать сигналы и участников торгов, а также включить безопасный обмен сигналами, см. раздел Обмен безопасными сигналами с участниками торгов .
Используйте стороннего поставщика сигналов
Чтобы использовать безопасные сигналы, необходимо развернуть в своем приложении класс адаптера сборщика сигналов для сбора сигналов, их кодирования и передачи в IMA SDK.
Следуйте инструкциям стороннего поставщика, чтобы создать у него учетную запись, включить фреймворки и настроить его адаптер защищенных сигналов в своем приложении.
IMA SDK для iOS автоматически инициализирует каждый адаптер защищенных сигналов без внесения дополнительных изменений в ваш код.
Вот пример того, как можно добавить адаптер защищенных сигналов в свой проект:
Отправить пользовательские данные
Помимо использования стороннего поставщика сигналов, вы также можете собирать, кодировать и отправлять сигналы с пользовательскими данными. Для отправки защищённых сигналов с пользовательскими данными необходимо включить пользовательские сигналы в Менеджере рекламы.
Для каждого запроса потока выполните следующие действия:
- Создайте объект
IMASecureSignals
, содержащий закодированные пользовательские данные в виде строки. - Добавьте объект
IMASecureSignals
в свой потоковый запрос, установив атрибутIMAStreamRequest.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];
}
Быстрый
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)
}
}