สัญญาณที่ปลอดภัยคือข้อมูลที่เข้ารหัสซึ่งรวบรวมในอุปกรณ์ไคลเอ็นต์และ แชร์กับผู้เสนอราคาที่เลือก คู่มือนี้แสดงวิธีรวบรวมและส่งสัญญาณที่ปลอดภัยไปยัง Google Ad Manager โดยใช้ IMA SDK
API สัญญาณที่ปลอดภัยต้องใช้ IMA SDK สำหรับ iOS เวอร์ชัน 3.18.1 ขึ้นไป
ดูวิธีเลือกสัญญาณและผู้เสนอราคา รวมถึงเปิดใช้การแชร์สัญญาณที่ปลอดภัยได้ที่แชร์ สัญญาณที่ปลอดภัยกับผู้เสนอราคา
ใช้ผู้ให้บริการสัญญาณบุคคลที่สาม
หากต้องการใช้สัญญาณที่ปลอดภัย คุณต้องติดตั้งใช้งานคลาสอะแดปเตอร์ของเครื่องมือรวบรวมสัญญาณ ในแอป เพื่อรวบรวมสัญญาณ เข้ารหัส และส่งไปยัง IMA SDK
ทำตามวิธีการของผู้ให้บริการบุคคลที่สามเพื่อสร้างบัญชีกับผู้ให้บริการ รวมเฟรมเวิร์ก และตั้งค่าอแดปเตอร์สัญญาณที่ปลอดภัยของผู้ให้บริการในแอป
IMA SDK สำหรับ iOS จะเริ่มต้นใช้งานอะแดปเตอร์สัญญาณที่ปลอดภัยแต่ละรายการโดยอัตโนมัติ โดยไม่ต้องทำการเปลี่ยนแปลงเพิ่มเติมในโค้ด
ตัวอย่างวิธีเพิ่มอะแดปเตอร์สัญญาณที่ปลอดภัยลงในโปรเจ็กต์มีดังนี้
ส่งข้อมูลที่กำหนดเอง
นอกเหนือจากการใช้ผู้ให้บริการสัญญาณบุคคลที่สามแล้ว คุณยังรวบรวม เข้ารหัส และส่งสัญญาณด้วยข้อมูลที่กำหนดเองได้ด้วย คุณต้องเปิดใช้สัญญาณที่กำหนดเองใน Ad Manager ก่อนจึงจะส่งสัญญาณที่ปลอดภัย พร้อมข้อมูลที่กำหนดเองได้
สำหรับคำขอสตรีมแต่ละรายการ ให้ทำดังนี้
- สร้างออบเจ็กต์
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];
}
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)
}
}