תחילת העבודה עם אותות מאובטחים

אותות מאובטחים הם נתונים מוצפנים שנאספים במכשיר הלקוח ומשותפים עם מגישי הצעות מחיר נבחרים. במדריך הזה מוסבר איך לאסוף ולשלוח אותות מאובטחים אל Google Ad Manager באמצעות IMA SDK.

כדי להשתמש ב-API של אותות מאובטחים, צריך גרסה 3.18.1 ואילך של IMA SDK ל-iOS.

כדי לבחור אותות ומשתתפים במכרז ולהפעיל שיתוף של אותות מאובטחים, אפשר לעיין במאמר בנושא שיתוף אותות מאובטחים עם משתתפים במכרז.

שימוש בספק אותות של צד שלישי

כדי להשתמש באותות מאובטחים, צריך לפרוס מחלקה של מתאם לאיסוף אותות באפליקציה כדי לאסוף אותות, לקודד אותם ולהעביר אותם אל IMA SDK.

פועלים לפי ההוראות של ספק הצד השלישי כדי להגדיר אצלו חשבון, כוללים מסגרות, ומגדירים באפליקציה את המתאם של האותות המאובטחים שלו.

‫IMA SDK ל-iOS מאתחל באופן אוטומטי כל מתאם של אותות מאובטחים, בלי שצריך לבצע שינויים נוספים בקוד.

דוגמה להוספת מתאם של אותות מאובטחים לפרויקט:

שליחת נתונים בהתאמה אישית

בנוסף לשימוש בספק אותות מצד שלישי, אפשר גם לאסוף, לקודד ולשלוח אותות עם נתונים בהתאמה אישית. כדי לשלוח אותות מאובטחים עם נתונים מותאמים אישית, צריך להפעיל אותות מותאמים אישית ב-Ad Manager.

לכל בקשה להזרמת נתונים, מבצעים את הפעולות הבאות:

  1. יוצרים אובייקט IMASecureSignals שמכיל את הנתונים המותאמים אישית המקודדים כמחרוזת.
  2. מוסיפים את האובייקט 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)
  }
}