โฆษณาเนทีฟบน Android

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

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

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

SDK และผู้เผยแพร่โฆษณาใช้ไลบรารี Jetpack privacysandbox.ui เพื่อสร้างและดูแลเซสชัน UI ได้

คอนเทนเนอร์โฆษณาที่แอปเป็นเจ้าของ

เราสร้างต้นแบบให้ SDK เป็นเจ้าของการแสดงผลทั้งหมดที่ประกอบด้วยโฆษณาเนทีฟ (รวมถึงโฆษณาซ้อนทับของแอปพลิเคชัน) และพบว่าแม้จะทำได้ แต่ก็ยังจำกัด UI และเพิ่มความซับซ้อนในการรวมเข้ากับ SDK แนวทางที่ยึดมั่นในตัวเองมากขึ้นคือให้แอปพลิเคชันเป็นเจ้าของยอดดูมากที่สุด SDK จะยังคงเลือกแสดง UI บางส่วน เช่น การดูโฆษณา ได้โดยใช้ SandboxedSdkView จาก privacysandbox.ui แนวทางนี้มีความยืดหยุ่นมากที่สุดในการรองรับ Use Case ที่มีอยู่และในอนาคตสําหรับรูปแบบโฆษณานี้ วิธีการนี้ช่วยให้นักพัฒนาแอปสามารถย้ายองค์ประกอบโฆษณาไปปรับเปลี่ยนต่างๆ และปรับสไตล์ได้ตามต้องการ ในขณะที่ SDK จะยังคงเป็นเจ้าของโปรแกรมเล่นวิดีโอ หากต้องการ และยังคงรักษาสิทธิ์เข้าถึงการควบคุมสื่อไว้ได้

แผนภาพที่แสดงการถ่ายโอนข้อมูลระหว่างผู้เผยแพร่โฆษณากับ SDK
ขั้นตอนการควบคุมโฆษณาเนทีฟที่เสนอ

การแจ้งเตือนเกี่ยวกับสถานะโฆษณา

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

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

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

เอกสารรับรอง

SDK จะใช้เอกสารรับรองต่อไปนี้เพื่อยืนยันการแสดงโฆษณาได้อย่างมีประสิทธิภาพยิ่งขึ้น

  1. เอกสารรับรองความสมบูรณ์ของอุปกรณ์: ใช้ API ของแพลตฟอร์ม เช่น เอกสารรับรองคีย์ เพื่อตรวจสอบความสมบูรณ์ของอุปกรณ์
  2. ข้อมูลประจำตัวของ APK: ใช้ SdkSandbox API เช่น SdkSandboxController.getClientPackageName และ PackageManager API เช่น requestChecksum เพื่อยืนยันตัวตนของ APK
  3. VerifiedMotionEvents: ใน Android เวอร์ชันต่อๆ ไป เรากำลังพัฒนาให้แอปพลิเคชันไคลเอ็นต์โอนโฟกัสการสัมผัสสำหรับท่าทางสัมผัสผู้ใช้ทั้งหมดในส่วนที่เป็นของ SDK ของโฆษณาเนทีฟนี้ เพื่อให้ SDK จัดการได้ MotionEvents แปลงเป็น VerifiedMotionEvents ได้โดยใช้ API ของระบบ SDK สามารถแสดง UI ของตัวเองเพื่อตอบสนองต่อการโต้ตอบของผู้ใช้หากพวกเขาเลือก

คำถามปลายเปิด

เราขอเชิญชวนความคิดเห็นเกี่ยวกับประเด็นต่อไปนี้

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