คุณวิเคราะห์การประมูลที่ใช้ Protected Audience API ได้ (ด้วยภาพหรือ ตามการค้นหา SQL ด้วย Perfetto เทคโนโลยีโฆษณาสามารถใช้การทำโปรไฟล์ ร่วมกับ Perfetto เพื่อวัดประสิทธิภาพของการประมูลที่ใช้ Protected Audience API ซึ่งรวมถึง
- การเสนอราคาและการให้คะแนนเวลา CPU ของสคริปต์
- เวลาในการตอบสนองของคำขอ HTTP เช่น บริการจัดการคีย์/ค่า
- ผลกระทบด้านประสิทธิภาพของแคชเย็นเทียบกับแคชร้อน
- กลุ่มเป้าหมายที่กำหนดเองมากขึ้นเทียบกับกลุ่มเป้าหมายที่กำหนดเองน้อยลง
- ชุดสัญญาณที่มีขนาดใหญ่และเล็กลง
- สคริปต์ตรรกะการเสนอราคาที่แตกต่างกันต่อกลุ่มเป้าหมายที่กำหนดเองเมื่อเทียบกับการใช้ สคริปต์เดียวกันสำหรับการเสนอราคาทั้งหมด
ตั้งค่า
โคลนที่เก็บ Perfetto และ Privacy Sandbox
git clone https://android.googlesource.com/platform/external/perfetto
git clone https://github.com/android/privacy-sandbox-samples
ใน Android Studio ให้เปิดแอปตัวอย่าง Protected Audience จาก ไดเรกทอรี
privacy-sandbox-samples/Fledge/FledgeKotlin
สร้างและติดตั้งแอปตัวอย่างในอุปกรณ์ทดสอบหรือโปรแกรมจำลอง
เรียกใช้การประมูลและติดตาม Perfetto
- ตั้งค่าและทำให้ปลายทาง HTTPS ทดสอบใช้งานได้ จด URL ของ ปลายทางที่โฮสต์ไว้ตามที่แอปเดโมของ Protected Audience ต้องใช้ในการ
เปิดแอปเดโมที่ระบุ URL ปลายทางทดสอบ แทนที่
<test-endpoint-url>
โดยใช้ URL ปลายทางที่โฮสต์ซึ่งคุณบันทึกไว้ใน ขั้นตอนก่อนหน้าadb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \ -e baseUrl "<test-endpoint-url>"
สลับ "Shoes CA" เพื่อให้แน่ใจว่ามีกลุ่มเป้าหมายที่กำหนดเองอย่างน้อย 1 กลุ่มที่ใช้งานอยู่
บันทึกการติดตามโดยใช้ไฟล์ trace_config.textprotocol จากที่เก็บ GitHub ของ Privacy Sandbox DevTools ดังนี้
./perfetto/tools/record_android_trace \ -c path/to/trace_config.textproto
แตะ "เรียกใช้การเลือกโฆษณา" และรอผลการประมูล เมื่อ การประมูลเสร็จสมบูรณ์ เอาต์พุตจะแสดงข้อความ เช่น "จะแสดง โฆษณาจาก
http://example.com/bidding/render_shoes
"ในเทอร์มินัล ให้สิ้นสุด (Ctrl+C) โปรแกรม
record_android_trace
เพื่อ เสร็จสิ้นการติดตาม UI ของ Perfetto จะเปิดขึ้นในเบราว์เซอร์พร้อมกับการติดตาม โหลดข้อมูลแล้ว
สำรวจร่องรอยต่างๆ ผ่านสายตาใน Perfetto
ค้นหา "RunOnDeviceAdSelection" โดยใช้แถบที่อยู่ที่ด้านบนของ UI คลิก Enter เพื่อค้นหาให้เสร็จสมบูรณ์และแสดงผลลัพธ์
คลิกการติดตามเพื่อตรวจสอบ รายละเอียดต่างๆ เช่น เวลาในการตอบสนองของการดำเนินการ ที่นี่
กลุ่มการติดตามที่เจาะจงสำหรับ Protected Audience
การประมูลที่ใช้ Protected Audience API เป็นกระบวนการที่ซับซ้อนและก็มี เซกเมนต์ที่บันทึกโดยการติดตาม Perfetto ตารางนี้แสดงข้อมูลสิ่งที่การติดตามแต่ละรายการ กลุ่มแทน
เวลา | กลุ่ม | คำอธิบาย | ความถี่ |
---|---|---|---|
ก่อนการประมูล | RunOnDeviceAdSelection |
การประมูลแบบครบวงจร | ต่อการประมูล |
การเสนอราคา (ฝั่งซื้อ) | FilterContextualAds |
กรองการติดตั้งแอปและความถี่สูงสุดในโฆษณาตามบริบท | ต่อการประมูล |
GetBuyersCustomAudience |
โหลดกลุ่มเป้าหมายที่กำหนดเองของผู้ซื้อจากฐานข้อมูล | ต่อผู้ซื้อ | |
FilterCustomAudiences |
กรองการติดตั้งแอปและความถี่สูงสุดในกลุ่มเป้าหมายที่กำหนดเอง | ต่อการประมูล | |
GetTrustedBiddingSignals |
โหลดสัญญาณการเสนอราคาของผู้ซื้อ | ต่อผู้ซื้อ | |
RunBiddingPerCustomAudience |
การเสนอราคาโฆษณาสำหรับกลุ่มเป้าหมายที่กำหนดเองกลุ่มเดียว | ต่อกลุ่มเป้าหมายที่กำหนดเอง | |
GetBuyerDecisionLogic |
โหลด JavaScript ของผู้ซื้อจากเครือข่ายหรือฐานข้อมูล หากแคช | ต่อกลุ่มเป้าหมายที่กำหนดเอง | |
RunBidding |
การเรียกใช้ JavaScript สำหรับผู้ซื้อ | ต่อผู้ซื้อ | |
GenerateBids |
การดำเนินการ JavaScript สำหรับกลุ่มเป้าหมายที่กำหนดเอง | ต่อกลุ่มเป้าหมายที่กำหนดเอง | |
การให้คะแนน (ฝั่งขาย) | GetTrustedScoringSignals |
โหลดสัญญาณการให้คะแนนของผู้ขาย | ต่อผู้ขาย |
RunAdScoring |
การดำเนินการ JavaScript สำหรับการให้คะแนน | ต่อการประมูล | |
ScoreAd |
การเรียกใช้ JavaScript สำหรับโฆษณา | ต่อโฆษณา | |
GetAdSelectionLogic |
โหลดตรรกะการเลือกโฆษณาของผู้ขาย | ต่อการประมูล | |
RunAdOutcomeSelection |
การกรองขั้นสุดท้าย | ต่อการประมูล | |
หลังการประมูล | PersistOnDeviceAdSelection |
เขียนผลการประมูลไปยังฐานข้อมูล | ต่อการประมูล |
การค้นหาเวลาในการตอบสนองของการดำเนินการโดยเฉลี่ย
Perfetto สามารถใช้การค้นหา SQL เพื่อวัดผลที่แม่นยำของสิ่งที่เกิดขึ้น ภายในการติดตามที่เฉพาะเจาะจง
ส่วนนี้จะแสดงวิธีวัดเวลาในการตอบสนองของการดำเนินการโดยเฉลี่ยสำหรับ การดำเนินการกับ JavaScript
- ใน Perfetto ให้ไปที่ "Query (SQL)" ในแผงการนำทางด้านซ้าย
ป้อนคำค้นหาต่อไปนี้
SELECT AVG(dur) FROM slice WHERE slice.name GLOB 'FetchPayload';
ดำเนินการค้นหาและตรวจสอบผลลัพธ์