Sinyal aman adalah data yang dienkode yang dikumpulkan di perangkat klien dan dibagikan kepada bidder tertentu. Panduan ini menunjukkan cara mengumpulkan dan mengirim sinyal aman ke Google Ad Manager menggunakan IMA SDK.
API sinyal aman memerlukan IMA SDK untuk iOS versi 3.18.1 atau yang lebih tinggi.
Untuk memilih sinyal dan bidder, serta mengaktifkan berbagi sinyal aman, lihat Membagikan sinyal aman kepada bidder.
Menggunakan penyedia sinyal pihak ketiga
Untuk menggunakan sinyal aman, Anda harus men-deploy class adaptor pengumpul sinyal di aplikasi Anda untuk mengumpulkan sinyal, mengenkodenya, dan meneruskannya ke IMA SDK.
Ikuti petunjuk penyedia pihak ketiga untuk menyiapkan akun di sana, sertakan framework, dan siapkan adaptor sinyal aman mereka di aplikasi Anda.
IMA SDK untuk iOS secara otomatis menginisialisasi setiap adaptor sinyal aman, tanpa perubahan tambahan pada kode Anda.
Berikut adalah contoh cara menambahkan adaptor sinyal aman ke project Anda:
Mengirim data kustom
Selain menggunakan penyedia sinyal pihak ketiga, Anda juga dapat mengumpulkan, mengenkode, dan mengirim sinyal dengan data kustom. Sebelum dapat mengirim sinyal aman dengan data kustom, Anda harus mengaktifkan sinyal kustom di Ad Manager.
Untuk setiap permintaan streaming, lakukan hal berikut:
- Buat objek
IMASecureSignals
yang berisi data kustom yang dienkode sebagai string. - Tambahkan objek
IMASecureSignals
ke permintaan streaming Anda dengan menetapkan atributIMAStreamRequest.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)
}
}