Protected Audience API से जुड़ी नीलामी का विश्लेषण किया जा सकता है. इसके लिए, Perfetto की मदद से, विज़ुअल या एसक्यूएल क्वेरी का इस्तेमाल किया जा सकता है. विज्ञापन टेक्नोलॉजी कंपनियां, Perfetto के साथ प्रोफ़ाइलिंग का इस्तेमाल करके, Protected Audience API से जुड़ी नीलामी की परफ़ॉर्मेंस का आकलन कर सकती हैं. जैसे:
- बिडिंग और स्कोरिंग स्क्रिप्ट का सीपीयू समय
- एचटीटीपी अनुरोधों में लगने वाला समय, जैसे कि कुंजी/वैल्यू सेवा
- कोल्ड कैश और हॉट कैश का परफ़ॉर्मेंस पर असर
- ज़्यादा बनाम कम कस्टम ऑडियंस
- सिग्नल के बड़े और छोटे सेट
- सभी बिडिंग के लिए एक ही स्क्रिप्ट का इस्तेमाल करने के बजाय, हर कस्टम ऑडियंस के लिए बिडिंग लॉजिक की अलग-अलग स्क्रिप्ट
सेटअप
Perfetto और Privacy Sandbox की रिपॉज़िटरी क्लोन करें.
git clone https://android.googlesource.com/platform/external/perfettogit clone https://github.com/android/privacy-sandbox-samplesAndroid Studio में,
privacy-sandbox-samples/Fledge/FledgeKotlinडायरेक्ट्री से Protected Audience का सैंपल ऐप्लिकेशन खोलें.अपने टेस्ट डिवाइस या एम्युलेटर पर सैंपल ऐप्लिकेशन बनाएं और उसे इंस्टॉल करें.
नीलामी चलाएं और Perfetto ट्रेस लें
- एचटीटीपीएस वाले टेस्ट एंडपॉइंट सेट अप और डिप्लॉय करें. होस्ट किए गए एंडपॉइंट के यूआरएल नोट कर लें. इनकी ज़रूरत Protected Audience के डेमो ऐप्लिकेशन को काम करने के लिए होती है.
टेस्ट एंडपॉइंट यूआरएल के साथ डेमो ऐप्लिकेशन लॉन्च करें.
<test-endpoint-url>की जगह, होस्ट किया गया वह एंडपॉइंट यूआरएल डालें जिसे आपने पिछले चरण में रिकॉर्ड किया था.adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \ -e baseUrl "<test-endpoint-url>""Shoes CA" को टॉगल करें, ताकि यह पुष्टि की जा सके कि कम से कम एक कस्टम ऑडियंस चालू है.
Protected Audience Demo App. Privacy Sandbox DevTools की GitHub रिपॉज़िटरी से trace_config.textproto फ़ाइल का इस्तेमाल करके, ट्रेस रिकॉर्ड करें:
./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 में, खरीदार के लिए Protected Audience API से जुड़ी नीलामी. किसी ट्रेस की जांच करने के लिए, उस पर क्लिक करें. एक्ज़ीक्यूशन में लगने वाले समय जैसी जानकारी यहां उपलब्ध है.
ट्रेस सेगमेंट की जांच करना.
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, एसक्यूएल क्वेरी का इस्तेमाल करके यह पता लगा सकता है कि किसी खास ट्रेस में क्या हो रहा है.
इस सेक्शन में, JavaScript के एक्ज़ीक्यूशन की औसत लेटेन्सी को मेज़र करने का तरीका बताया गया है.
- Perfetto में, बाईं ओर मौजूद नेविगेशन पैन में "क्वेरी (SQL)" पर जाएं.
यह क्वेरी डालें:
SELECT AVG(dur) FROM slice WHERE slice.name GLOB 'FetchPayload';क्वेरी चलाएं और नतीजों की जांच करें.
एसक्यूएल क्वेरी के नतीजे नैनोसेकंड में मिलते हैं.