Protected Audience API से जुड़ी नीलामी की प्रोफ़ाइल बनाना

Protected Audience API से जुड़ी नीलामी का विश्लेषण किया जा सकता है. इसके लिए, Perfetto की मदद से, विज़ुअल या एसक्यूएल क्वेरी का इस्तेमाल किया जा सकता है. विज्ञापन टेक्नोलॉजी कंपनियां, Perfetto के साथ प्रोफ़ाइलिंग का इस्तेमाल करके, Protected Audience API से जुड़ी नीलामी की परफ़ॉर्मेंस का आकलन कर सकती हैं. जैसे:

  • बिडिंग और स्कोरिंग स्क्रिप्ट का सीपीयू समय
  • एचटीटीपी अनुरोधों में लगने वाला समय, जैसे कि कुंजी/वैल्यू सेवा
  • कोल्ड कैश और हॉट कैश का परफ़ॉर्मेंस पर असर
  • ज़्यादा बनाम कम कस्टम ऑडियंस
  • सिग्नल के बड़े और छोटे सेट
  • सभी बिडिंग के लिए एक ही स्क्रिप्ट का इस्तेमाल करने के बजाय, हर कस्टम ऑडियंस के लिए बिडिंग लॉजिक की अलग-अलग स्क्रिप्ट

सेटअप

  1. Perfetto और Privacy Sandbox की रिपॉज़िटरी क्लोन करें.

    git clone https://android.googlesource.com/platform/external/perfetto
    git clone https://github.com/android/privacy-sandbox-samples
  2. Android Studio में, privacy-sandbox-samples/Fledge/FledgeKotlin डायरेक्ट्री से Protected Audience का सैंपल ऐप्लिकेशन खोलें.

  3. अपने टेस्ट डिवाइस या एम्युलेटर पर सैंपल ऐप्लिकेशन बनाएं और उसे इंस्टॉल करें.

नीलामी चलाएं और Perfetto ट्रेस लें

  1. एचटीटीपीएस वाले टेस्ट एंडपॉइंट सेट अप और डिप्लॉय करें. होस्ट किए गए एंडपॉइंट के यूआरएल नोट कर लें. इनकी ज़रूरत Protected Audience के डेमो ऐप्लिकेशन को काम करने के लिए होती है.
  2. टेस्ट एंडपॉइंट यूआरएल के साथ डेमो ऐप्लिकेशन लॉन्च करें. <test-endpoint-url> की जगह, होस्ट किया गया वह एंडपॉइंट यूआरएल डालें जिसे आपने पिछले चरण में रिकॉर्ड किया था.

    adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \
      -e baseUrl "<test-endpoint-url>"
  3. "Shoes CA" को टॉगल करें, ताकि यह पुष्टि की जा सके कि कम से कम एक कस्टम ऑडियंस चालू है.

    डेमो ऐप्लिकेशन में Shoes CA को टॉगल करके चालू किया गया हो.
    Protected Audience Demo App.
  4. Privacy Sandbox DevTools की GitHub रिपॉज़िटरी से trace_config.textproto फ़ाइल का इस्तेमाल करके, ट्रेस रिकॉर्ड करें:

    ./perfetto/tools/record_android_trace \
      -c path/to/trace_config.textproto
  5. "विज्ञापन चुनने की प्रोसेस शुरू करें" बटन पर टैप करें और नीलामी के नतीजों का इंतज़ार करें. नीलामी पूरी होने पर, आउटपुट में "http://example.com/bidding/render_shoes का विज्ञापन दिखेगा" जैसा मैसेज दिखता है.

  6. ट्रेस पूरा करने के लिए, अपने टर्मिनल में record_android_trace प्रोग्राम को बंद करें (CTRL+C). आपके ब्राउज़र में Perfetto यूज़र इंटरफ़ेस (यूआई) खुलेगा. इसमें ट्रेस डेटा लोड होगा.

Perfetto में ट्रेस को विज़ुअली एक्सप्लोर करना

  1. यूज़र इंटरफ़ेस (यूआई) में सबसे ऊपर मौजूद पता बार का इस्तेमाल करके, "RunOnDeviceAdSelection" खोजें. खोज पूरी करने और नतीजे दिखाने के लिए, Enter पर क्लिक करें:

    Perfetto यूज़र इंटरफ़ेस (यूआई) में Protected Audience API से जुड़ी नीलामी दिख रही है. RunOnDeviceAdSelection और RunBidding जैसे ट्रैक दिखते हैं.
    Perfetto में, खरीदार के लिए Protected Audience API से जुड़ी नीलामी.
  2. किसी ट्रेस की जांच करने के लिए, उस पर क्लिक करें. एक्ज़ीक्यूशन में लगने वाले समय जैसी जानकारी यहां उपलब्ध है.

    इस इमेज में, Perfetto के यूज़र इंटरफ़ेस (यूआई) में किसी ट्रेस सेगमेंट की जांच करते हुए दिखाया गया है. लेटेंसी की जानकारी दिखती है.
    ट्रेस सेगमेंट की जांच करना.

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 के एक्ज़ीक्यूशन की औसत लेटेन्सी को मेज़र करने का तरीका बताया गया है.

  1. Perfetto में, बाईं ओर मौजूद नेविगेशन पैन में "क्वेरी (SQL)" पर जाएं.
  2. यह क्वेरी डालें:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. क्वेरी चलाएं और नतीजों की जांच करें.

    एसक्यूएल क्वेरी के नतीजे. औसत इंतज़ार का समय 17693688 नैनोसेकंड है.
    एसक्यूएल क्वेरी के नतीजे नैनोसेकंड में मिलते हैं.