สื่อกลางเป็นวิธีทั่วไปที่แพลตฟอร์มโฆษณาฝั่งขายใช้จัดการผลตอบแทน ในเวิร์กโฟลว์สื่อกลาง 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) ของโฆษณา
การเริ่มต้น
ต่อไปนี้แสดงการเริ่มต้นมาตรฐาน การค้นหาเครือข่ายโฆษณา และขั้นตอนการสื่อสาร
- แอปไคลเอ็นต์เริ่มสื่อกลาง
- ตัวสื่อกลางจะค้นหาและเริ่มต้นสื่อกลางและอะแดปเตอร์ที่เกี่ยวข้อง
- โดยสื่อกลางจะใช้อะแดปเตอร์เพื่อสื่อสารกับสื่อกลางแต่ละรายการ
- แอปไคลเอ็นต์ขอให้สื่อกลางโหลดโฆษณา
- แอปไคลเอ็นต์ขอให้สื่อกลางแสดงโฆษณานี้
การนําเสนอ UI ของโฆษณา
การแสดงผลโฆษณาหลังจากคําขอสุดท้ายในขั้นตอนก่อนหน้าจะขึ้นอยู่กับประเภทของโฆษณา ดังนี้
โฆษณาแบนเนอร์ | โฆษณาแบบเต็มหน้าจอ | โฆษณาเนทีฟ |
---|---|---|
SDK สื่อกลางจะสร้างมุมมองโฆษณาซึ่งรวมมุมมองโฆษณาของสื่อกลางที่ชนะ นอกจากนี้ยังอาจตั้งค่า Listeners ในมุมมองนี้ หรือรีเฟรชโฆษณาโดยอัตโนมัติ (โดยใช้ Mediatee เดียวกันหรือ Mediatee อื่น) |
SDK สื่อกลางจะขอโฆษณาแบบเต็มหน้าจอจากสื่อกลาง ซึ่งจะเริ่มต้นกิจกรรม | ผู้เผยแพร่โฆษณาจัดการการจัดการและการเพิ่มขนาดวิวโดยใช้คอมโพเนนต์ที่แสดงโดย Mediator SDK |
ขั้นตอนการสื่อกลางในรันไทม์ของ SDK
วิธีการทำงานของสื่อกลางภายในรันไทม์ SDK จะแตกต่างกันไปโดยขึ้นอยู่กับว่าสื่อกลางเปิดใช้รันไทม์หรือไม่ จากข้อมูลนี้ เรามีสถานการณ์ต่อไปนี้
- ทั้งสื่อกลางและสื่อกลางอยู่ในรันไทม์ SDK: RE mediatee
- ตัวสื่อกลางอยู่ในรันไทม์ของ SDK และตัวสื่อกลางอยู่ในแอป: ตัวสื่อกลางในแอป
RE Mediatee
แผนภาพสถาปัตยกรรมต่อไปนี้แสดงภาพรวมระดับสูงของการโต้ตอบระหว่าง SDK ที่เปิดใช้รันไทม์ (RE) และที่รับรู้รันไทม์ (RA) ของสื่อกลาง อะแดปเตอร์สื่อกลาง RE และ SDK RE ของสื่อกลาง
อะแดปเตอร์สื่อกลางต้องอยู่ในกระบวนการเดียวกับสื่อกลางที่โต้ตอบด้วย จึงจะต้องย้ายข้อมูลไปยังรันไทม์ SDK ด้วย
การเริ่มต้น
เมื่อพิจารณาการเริ่มต้น การค้นพบ และการสื่อสารของทั้งสื่อกลางที่เปิดใช้รันไทม์และสื่อกลาง ขั้นตอนจะเป็นไปตามลำดับต่อไปนี้
- แอป (หรือ RA SDK) จะโหลดและเริ่มต้น Mediator SDK โดยใช้
SdkSandboxManager#loadSdk
- ในระหว่างการเริ่มต้นใช้งาน SDK ตัวกลางจะโหลดและเริ่มต้นใช้งานสื่อกลางที่จําเป็นในรันไทม์ SDK โดยใช้
SdkSandboxController#loadSdk
- RE SDK สามารถค้นหา SDK ที่โหลดทั้งหมดในรันไทม์ได้โดยเรียกใช้
SdkSandboxController#getSandboxedSdks
การนำเสนอ UI ของโฆษณา
ส่วนต่อไปนี้จะอธิบายการโหลดแบนเนอร์และโฆษณาแบบเต็มหน้าจอจากรีมีเดียเทอร์
เกี่ยวกับโฆษณาแบนเนอร์ของ Mediatee
เมื่อได้รับคําขอจากแอปให้โหลดโฆษณาแบนเนอร์ ขั้นตอนการแสดงผลให้เสร็จสมบูรณ์มีดังนี้
- ผู้สื่อกลางจะเลือกสื่อกลางที่ชนะสําหรับโฆษณานี้
- ผู้สื่อกลางได้รับ
SandboxedUiAdapter
จากผู้สื่อ - ตัวสื่อกลางจะส่งต่อ UiAdapter ไปยังแอป
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน SandboxedUiAdapter
และไลบรารี UI รันไทม์ของ SDK
การวางซ้อนโฆษณาแบนเนอร์
หากสื่อกลางต้องการเพิ่มการวางซ้อนลงในโฆษณา จะต้องแก้ไขขั้นตอนดังนี้
- ผู้สื่อกลางสร้างเลย์เอาต์ด้วยการวางซ้อนและ
SandboxedSdkView
- ผู้สื่อกลางจะเลือกสื่อกลางที่ชนะสําหรับโฆษณานี้
- ผู้สื่อกลางได้รับ
SandboxedUiAdapter
จากคู่กรณี - ผู้สื่อกลางตั้งค่า
UiAdapter
ของสื่อกลางเป็นSandboxedSdkView
- ผู้สื่อกลางจะแชร์มุมมองที่สร้างขึ้นกับแอป
เกี่ยวกับโฆษณาแบบเต็มหน้าจอของ Mediatee
เมื่อได้รับคําขอจากแอปให้โหลดโฆษณาแบบเต็มหน้าจอ ขั้นตอนจะเป็นไปตามขั้นตอนต่อไปนี้
- แอป (หรือ RA SDK) จะส่ง
SdkActivityLauncher
ไปยังสื่อกลางพร้อมคําขอโหลดโฆษณา- โดยสามารถจํากัดการสร้างกิจกรรมได้โดยใช้พริเนกติก
- ผู้สื่อกลางจะเลือกสื่อกลางที่ชนะสําหรับโฆษณานี้
- สื่อกลางจะขอให้สื่อกลางโหลดโฆษณา โดยส่ง
SdkActivityLauncher
จากแอป - สื่อกลางจะลงทะเบียนตัวแฮนเดิลกิจกรรม และรับโทเค็นตัวระบุสําหรับกิจกรรมที่ลงทะเบียน
- ผู้รับสื่อใช้
SdkActivityLauncher
เพื่อขอเริ่มกิจกรรมโดยใช้โทเค็นนี้ - หากพริเนกติฟของแอปไคลเอ็นต์อนุญาต รันไทม์ SDK จะเริ่มกิจกรรมนี้ในกระบวนการเฉพาะ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการรองรับกิจกรรมสําหรับโฆษณาแบบเต็มหน้าจอในรันไทม์ SDK
Mediatee ในแอป
แผนภาพสถาปัตยกรรมต่อไปนี้แสดงภาพรวมระดับสูงของการโต้ตอบระหว่าง SDK ของ RE และ RA ของสื่อกลาง อะแดปเตอร์สื่อกลางที่ไม่รู้เกี่ยวกับรันไทม์ของ SDK และ SDK ของสื่อกลางที่ลิงก์กับแอปแบบคงที่ (ไม่รู้จักรันไทม์ด้วย)
การเริ่มต้น
เนื่องจากในสถานการณ์นี้ สื่อกลางจะลิงก์กับแอปแบบคงที่และยังไม่ได้ย้ายข้อมูลไปยังรันไทม์ของ SDK ดังนั้น SDK ที่เปิดใช้รันไทม์ของสื่อกลางควรมีกระบวนการลงทะเบียน
การลงทะเบียนนี้ควรเข้าถึงได้โดยใช้ API ของสื่อกลาง แต่รายละเอียดการใช้งานจะขึ้นอยู่กับดุลยพินิจของสื่อกลางแต่ละราย เราเรียก API นี้ว่า MediationSandboxedSdk#registerInAppMediatee
เมื่อพิจารณาการเริ่มต้น การค้นพบ และการสื่อสารของ SDK ตัวกลางของ RE และ SDK สื่อกลางในแอป ขั้นตอนจะเป็นไปตามลำดับต่อไปนี้
- แอปจะโหลดและเริ่มต้น SDK ที่รับรู้รันไทม์ของสื่อกลาง
- RA SDK ของสื่อกลาง
- เริ่มต้น RE SDK ของสื่อกลางโดยใช้
SdkSandboxManager#loadSdk
- เริ่มต้น SDK สื่อกลางในแอปทั้งหมด
- ค้นหาและลงทะเบียน SDK สื่อกลางในแอปโดยใช้ API ที่ RE SDK
MediationSandboxedSdk#registerInAppMediate
ให้มา
- เริ่มต้น RE SDK ของสื่อกลางโดยใช้
นอกจากการลงทะเบียน SDK ของสื่อกลางในแอปทั้งหมดแล้ว SDK ของ RE ของสื่อกลางยังค้นพบ SDK ทั้งหมดที่โหลดในรันไทม์ของ SDK โดยใช้ SdkSandboxController#getSandboxedSdks
ได้อีกด้วย
การนำเสนอ UI ของโฆษณา
ส่วนต่อไปนี้จะอธิบายการโหลดแบนเนอร์และโฆษณาแบบเต็มหน้าจอจาก Mediatee ในแอป
โฆษณาแบนเนอร์สื่อกลางในแอป
เมื่อได้รับคําขอจากแอปให้โหลดโฆษณาแบนเนอร์ ขั้นตอนการแสดงผลให้เสร็จสมบูรณ์มีดังนี้
- SDK ที่ทราบรันไทม์ของสื่อกลางจะส่งต่อคําขอของแอปไปยัง SDK ที่เปิดใช้รันไทม์
- RE SDK ของสื่อกลางจะเลือกสื่อกลางที่เกี่ยวข้อง
- RE SDK ของสื่อกลางจะดึงข้อมูลอ้างอิงไปยังสื่อกลาง และส่งคําขอโหลดโฆษณาผ่าน RA SDK
- RA SDK จะได้รับมุมมองจากสื่อกลางในแอป
- RA SDK จะสร้าง
SandboxedUiAdapter
สำหรับมุมมองที่ได้รับ - RA SDK จะส่งต่อ
UiAdapter
ไปยัง RE SDK - RE SDK จะส่งต่อ
UiAdapter
ไปยังแอป
โฆษณาแบบเต็มหน้าจอในแอปที่มีสื่อกลาง
เมื่อได้รับคําขอจากแอปให้โหลดโฆษณาแบบเต็มหน้าจอ ขั้นตอนจะเป็นไปตามขั้นตอนต่อไปนี้
- แอปส่ง
SdkActivityLauncher
ไปยัง RA SDK ของสื่อกลางพร้อมคําขอโหลดโฆษณา- โดยสามารถจํากัดการสร้างกิจกรรมได้โดยใช้พริเนกต์
- SDK ของ RA ของสื่อกลางจะส่งต่อคําขอของแอปไปยัง SDK ของ RE
- RE SDK ของสื่อกลาง
- เลือกสื่อกลางที่เกี่ยวข้อง
- ดึงข้อมูลอ้างอิงไปยังสื่อกลางในแอป
- คำขอโหลดโฆษณาผ่าน RA SDK
- RA SDK ขอให้สื่อกลางโหลดโฆษณา
- ผู้รับสื่อเริ่มกิจกรรมโดยตรง ระบบจะไม่ใช้นิพจน์เชิงตรรกะของแอป
มีส่วนร่วมและแชร์ความคิดเห็น
Privacy Sandbox ใน Android เป็นโปรเจ็กต์ที่อยู่ระหว่างดำเนินการ และเอกสารนี้แสดงถึงการออกแบบในปัจจุบัน ความคิดเห็นของคุณเป็นสิ่งสำคัญอย่างยิ่งสำหรับเราขณะที่เราพัฒนาและปรับปรุงฟีเจอร์ต่างๆ ต่อไป รายงานข้อบกพร่องเพื่อแสดงความคิดเห็น