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

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

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

सेटअप

  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. एचटीटीपीएस वाले टेस्ट एंडपॉइंट सेट अप और डिप्लॉय करना. होस्ट किए गए एंडपॉइंट के यूआरएल को नोट कर लें, क्योंकि सुरक्षित ऑडियंस के डेमो ऐप्लिकेशन के काम करने के लिए ये ज़रूरी हैं.
  2. जांच के लिए दिए गए एंडपॉइंट यूआरएल के साथ, डेमो ऐप्लिकेशन लॉन्च करें. <test-endpoint-url> को होस्ट किए गए उस एंडपॉइंट यूआरएल से बदलें जिसे आपने पिछले चरण में रिकॉर्ड किया था.

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

    डेमो ऐप्लिकेशन में, Shoes CA को टॉगल करके चालू किया गया है.
    Protected Audience का डेमो ऐप्लिकेशन.
  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 पर क्लिक करें:

    Protected Audience API से जुड़ी नीलामी को देखने वाला Perfetto यूज़र इंटरफ़ेस (यूआई). 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 में, बाईं ओर मौजूद नेविगेशन पैनल में "क्वेरी (एसक्यूएल)" पर जाएं.
  2. यह क्वेरी डालें:

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

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