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

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

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

  • ความแตกต่างระหว่างขั้นตอนการสื่อกลางก่อนหน้านี้กับรันไทม์ SDK ในปัจจุบันที่รองรับสื่อกลาง
  • ตั้งค่าการดําเนินการสำหรับเวิร์กโฟลว์สื่อกลางในรันไทม์ 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 หรืออะแดปเตอร์ที่กําหนดเองของผู้เผยแพร่โฆษณา
  • สื่อกลาง: SDK สื่อกลางโฆษณาที่ให้บริการสื่อกลางในอุปกรณ์โดยโต้ตอบกับ SDK เครือข่ายโฆษณาอื่นๆ
  • Mediatee: SDK เครือข่ายโฆษณาที่ Mediator เรียกให้แสดงและแสดงโฆษณา
  • Mediation Adapter: SDK ที่ใช้โดย Mediator SDK เพื่อให้บริการแปลอินเทอร์เฟซ API เพื่อทํางานร่วมกับ SDK ของสื่อกลางต่างๆ ซึ่งโดยปกติแล้วจะเป็นของสื่อกลาง ซึ่งอาจเป็นแบบรับรู้รันไทม์หรือไม่รับรู้รันไทม์ก็ได้

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

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

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

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

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

การเริ่มต้น

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

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

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

การแสดงผลโฆษณาหลังจากคําขอสุดท้ายในขั้นตอนก่อนหน้าจะขึ้นอยู่กับประเภทของโฆษณา ดังนี้

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

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

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

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

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

RE Mediatee

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

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

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

การเริ่มต้น

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

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

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

ส่วนต่อไปนี้จะอธิบายการโหลดแบนเนอร์และโฆษณาแบบเต็มหน้าจอจากรีมีเดียเทอร์

เกี่ยวกับโฆษณาแบนเนอร์ของ 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
เกี่ยวกับโฆษณาแบบเต็มหน้าจอของ Mediatee

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

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

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

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 ได้อีกด้วย

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

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

ส่วนต่อไปนี้จะอธิบายการโหลดแบนเนอร์และโฆษณาแบบเต็มหน้าจอจาก Mediatee ในแอป

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

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

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

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

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

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

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