אותות מאובטחים הם נתונים מוצפנים שנאספים במכשיר הלקוח ומשותפים עם מגישי הצעות מחיר נבחרים. במדריך הזה מוסבר איך לאסוף ולשלוח אותות מאובטחים אל Google Ad Manager באמצעות IMA SDK.
כדי להשתמש ב-API של אותות מאובטחים, צריך גרסה 3.18.1 ואילך של IMA SDK ל-iOS.
כדי לבחור אותות ומשתתפים במכרז ולהפעיל שיתוף של אותות מאובטחים, אפשר לעיין במאמר בנושא שיתוף אותות מאובטחים עם משתתפים במכרז.
שימוש בספק אותות של צד שלישי
כדי להשתמש באותות מאובטחים, צריך לפרוס מחלקה של מתאם לאיסוף אותות באפליקציה כדי לאסוף אותות, לקודד אותם ולהעביר אותם אל 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)
}
}