يمكن تحليل مزادات شرائح الجمهور المحمية (إما مرئيًا أو بواسطة استعلام SQL باستخدام Perfetto. يمكن لتقنيات الإعلان استخدام عملية إنشاء الملفات التعريفية من خلال Perfetto لقياس أداء مزادات Protected Audience API بما في ذلك:
- مدة وحدة المعالجة المركزية (CPU) للنص البرمجي لعروض الأسعار والنتائج
- وقت استجابة طلبات HTTP، مثل خدمة المفتاح/القيمة
- تأثير أداء ذاكرة التخزين المؤقت على البارد مقابل ذاكرة التخزين المؤقت
- جمهور مخصّص أكثر مقابل عدد أقل من الجماهير المخصّصة
- مجموعات إشارات أكبر مقابل مجموعات أصغر
- اختلاف النصوص البرمجية لمنطق عروض الأسعار لكل جمهور مخصّص مقارنةً باستخدام النص البرمجي نفسه لجميع عروض الأسعار
ضبط إعدادات الجهاز
استنسِخ مستودعات Perfetto و"مبادرة حماية الخصوصية".
git clone https://android.googlesource.com/platform/external/perfetto
git clone https://github.com/android/privacy-sandbox-samples
في "استوديو Android"، افتح نموذج تطبيق 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>"
إيقاف/تفعيل قسم "إخفاء الأحذية" لضمان توفُّر جمهور مخصّص واحد على الأقل نشط
سجِّل عملية تتبُّع باستخدام trace_config.textproto من مستودع GitHub ضمن "مبادرة حماية الخصوصية":
./perfetto/tools/record_android_trace \ -c path/to/trace_config.textproto
انقر على "عرض اختيار الإعلان" الزر وانتظار نتائج المزاد. عندما يكتمل المزاد، تعرض المخرجات رسالة مثل "هل سيتم عرض إعلان من
http://example.com/bidding/render_shoes
".في الوحدة الطرفية، عليك إنهاء برنامج "
record_android_trace
" (الضغط على CTRL+C) من أجل إنهاء التتبع. يتم فتح واجهة مستخدم Perfetto في المتصفِّح مع التتبُّع. تم تحميل البيانات.
استكشاف آثار الأنشطة مرئيًا في Perfetto
البحث عن "RunOnDeviceAdSelection" باستخدام شريط العناوين أعلى واجهة المستخدم. انقر على Enter لإكمال البحث وعرض النتائج:
انقر على سجلّ تتبُّع لفحصه. تفاصيل مثل وقت استجابة التنفيذ المتوفرة هنا.
شرائح التتبُّع الخاصة بالجمهور المحمية
إنّ مزاد "استخدام الجمهور المحمي" هو عملية معقّدة، وهناك العديد من الطرق القطاعات التي تم التقاطها بواسطة تتبُّع 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';
قم بتشغيل الاستعلام وافحص النتائج.