รูปแบบโฆษณาเนทีฟช่วยให้ผู้เผยแพร่โฆษณาปรับแต่งโฆษณาที่แสดงต่อผู้ใช้ได้ หลังจากดึงโฆษณาจาก SDK แล้ว ผู้เผยแพร่โฆษณาสามารถเปลี่ยนเลย์เอาต์ และลักษณะของโฆษณาเพื่อให้สอดคล้องกับอินเทอร์เฟซผู้ใช้ของแอปพลิเคชันได้ดียิ่งขึ้น เช่น การเพิ่ม ฟิลเตอร์สี การเปลี่ยนการจัดรูปแบบข้อความ และการเพิ่มภาพซ้อนทับที่กำหนดเอง เพื่อเพิ่มประสิทธิภาพหรือประสบการณ์ของผู้ใช้ของโฆษณาเนทีฟ ผู้เผยแพร่โฆษณามักจะกำหนดขีดจำกัดการแสดงผลหรือส่งต่อการเล่นวิดีโอไปยัง SDK สุดท้าย ผู้เผยแพร่โฆษณาสามารถปรับแต่ง เครื่องมือตรวจหาการคลิกโฆษณาเพื่อตรวจสอบเหตุการณ์เพิ่มเติม เช่น การปัดขึ้น
รูปแบบโฆษณาเนทีฟต้องอาศัยความน่าเชื่อถือในระดับสูงกว่าสำหรับผู้เผยแพร่โฆษณา เมื่อเทียบกับรูปแบบโฆษณาอื่นๆ โดยปกติแล้ว SDK จะต้องการตรวจหาการละเมิดนโยบาย และยืนยันว่าเนื้อหาโฆษณาที่มอบให้ผู้เผยแพร่โฆษณาแสดงต่อผู้ใช้
การรองรับโฆษณาแบนเนอร์ในรันไทม์ของ SDK จะทำได้ผ่าน API SurfaceControlViewHost ซึ่งช่วยให้ SDK แสดงองค์ประกอบของอินเทอร์เฟซผู้ใช้
จากกระบวนการรันไทม์ของ SDK ได้โดยไม่ต้องให้แอปพลิเคชันไคลเอ็นต์
ดัดแปลง ใช้โหมด SurfaceView Z above หรือ Z below เพื่อพิจารณา
ว่าพื้นผิวที่แสดง UI ของ SDK อยู่เหนือหรือใต้หน้าต่างของแอปพลิเคชันไคลเอ็นต์
เมื่อแสดงโฆษณาโดยใช้โหมด Z above SDK จะได้รับ MotionEvents จากการโต้ตอบของผู้ใช้ แต่มุมมองของแอปพลิเคชันไคลเอ็นต์จะไม่ปรากฏเหนือโฆษณา เมื่อแสดงโฆษณาในโหมด Z ด้านล่าง แอปพลิเคชันจะแสดงมุมมองของตัวเองเหนือโฆษณา แต่MotionEventsจากการโต้ตอบของผู้ใช้ในโฆษณาจะไปที่แอปพลิเคชัน ไม่ใช่ SDK
SDK และผู้เผยแพร่โฆษณาสามารถใช้ไลบรารี Jetpack privacysandbox.ui เพื่อสร้างและรักษาเซสชัน UI ได้
คอนเทนเนอร์โฆษณาที่เป็นของแอป
เราได้สร้างต้นแบบที่อนุญาตให้ SDK เป็นเจ้าของมุมมองทั้งหมดที่ประกอบกันเป็นโฆษณาเนทีฟ (รวมถึง
การวางซ้อนของแอปพลิเคชัน) และพบว่าแม้จะทำได้ แต่ก็มีข้อจำกัดบางอย่าง
ใน UI และเพิ่มความซับซ้อนในการผสานรวมกับ SDK แนวทางที่
สมเหตุสมผลกว่าคือการปล่อยให้แอปพลิเคชันเป็นเจ้าของมุมมองส่วนใหญ่ SDK ยังคงเลือกที่จะแสดง UI บางอย่างด้วยตนเองได้ เช่น มุมมองโฆษณา โดยใช้ SandboxedSdkView
จาก privacysandbox.ui แนวทางนี้มีความยืดหยุ่นมากที่สุดในวิธีที่ระบบรองรับกรณีการใช้งานที่มีอยู่และในอนาคตสำหรับรูปแบบโฆษณานี้ โดยแนวทางนี้ช่วยให้นักพัฒนาแอปสามารถย้ายคอมโพเนนต์โฆษณาไปมาและจัดรูปแบบได้ตามต้องการ ขณะที่ SDK จะยังคงเป็นเจ้าของวิดีโอเพลเยอร์ (หากต้องการ) และยังคงเข้าถึงตัวควบคุมสื่อได้
การแจ้งเตือนเกี่ยวกับสถานะโฆษณา
SDK แต่ละรายการจะดูพร็อพเพอร์ตี้ที่แตกต่างกันของการดูโฆษณาเพื่อตรวจหาการฉ้อโกงและการละเมิดนโยบาย
เราต้องการรองรับการดำเนินการนี้โดยไม่ต้องกำหนดพร็อพเพอร์ตี้ที่จะใช้ หรือกลายเป็นคอขวดสำหรับ SDK ที่เปลี่ยนชุดพร็อพเพอร์ตี้ที่ค้นหา เราขอเสนอให้สร้างการแสดงคอนเทนเนอร์โฆษณา
และมุมมองลูกๆ ของคอนเทนเนอร์โดยใช้ NativeAdContainerInfo ซึ่งจะเป็นออบเจ็กต์ที่ส่งผ่านได้
พร้อมตัวรับค่าต่างๆ ที่แสดงข้อมูลซึ่งจำกัดไว้เฉพาะคอนเทนเนอร์โฆษณาและ
เนื้อหาของคอนเทนเนอร์ โดยข้อมูลดังกล่าวจะรักษาความเป็นส่วนตัวและคำนวณได้ไม่ยาก SDK จะเลือกใช้หมวดหมู่ของสัญญาณที่รวมอยู่ใน
NativeAdContainerInfo ได้ SDK จะได้รับออบเจ็กต์นี้เมื่อใดก็ตามที่สถานะโฆษณา
เปลี่ยนแปลงในลักษณะที่เกี่ยวข้องกับ SDK เช่น เหตุการณ์ที่เรียกเก็บเงินได้ เช่น การแสดงโฆษณา
และการคลิกของผู้ใช้`
นอกจากนี้ ผู้เผยแพร่โฆษณายังเพิ่มแท็กเฉพาะมุมมอง (สตริง) ลงใน
แต่ละองค์ประกอบย่อยที่เพิ่มลงใน NativeAdContainer ได้ด้วย ซึ่งใช้เพื่อแจ้งให้ SDK ทราบ
ว่าชิ้นงานโฆษณาใดที่สอดคล้องกับแต่ละองค์ประกอบย่อย
เมื่อผู้ใช้คลิกมุมมองที่ SDK เป็นเจ้าของ ไลบรารี UI จะส่งต่อ MotionEvent พร้อมพร็อพเพอร์ตี้ที่แปลเป็นพื้นที่พิกัดของ SDK ไปยัง SDK พร้อมกับ MotionEvent เดิม
สำหรับ Android เวอร์ชันในอนาคต เรากำลัง
พิจารณาเพิ่มวิธีที่ช่วยให้แอปพลิเคชันไคลเอ็นต์โอนโฟกัสการแตะสำหรับ
ท่าทางสัมผัสของผู้ใช้ทั้งหมดในส่วนของโฆษณาเนทีฟนี้ที่ SDK เป็นเจ้าของให้ SDK จัดการ
เอกสารรับรอง
SDK จะได้รับการรับรองต่อไปนี้เพื่อให้มั่นใจได้มากขึ้น เกี่ยวกับการนำเสนอโฆษณา
- การรับรองความสมบูรณ์ของอุปกรณ์: ใช้ API ของแพลตฟอร์ม เช่น Key Attestation เพื่อพิจารณาความสมบูรณ์ของอุปกรณ์
- ข้อมูลระบุตัวตนของ APK: ใช้ SdkSandbox API เช่น
SdkSandboxController.getClientPackageNameและ PackageManager API เช่นrequestChecksumเพื่อยืนยันข้อมูลระบุตัวตนของ APK VerifiedMotionEvents: ใน Android เวอร์ชันต่อๆ ไป เรากำลังพิจารณา การอนุญาตให้แอปพลิเคชันไคลเอ็นต์โอนโฟกัสการแตะสำหรับท่าทางสัมผัสทั้งหมดของผู้ใช้ ในส่วนของโฆษณาเนทีฟนี้ที่ SDK เป็นเจ้าของเพื่อให้ SDK จัดการMotionEventsสามารถแปลงเป็นVerifiedMotionEventsได้โดยใช้ System API SDK สามารถแสดง UI ของตัวเองเพื่อตอบสนองต่อการโต้ตอบของผู้ใช้ได้หากต้องการ
คำถามเปิด
- คุณต้องการให้ SDK สร้าง
VerifiedMotionEventsเอง หรือให้ไลบรารี UI ของผู้ให้บริการสร้างให้ SDK - SDK ควรให้ผู้เผยแพร่โฆษณาเป็นเจ้าของมุมมองที่มีวิดีโอ หรือควรเป็นเจ้าของมุมมองเหล่านี้เอง
- คุณต้องการให้รวมพร็อพเพอร์ตี้ใดไว้ในออบเจ็กต์
AppOwnedAdContainerInfo - คุณคาดว่าจะแสดงโฆษณาหรือคอมโพเนนต์โฆษณาที่ SDK เป็นเจ้าของกี่รายการพร้อมกันบนหน้าจอ