การรองรับสื่อกลางในรันไทม์ของ SDK

สื่อกลางเป็นวิธีทั่วไปที่แพลตฟอร์มโฆษณาฝั่งขายใช้ในการจัดการผลตอบแทน ในเวิร์กโฟลว์สื่อกลาง SDK สื่อกลาง ("สื่อกลาง") จะเรียกใช้เครือข่ายโฆษณาหลายเครือข่าย ("สื่อกลาง" หรือ "สื่อกลาง") เพื่อรับโฆษณาที่ดีที่สุดสำหรับช่องที่กำหนด ใน บางกรณี ทั้งสื่อกลางและเครือข่ายโฆษณาที่เรียกใช้จะต้องมี SDK อยู่ในอุปกรณ์และโต้ตอบกัน

เอกสารนี้อธิบายการเปลี่ยนแปลงที่สำคัญในเวิร์กโฟลว์สื่อกลางใน SDK Runtime โดยจะครอบคลุมหัวข้อต่อไปนี้

  • ความแตกต่างระหว่างโฟลว์สื่อกลางก่อนหน้ากับการรองรับสื่อกลางใน SDK Runtime ปัจจุบัน
  • ตั้งค่าการกระทําสําหรับเวิร์กโฟลว์สื่อกลางในรันไทม์ของ SDK และขั้นตอนต่างๆ ของการเปลี่ยนผ่าน
  • คำแนะนำเกี่ยวกับวิธีจัดการสถานการณ์ที่ SDK บางรายการยังไม่ได้ย้ายข้อมูลไปยัง รันไทม์

การรองรับโฆษณาที่สื่อกลางในรันไทม์ของ SDK พร้อมใช้งานตั้งแต่ AGP 8.5 และจากไลบรารี Jetpack ของรันไทม์ของ SDK เวอร์ชันต่อไปนี้

ไลบรารี Androidx เวอร์ชัน
androidx.privacysandbox.activity 1.0.0-alpha01
androidx.privacysandbox.sdkruntime 1.0.0-alpha13
androidx.privacysandbox.tools 1.0.0-alpha08
androidx.privacysandbox.ui 1.0.0-alpha09

อภิธานศัพท์

คำศัพท์ต่อไปนี้เป็นคำศัพท์สำคัญที่ช่วยให้เข้าใจสื่อกลางในรันไทม์ของ SDK

  • SDK ที่เปิดใช้รันไทม์ (RE SDK): SDK ที่สร้างขึ้นเพื่อเรียกใช้ในสภาพแวดล้อมรันไทม์ของ SDK และสื่อสารกับแอปผ่านการสื่อสารระหว่างกระบวนการ (IPC)
  • SDK ที่รับรู้รันไทม์ (RA SDK): SDK ที่ไม่ได้เปิดใช้รันไทม์ซึ่งลิงก์กับแอปแบบคงที่ ซึ่งอาจมีโค้ด SDK ที่มีอยู่ รวมถึงโค้ดใหม่เพื่อเรียกใช้ SDK ที่เปิดใช้รันไทม์
  • SDK ในแอป: SDK ที่ทํางานโดยลิงก์กับแอปแบบคงที่ และไม่รู้จัก รันไทม์ของ SDK ซึ่งอาจเป็นเครือข่ายโฆษณาที่ยังไม่ได้ เปลี่ยนไปใช้ SDK Runtime หรืออะแดปเตอร์ที่กำหนดเองของผู้เผยแพร่โฆษณา
  • สื่อกลาง: SDK สื่อกลางโฆษณาที่ให้บริการสื่อกลางในอุปกรณ์ โดยการโต้ตอบกับ SDK เครือข่ายโฆษณาอื่นๆ
  • สื่อกลาง: SDK เครือข่ายโฆษณาที่สื่อกลางเรียกใช้เพื่อแสดงและ แสดงโฆษณา
  • สื่อกลาง: SDK ที่ SDK สื่อกลางใช้เพื่อจัดหา API การแปลอินเทอร์เฟซเพื่อทำงานร่วมกับ SDK ของสื่อกลางต่างๆ ซึ่งโดยปกติ จะจัดหาโดยสื่อกลาง ซึ่งอาจรับรู้หรือไม่รับรู้รันไทม์ก็ได้

ขั้นตอนสื่อกลางทั่วไป

หาก SDK ของคุณต้องรองรับ Use Case ของสื่อกลางในรันไทม์ SDK คุณจะต้อง ทำการเปลี่ยนแปลงบางอย่าง ส่วนนี้จะตรวจสอบองค์ประกอบสำคัญของ โฟลว์สื่อกลางเพื่อให้เราสามารถจัดการกับการเปลี่ยนแปลงที่จำเป็นสำหรับผู้ไกล่เกลี่ยและ ผู้รับการไกล่เกลี่ย

โฟลว์ที่เราอธิบายแสดงถึงสื่อกลางในอุปกรณ์เวอร์ชันที่เรียบง่ายซึ่งมี SDK ของเครือข่ายโฆษณาหลายรายการ และเป็นพื้นฐานสำหรับการอภิปรายเกี่ยวกับการเปลี่ยนแปลงที่จำเป็นเพื่อให้เส้นทางสื่อกลางเข้ากันได้กับ SDK Runtime

เนื่องจากการใช้งานโฟลว์สื่อกลางมีความแตกต่างกัน เราจึงมุ่งเน้นที่โฟลว์หลัก 2 รายการต่อไปนี้

  • การเริ่มต้น (รวมถึงการค้นหาเครือข่ายโฆษณาและการสื่อสาร)
  • การนำเสนออินเทอร์เฟซผู้ใช้ (UI) ของโฆษณา

การเริ่มต้น

ต่อไปนี้คือการเริ่มต้นมาตรฐาน การค้นหาเครือข่ายโฆษณา และ ขั้นตอนการสื่อสาร

  1. แอปไคลเอ็นต์จะเริ่มต้นตัวกลาง
  2. สื่อกลางจะค้นหาและเริ่มต้นผู้รับสื่อกลางและอะแดปเตอร์ที่เกี่ยวข้อง
  3. สื่อกลางใช้อะแดปเตอร์ของตนเองเพื่อสื่อสารกับผู้รับสื่อกลางแต่ละราย
  4. แอปไคลเอ็นต์ขอให้สื่อกลางโหลดโฆษณา
  5. แอปไคลเอ็นต์ขอให้สื่อกลางแสดงโฆษณานี้

การนำเสนอ UI ของโฆษณา

เมื่อพูดถึงการแสดงโฆษณาหลังจากคำขอสุดท้ายในขั้นตอนก่อนหน้า โฟลว์จะขึ้นอยู่กับประเภทของโฆษณา ดังนี้

โฆษณาแบนเนอร์ โฆษณาแบบเต็มหน้าจอ โฆษณาเนทีฟ
SDK สื่อกลางจะสร้างมุมมองโฆษณาซึ่งครอบคลุมมุมมองโฆษณาของสื่อกลางที่ชนะ

นอกจากนี้ ยังอาจตั้งค่า Listener ใน View นี้ หรือรีเฟรชโฆษณาโดยอัตโนมัติ (โดยใช้ผู้รับสื่อรายเดียวกันหรือรายอื่น)
SDK ของสื่อกลางจะขอโฆษณาแบบเต็มหน้าจอจากสื่อกลาง ซึ่งจะเริ่มกิจกรรม ผู้เผยแพร่โฆษณาจัดการการจัดการมุมมองและการเพิ่มจำนวนโดยใช้คอมโพเนนต์ที่ SDK สื่อกลางแสดง

ขั้นตอนสื่อกลางในรันไทม์ของ SDK

วิธีการทำงานของสื่อกลางภายในรันไทม์ของ SDK จะแตกต่างกันไปโดยขึ้นอยู่กับว่า สื่อกลางเปิดใช้รันไทม์หรือไม่ จากข้อมูลนี้ เราจึงอาจมีสถานการณ์ต่อไปนี้

  • ทั้งผู้ไกล่เกลี่ยและผู้รับการไกล่เกลี่ยอยู่ในรันไทม์ของ SDK: RE mediatee
  • ตัวกลางอยู่ในรันไทม์ของ SDK และสื่อกลางอยู่ในแอป: สื่อกลางในแอป

RE Mediatee

แผนภาพสถาปัตยกรรมต่อไปนี้แสดงภาพรวมระดับสูงของ การโต้ตอบของ SDK ที่เปิดใช้รันไทม์ (RE) และ SDK ที่รับรู้รันไทม์ (RA) ของสื่อกลาง อแดปเตอร์สื่อกลาง RE และ SDK ของ RE ของสื่อกลาง

ตัวกลางการไกล่เกลี่ยต้องอยู่ในกระบวนการเดียวกันกับตัวกลางที่เชื่อมต่อด้วย ดังนั้นจึงต้องย้ายข้อมูลไปยัง SDK Runtime ด้วย

แผนภาพสถาปัตยกรรมที่แสดงภาพรวมระดับสูงของ
การโต้ตอบของ SDK ที่เปิดใช้รันไทม์ (RE) และ SDK ที่รับรู้รันไทม์ (RA) ของสื่อกลาง
อแดปเตอร์สื่อกลาง RE และ SDK RE ของสื่อกลาง
รูปที่ 1 ทั้งสื่อกลางและผู้รับสื่อกลางเป็น SDK ของ RE

การเริ่มต้น

เมื่อพิจารณาถึงการเริ่มต้น การค้นหา และการสื่อสารของทั้งตัวกลางที่เปิดใช้รันไทม์และตัวกลางที่ใช้ร่วมกัน โฟลว์จะเป็นไปตามขั้นตอนต่อไปนี้

  1. แอป (หรือ RA SDK) จะโหลดและเริ่มต้น SDK สื่อกลางโดยใช้ SdkSandboxManager#loadSdk
  2. ในระหว่างการเริ่มต้นใช้งาน SDK ตัวกลางจะโหลดและเริ่มต้นตัวกลางที่จำเป็นในรันไทม์ของ SDK โดยใช้ SdkSandboxController#loadSdk
  3. RE SDK สามารถค้นหา SDK ทั้งหมดที่โหลดในรันไทม์ได้โดยการเรียกใช้ SdkSandboxController#getSandboxedSdks
RE - RE mediation sequence diagram showing the flow described previously.
รูปที่ 2 ขั้นตอนการเริ่มต้นใช้งานผู้รับการไกล่เกลี่ย RE

การนำเสนอ UI ของโฆษณา

ส่วนต่อไปนี้จะครอบคลุมการโหลดแบนเนอร์และโฆษณาแบบเต็มหน้าจอจาก RE mediatee

โฆษณาแบนเนอร์ RE Mediatee

เมื่อแอปขอให้โหลดโฆษณาแบนเนอร์ ขั้นตอนการแสดงผลให้เสร็จสมบูรณ์ มีดังนี้

  1. ตัวกลางจะเลือกผู้ไกล่เกลี่ยที่ชนะสำหรับโฆษณานี้
  2. ผู้ไกล่เกลี่ยจะได้รับ SandboxedUiAdapter จากผู้รับการไกล่เกลี่ย
  3. ตัวกลางจะส่งต่อ UiAdapter ไปยังแอป
ขั้นตอนในการแสดงโฆษณาแบนเนอร์ในสื่อกลาง RE-RE ให้เสร็จสมบูรณ์
รูปที่ 3 ขั้นตอนในการแสดงโฆษณาแบนเนอร์จากสื่อกลาง RE ให้เสร็จสมบูรณ์

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน SandboxedUiAdapter และไลบรารี UI ของรันไทม์ SDK

การวางซ้อนโฆษณาแบนเนอร์

หากผู้ไกล่เกลี่ยต้องการเพิ่มภาพซ้อนทับในโฆษณา จะต้องแก้ไขโฟลว์ดังนี้

  1. สื่อกลางสร้างเลย์เอาต์ที่มีการซ้อนทับและ SandboxedSdkView
  2. ตัวกลางจะเลือกผู้ไกล่เกลี่ยที่ชนะสำหรับโฆษณานี้
  3. ผู้ไกล่เกลี่ยจะได้รับ SandboxedUiAdapter จากผู้รับการไกล่เกลี่ย
  4. ผู้ไกล่เกลี่ยจะตั้งค่า UiAdapter ของผู้รับการไกล่เกลี่ยเป็น SandboxedSdkView
  5. สื่อกลางจะแชร์มุมมองที่สร้างขึ้นกับแอป
ขั้นตอนการซ้อนทับมุมมองเหนือโฆษณาแบนเนอร์ที่ได้จาก RE Mediatee
ขั้นตอนการวางซ้อนมุมมองเหนือโฆษณาแบนเนอร์ที่ได้จาก RE Mediatee
RE Mediatee full-screen ads

เมื่อได้รับคำขอจากแอปให้โหลดโฆษณาคั่นระหว่างหน้า ขั้นตอนการทำงานจะเป็นดังนี้

  1. แอป (หรือ RA SDK) จะส่ง SdkActivityLauncher ไปยังสื่อกลางพร้อมคำขอให้โหลดโฆษณา
    1. ไคลเอ็นต์สามารถจำกัดการสร้างกิจกรรมได้ โดยใช้เพรดิเคต
  2. ตัวกลางจะเลือกผู้ไกล่เกลี่ยที่ชนะสำหรับโฆษณานี้
  3. สื่อกลางขอให้สื่อกลางโหลดโฆษณาโดยส่ง SdkActivityLauncher จากแอป
  4. ผู้รับการวัด ลงทะเบียนตัวแฮนเดิลกิจกรรม และรับโทเค็นตัวระบุสําหรับกิจกรรมที่ลงทะเบียน
  5. ผู้รับสื่อใช้ SdkActivityLauncher เพื่อขอเริ่มกิจกรรมโดยใช้โทเค็นนี้
  6. หากเพรดิเคตของแอปไคลเอ็นต์อนุญาต รันไทม์ของ SDK จะเริ่มกิจกรรมนี้ในกระบวนการเฉพาะ
ขั้นตอนการแสดงแอปแบบเต็มหน้าจอที่สื่อกลางจาก RE Mediatee
รูปที่ 4 แผนภาพลำดับงานที่แสดงวิธีโหลดโฆษณาคั่นแบบเต็มหน้าจอที่สื่อกลางจาก RE Mediatee

ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับกิจกรรมสำหรับโฆษณาแบบเต็มหน้าจอใน SDK Runtime

Mediatee ในแอป

แผนภาพสถาปัตยกรรมต่อไปนี้แสดงภาพรวมระดับสูงของการโต้ตอบระหว่าง SDK ของ RE และ RA ของสื่อกลาง, อะแดปเตอร์สื่อกลางที่ไม่รู้จักรันไทม์ของ SDK และ SDK ของสื่อกลางที่ลิงก์แบบคงที่กับแอป (ซึ่งไม่รู้จักรันไทม์ด้วย)

แผนภาพสถาปัตยกรรมที่แสดงภาพรวมระดับสูงของการ
โต้ตอบของ SDK RE และ RA ของสื่อกลาง อะแดปเตอร์สื่อกลางที่
ไม่รู้จักรันไทม์ของ SDK และ SDK ของสื่อกลางที่ลิงก์แบบคงที่กับแอป
(ไม่รู้จักรันไทม์ด้วย)
รูปที่ 5 โดยจะลิงก์แบบคงที่กับแอป แม้ว่าจะทราบเกี่ยวกับ RE SDK ก็ตาม

การเริ่มต้น

เนื่องจากในสถานการณ์นี้ ผู้รับสื่อกลางจะลิงก์แบบคงที่กับแอปและยังไม่ได้ ย้ายข้อมูลไปยังรันไทม์ของ SDK ดังนั้น SDK ที่เปิดใช้รันไทม์ของสื่อกลางควรมีกระบวนการลงทะเบียน

การลงทะเบียนนี้ควรเข้าถึงได้โดยใช้ API ของสื่อกลาง แต่รายละเอียดการติดตั้งใช้งานจะขึ้นอยู่กับดุลยพินิจของสื่อกลางแต่ละราย เราเรียก API นี้ว่า MediationSandboxedSdk#registerInAppMediatee

เมื่อพิจารณาการเริ่มต้น การค้นหา และการสื่อสารของ SDK ตัวกลาง RE และ SDK ตัวกลางในแอป โฟลว์จะเป็นไปตามขั้นตอนต่อไปนี้

  1. แอปจะโหลดและเริ่มต้น SDK ที่รับรู้รันไทม์ของสื่อกลาง
  2. RA SDK ของสื่อกลาง
    1. เริ่มต้น RE SDK ของสื่อกลางโดยใช้ SdkSandboxManager#loadSdk
    2. เริ่มต้น SDK สื่อกลางในแอปทั้งหมด
    3. ค้นหาและลงทะเบียน SDK สื่อกลางในแอปโดยใช้ API ที่ RE SDK MediationSandboxedSdk#registerInAppMediate จัดเตรียมไว้ให้

นอกเหนือจากการลงทะเบียน SDK สื่อกลางในแอปทั้งหมดแล้ว SDK ของ RE ของสื่อกลาง ยังค้นพบ SDK ทั้งหมดที่โหลดในรันไทม์ของ SDK ได้โดยใช้ SdkSandboxController#getSandboxedSdks

ลำดับภาพที่แสดงโฟลว์ที่อธิบายไว้เพื่อเริ่มต้นใช้งาน In-app Mediatee
รูปที่ 6 โปรดทราบว่าเราใช้ API ของสื่อกลางที่แนะนำเพื่อลงทะเบียนการอ้างอิงถึงสื่อกลางในแอป

การนำเสนอ UI ของโฆษณา

ส่วนต่อไปนี้จะครอบคลุมการโหลดแบนเนอร์และโฆษณาแบบเต็มหน้าจอจากสื่อกลางในแอป

โฆษณาแบนเนอร์สื่อกลางในแอป

เมื่อแอปขอให้โหลดโฆษณาแบนเนอร์ ขั้นตอนการแสดงผลให้เสร็จสมบูรณ์ มีดังนี้

  1. SDK ที่รับรู้รันไทม์ของผู้ไกล่เกลี่ยจะส่งต่อคำขอของแอปไปยัง SDK ที่เปิดใช้รันไทม์
  2. SDK ของ RE ของสื่อกลางจะเลือกสื่อกลางที่เกี่ยวข้อง
  3. RE SDK ของสื่อกลางจะดึงข้อมูลอ้างอิงไปยังสื่อกลาง และส่งคำขอ เพื่อโหลดโฆษณาผ่าน RA SDK
  4. RA SDK จะรับ View จากผู้รับสื่อกลางในแอป
  5. RA SDK สร้าง SandboxedUiAdapter สำหรับมุมมองที่ได้รับ
  6. RA SDK จะส่งต่อ UiAdapter ไปยัง RE SDK
  7. RE SDK จะส่งต่อ UiAdapter ไปยังแอป
ขั้นตอนในการแสดงโฆษณาแบนเนอร์จากสื่อกลางในแอปให้เสร็จสมบูรณ์
รูปที่ 7 โปรดทราบว่าตัวกลางไม่ควรซ้อนทับมุมมองเหนือ V1 เมื่อได้รับจากตัวกลางในแอป
โฆษณาแบบเต็มหน้าจอที่แสดงในแอป

เมื่อได้รับคำขอจากแอปให้โหลดโฆษณาคั่นระหว่างหน้า ขั้นตอนการทำงานจะเป็นดังนี้

  1. แอปจะส่ง SdkActivityLauncher ไปยัง SDK ของ RA ของสื่อกลางพร้อมคำขอให้โหลดโฆษณา
    1. ไคลเอ็นต์สามารถจำกัดการสร้างกิจกรรมได้ โดยใช้เพรดิเคต
  2. RA SDK ของสื่อกลางจะส่งต่อคำขอของแอปไปยัง RE SDK
  3. SDK ของ RE ของสื่อกลาง
    1. เลือกสื่อที่เกี่ยวข้อง
    2. ดึงข้อมูลการอ้างอิงถึงผู้รับการวัดผลในแอป
    3. คำขอโหลดโฆษณาผ่าน RA SDK
  4. RA SDK ขอให้สื่อกลางโหลดโฆษณา
  5. ผู้รับการไกล่เกลี่ยเริ่มกิจกรรมโดยตรง ระบบจะไม่สนใจตัวบ่งชี้ของแอป
ขั้นตอนการโหลดโฆษณาแบบเต็มหน้าจอเมื่อผู้รับสื่ออยู่ในกระบวนการของแอป
รูปที่ 8 ผู้รับสื่อในแอปจะไม่สนใจตัวบ่งชี้

มีส่วนร่วมและแชร์ความคิดเห็น

Privacy Sandbox บน Android เป็นโปรเจ็กต์ที่กำลังดำเนินการอยู่ และเอกสารนี้แสดงถึง การออกแบบในปัจจุบัน ความคิดเห็นของคุณมีความสำคัญอย่างยิ่งต่อการพัฒนาและ ปรับปรุงฟีเจอร์ของแอป ยื่นรายงานข้อบกพร่องเพื่อ แสดงความคิดเห็น