FLEDGE API डेवलपर गाइड

यह लेख किसके लिए है?

इस पोस्ट में, एक्सपेरिमेंट के लिए इस्तेमाल होने वाले Protected Audience API के मौजूदा वर्शन के बारे में तकनीकी जानकारी दी गई है.

  • Protected Audience API, प्रस्ताव की खास जानकारी देने वाला तकनीकी कॉन्टेंट नहीं है और इसमें एक शब्दावली भी है.

  • Protected Audience डेमो में, FLEDGE के डिप्लॉयमेंट के बारे में सिलसिलेवार तरीके से निर्देश दिए गए हैं.

  • Protected Audience डेमो वीडियो में डेमो कोड के काम करने का तरीका बताया गया है. साथ ही, Protected Audience को डीबग करने के लिए, Chrome DevTools का इस्तेमाल करने का तरीका भी बताया गया है.

Protected Audience क्या है?

Protected Audience API, एक प्राइवसी सैंडबॉक्स है. यह रीमार्केटिंग और ऑडियंस के कस्टम इस्तेमाल के उदाहरण उपलब्ध कराता है. इसे इस तरह से डिज़ाइन किया गया है कि तीसरे पक्ष, अलग-अलग साइटों पर उपयोगकर्ता के ब्राउज़िंग व्यवहार को ट्रैक करने के लिए, इसका इस्तेमाल न कर सकें. एपीआई की मदद से ब्राउज़र, डिवाइस पर नीलामी की सुविधा चालू करता है. इससे, उन वेबसाइटों के लिए काम के विज्ञापन चुने जाते हैं जिन पर उपयोगकर्ता पहले गया था.

Protected Audience वह पहला एक्सपेरिमेंट है जिसे प्रपोज़ल के TURTLEDOVE फ़ैमिली के तहत, Chromium में लागू किया गया.

नीचे दिया गया डायग्राम, FLEDGE के लाइफ़साइकल की खास जानकारी देता है:

इस इमेज में, FLEDGE के लाइफ़साइकल के हर चरण के बारे में खास जानकारी दी गई है
FLEDGE का लाइफ़साइकल.

मैं Protected Audience सुविधा का इस्तेमाल कैसे करूं?

Protected Audience API का डेमो

विज्ञापन देने वाले व्यक्ति या कंपनी और पब्लिशर की साइटों पर Protected Audience से जुड़े बुनियादी डिप्लॉयमेंट के बारे में जानकारी, Protect-audience-demo.web.app पर दी गई है.

डेमो वीडियो में डेमो कोड के काम करने का तरीका बताया गया है. साथ ही, Protected Audience को डीबग करने के लिए, Chrome DevTools का इस्तेमाल करने का तरीका भी बताया गया है.

Protected Audience के ऑरिजिन ट्रायल में हिस्सा लें

Privacy Sandbox की प्रासंगिकता और मेज़रमेंट के ऑरिजिन ट्रायल को Chrome Beta 101.0.4951.26 और इसके बाद के वर्शन में, Protected Audience, Topics, और Attribution Reporting के एपीआई के लिए डेस्कटॉप पर उपलब्ध कराया गया है.

इसमें हिस्सा लेने के लिए, ऑरिजिन ट्रायल टोकन के लिए रजिस्टर करें.

ट्रायल में रजिस्टर करने के बाद, Protected Audience JavaScript API को उन पेजों पर आज़माया जा सकता है जो मान्य ट्रायल टोकन देते हैं: उदाहरण के लिए, ब्राउज़र को एक या उससे ज़्यादा इंटरेस्ट ग्रुप में शामिल होने के लिए कहें. इसके बाद, किसी विज्ञापन को चुनने और दिखाने के लिए, विज्ञापन नीलामी चलाने के लिए कहें.

Protected Audience डेमो में सुरक्षित ऑडियंस के डिप्लॉयमेंट की पूरी प्रोसेस का बुनियादी उदाहरण दिया गया है.

हर उस पेज के लिए ट्रायल टोकन दें जिस पर आपको Protected Audience API कोड चलाना है:

  • <head> में मेटा टैग के तौर पर:

    <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">

  • एचटीटीपी हेडर के तौर पर:

    Origin-Trial: TOKEN_GOES_HERE

  • प्रोग्राम के हिसाब से टोकन जनरेट करके:

    const otMeta = document.createElement('meta');
    otMeta.httpEquiv = 'origin-trial';
    otMeta.content = 'TOKEN_GOES_HERE';
    document.head.append(otMeta);
    

Protected Audience कोड चलाने वाले iframe को, इंटरेस्ट ग्रुप के मालिक की ओर से किया जाने वाला navigator.joinAdInterestGroup() कॉल—ऐसा टोकन देना होगा जो उसके ऑरिजिन से मेल खाता हो.

पहली सुरक्षित ऑडियंस को ऑरिजिन ट्रायल के लिए दिखाने की कोशिश से जुड़ी जानकारी से, पहले ट्रायल के लक्ष्यों के बारे में ज़्यादा जानकारी मिलती है. साथ ही, इसमें यह भी बताया जाता है कि इसमें कौनसी सुविधाएं काम करती हैं.

इस एपीआई की जांच करें

डेस्कटॉप पर, Chrome के बीटा वर्शन 101.0.4951.26 और इसके बाद के वर्शन में किसी एक उपयोगकर्ता के लिए Protected Audience की जांच की जा सकती है:

  • chrome://settings/adPrivacy में विज्ञापन देखने वाले की निजता बनाए रखने वाले सभी एपीआई चालू करके
  • कमांड लाइन से फ़्लैग सेट करके.

iframe या फ़ेंस किए गए फ़्रेम में विज्ञापन रेंडर करें

सेट किए गए फ़्लैग के आधार पर, विज्ञापन <iframe> या <fencedframe> में रेंडर किए जा सकते हैं.

विज्ञापनों को रेंडर करने के लिए <fencedframe> का इस्तेमाल करने के लिए:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames

विज्ञापनों को रेंडर करने के लिए <iframe> का इस्तेमाल करने के लिए:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames

डीबग करने के दौरान हुए नुकसान/जीत की रिपोर्ट करने के अस्थायी तरीकों को चालू करने के लिए, BiddingAndScoringDebugReportingAPI फ़्लैग शामिल करें.

Chromium को फ़्लैग के साथ चलाएं: कमांड लाइन से, Chrome और Chromium पर आधारित अन्य ब्राउज़र को चलाने के दौरान, फ़्लैग सेट करने का तरीका बताया गया है. Protected Audience फ़्लैग की पूरी सूची, Chromium Code Search पर उपलब्ध है.

Chrome के नए वर्शन में कौनसी सुविधाएं काम करती हैं?

Protected Audience को, Chromium में फ़ीचर फ़्लैग के पीछे पहले एक्सपेरिमेंट के तौर पर उपलब्ध कराया जा रहा है. इसका मकसद, Protected Audience से जुड़े प्रस्ताव की इन सुविधाओं की जांच करना है:

  • दिलचस्पी के हिसाब से ग्रुप: विज्ञापन बिडिंग और रेंडरिंग को कॉन्फ़िगर करने के लिए, ब्राउज़र में इससे जुड़े मेटाडेटा के साथ स्टोर किया जाता है.
  • खरीदारों (डीएसपी या विज्ञापन देने वाले) की ऑन-डिवाइस बिडिंग: यह जानकारी, सेव किए गए इंटरेस्ट ग्रुप और विक्रेता से मिले सिग्नल के आधार पर मिलती है.
  • विक्रेता (SSP या पब्लिशर) की ओर से उपयोगकर्ता के डिवाइस पर विज्ञापन चुनना: नीलामी के लिए लगाई गई बिड और खरीदारों के मेटाडेटा के आधार पर.
  • फ़ेंस किए गए फ़्रेम के कुछ समय के लिए आसान वर्शन में विज्ञापन को रेंडर करना: इसमें विज्ञापन रेंडरिंग के लिए नेटवर्क ऐक्सेस और लॉगिन की अनुमति होती है.

एपीआई के बारे में जानकारी देने वाला यह दस्तावेज़, सुविधा के साथ काम करने और इसके इस्तेमाल में आने वाली पाबंदियों के बारे में ज़्यादा जानकारी देता है.

एक जैसी दिलचस्पी वाले ग्रुप की अनुमतियां

Protected Audience को लागू करने के मौजूदा तरीके में, डिफ़ॉल्ट तौर पर यह तरीका इस्तेमाल होता है: किसी पेज में कहीं से भी joinAdInterestGroup() को कॉल करने की अनुमति देना, यहां तक कि क्रॉस-डोमेन iframe से भी. आने वाले समय में, जब साइट के मालिकों को अपने क्रॉस-डोमेन iframe की अनुमतियों की नीतियों में बदलाव करने का समय मिल जाएगा, तब हमारी योजना यह है कि क्रॉस-डोमेन iframe से आने वाले कॉल को अनुमति न दी जाए. जैसा कि पूरी जानकारी देने वाले व्यक्ति ने बताया है.

कुंजी/वैल्यू सेवा

Protected Audience से जुड़ी विज्ञापन नीलामी के हिस्से के तौर पर, ब्राउज़र ऐसी कुंजी/वैल्यू वाली सेवा को ऐक्सेस कर सकता है जो विज्ञापन खरीदने वाले व्यक्ति को जानकारी देने के लिए, कैंपेन के बचे हुए बजट की जानकारी देने के लिए, की-वैल्यू पेयर दिखाती है. Protected Audience से जुड़ा यह प्रस्ताव मैंडेट करता है कि यह सर्वर "इवेंट-लेवल पर डेटा इकट्ठा नहीं करता. साथ ही, इन अनुरोधों के आधार पर इसका कोई और खराब असर भी नहीं पड़ता है".

Protected Audience Key/Value का सेवा कोड, अब Privacy Sandbox की GitHub रिपॉज़िटरी में उपलब्ध है. इस सेवा का इस्तेमाल, Chrome और Android डेवलपर कर सकते हैं. स्टेटस के बारे में अपडेट पाने के लिए, एलान करने वाली ब्लॉग पोस्ट देखें. एपीआई की जानकारी और ट्रस्ट मॉडल एक्सप्लेनर की मदद से, Protected Audience Key/Value Service के बारे में ज़्यादा जानें.

शुरुआती टेस्टिंग के लिए, "Bring Your ओन सर्वर" मॉडल का इस्तेमाल किया जाता है. लंबे समय तक, विज्ञापन टेक्नोलॉजी को रीयल-टाइम डेटा वापस पाने के लिए, भरोसेमंद एक्ज़ीक्यूशन एनवायरमेंट में चल रही ओपन-सोर्स Protected Audience Key/Value सेवाओं का इस्तेमाल करना होगा.

तीसरे पक्ष की कुकी का इस्तेमाल बंद होने के कुछ समय बाद तक, हम उम्मीद करते हैं कि नेटवर्क को जांच के लिए ज़रूरी समय न मिले. इसके लिए, हम ओपन सोर्स कुंजी/वैल्यू से जुड़ी सेवाओं या टीईई का इस्तेमाल नहीं करना चाहते. इस बदलाव के लागू होने से पहले, हम डेवलपर को इस बारे में ज़रूरी सूचना देंगे कि वे टेस्टिंग और इसका इस्तेमाल शुरू कर दें.

सुविधा समर्थन का पता लगाएं

API का इस्तेमाल करने से पहले, देखें कि यह ब्राउज़र पर काम करता है या नहीं और दस्तावेज़ में उपलब्ध है या नहीं:

'joinAdInterestGroup' in navigator &&
  document.featurePolicy.allowsFeature('join-ad-interest-group') &&
  document.featurePolicy.allowsFeature('run-ad-auction') ?
  console.log('navigator.joinAdInterestGroup() is supported on this page') :
  console.log('navigator.joinAdInterestGroup() is not supported on this page');

मैं Protected Audience से ऑप्ट आउट कैसे करूं?

Protected Audience API का ऐक्सेस, साइट के मालिक के तौर पर या व्यक्तिगत उपयोगकर्ता के तौर पर ब्लॉक किया जा सकता है.

साइटें, साइट के ऐक्सेस को कैसे कंट्रोल कर सकती हैं?

Protected Audience से जुड़ी सुविधाओं का इस्तेमाल करने के लिए, साइटों को अनुमतियों की नीति सेट करनी होगी. इससे यह पक्का करने में मदद मिलेगी कि आर्बिट्रेरी तीसरे पक्ष की कंपनियां, साइट की जानकारी के बिना एपीआई का इस्तेमाल नहीं कर सकतीं. हालांकि, ऑरिजिन ट्रायल के दौरान टेस्टिंग की सुविधा उपलब्ध कराने के लिए, डिफ़ॉल्ट रूप से इस ज़रूरी शर्त को पूरा नहीं किया जाता. जो साइटें टेस्टिंग के दौरान, Protected Audience से जुड़े फ़ंक्शन को साफ़ तौर पर बंद करना चाहती हैं वे ऐक्सेस ब्लॉक करने के लिए, अनुमतियों से जुड़ी ज़रूरी नीति का इस्तेमाल कर सकती हैं.

Protected Audience की अनुमतियों से जुड़ी दो नीतियां हैं, जिन्हें अलग से सेट किया जा सकता है:

  • join-ad-interest-group, इंटरेस्ट ग्रुप में ब्राउज़र जोड़ने की सुविधा को चालू/बंद करता है
  • run-ad-auction, उपयोगकर्ता के डिवाइस पर नीलामी करने के लिए, फ़ंक्शन को चालू/बंद करता है

एचटीटीपी रिस्पॉन्स हेडर में, अनुमतियों की नीचे दी गई नीति के बारे में बताकर, पहले-पक्ष के कॉन्टेक्स्ट में Protected Audience API का ऐक्सेस पूरी तरह से बंद किया जा सकता है:

Permissions-Policy: join-ad-interest-group=(), run-ad-auction=()

iframe एलिमेंट में यह allow एट्रिब्यूट जोड़कर, iframe में एपीआई के इस्तेमाल को बंद किया जा सकता है:

<iframe src="https://example.com" allow="join-ad-interest-group 'none'; run-ad-auction 'none'"></iframe>

पहली सुरक्षित ऑडियंस को ऑनलाइन टेस्ट करने की अनुमति से जुड़ी नीति सेक्शन में, इस बारे में ज़्यादा जानकारी दी गई है.

उपयोगकर्ता का ऑप्ट-आउट

उपयोगकर्ता इनमें से किसी भी तरीके का इस्तेमाल करके, Protected Audience API और प्राइवसी सैंडबॉक्स की अन्य सुविधाओं के ऐक्सेस को ब्लॉक कर सकता है:

  • Chrome की सेटिंग में जाकर, प्राइवसी सैंडबॉक्स के ट्रायल को बंद करें: सेटिंग > सुरक्षा और निजता > प्राइवसी सैंडबॉक्स. इसे chrome://settings/adPrivacy पर भी ऐक्सेस किया जा सकता है.
  • Chrome की सेटिंग में जाकर, तीसरे पक्ष की कुकी बंद करें: सेटिंग > सुरक्षा और निजता.
  • कुकी और साइट के अन्य डेटा को chrome://settings/cookies के लिए, "तीसरे पक्ष की कुकी ब्लॉक करें" या "सभी कुकी ब्लॉक करें" पर सेट करें.
  • गुप्त मोड का इस्तेमाल करें.

Protected Audience से जुड़ी जानकारी देने वाले इस टूल में, एपीआई के डिज़ाइन से जुड़े एलिमेंट के बारे में ज़्यादा जानकारी मिलती है. साथ ही, यह भी बताया गया है कि एपीआई, निजता से जुड़े लक्ष्यों को कैसे पूरा करता है.

Protected Audience API से जुड़े वर्कलेट को डीबग करें

Chrome कैनरी 98.0.4718.0 से, Chrome DevTools में Protected Audience से जुड़े वर्कलेट डीबग किए जा सकते हैं.

सबसे पहले, सोर्स पैनल के इवेंट लिसनर ब्रेकपॉइंट पैनल में, एक नई कैटगरी के ज़रिए ब्रेकपॉइंट सेट करें.

Chrome कैनरी में
   DevTools का स्क्रीनशॉट, जो सोर्स पैनल में इवेंट लिसनर ब्रेकपॉइंट पैनल को हाइलाइट कर रहा है.
   विज्ञापन नीलामी के वर्कलेट में, बिड करने वाले के बिडिंग के चरण की शुरुआत को चुना गया है.

जब ब्रेकपॉइंट ट्रिगर होता है, तब वर्कलेट स्क्रिप्ट के टॉप-लेवल पर पहले स्टेटमेंट से पहले एक्ज़ीक्यूशन को रोक दिया जाता है. बिडिंग/स्कोरिंग/रिपोर्टिंग फ़ंक्शन पर जाने के लिए, सामान्य ब्रेकपॉइंट या स्टेप कमांड का इस्तेमाल किया जा सकता है.

लाइव वर्कलेट की स्क्रिप्ट, Threads पैनल में भी दिखेंगी.

Chrome कैनरी में DevTools का स्क्रीनशॉट, जो सोर्स पैनल में Threads पैनल को हाइलाइट कर रहा है. इसमें रोकी गई मौजूदा वर्कलेट स्क्रिप्ट दिख रही है.

कुछ वर्कलेट साथ-साथ चल सकते हैं. ऐसे में, हो सकता है कि कई थ्रेड "रोका गया" स्थिति में हों. इस सूची का इस्तेमाल करके, थ्रेड के बीच स्विच किया जा सकता है और उन्हें फिर से शुरू किया जा सकता है या उनकी बारीकी से जांच की जा सकती है.

Protected Audience API से जुड़े इवेंट की निगरानी करें

Chrome DevTools के ऐप्लिकेशन पैनल में, सुरक्षित ऑडियंस इंटरेस्ट ग्रुप और नीलामी से जुड़े इवेंट देखे जा सकते हैं.

अगर आपने किसी ऐसे ब्राउज़र में Protected Audience डेमो शॉपिंग साइट पर विज़िट किया है जिसमें Protected Audience की सुविधा चालू है, तो DevTools join इवेंट के बारे में जानकारी दिखाएगा.

Chrome कैनरी में
   DevTools ऐप्लिकेशन का पैनल, जो सुरक्षित ऑडियंस की दिलचस्पी वाले ग्रुप में शामिल होने के
   इवेंट के बारे में जानकारी दिखा रहा है.

अब, अगर आपने किसी ऐसे ब्राउज़र में Protected Audience डेमो पब्लिशर साइट पर विज़िट किया जिसमें Protected Audience की सुविधा चालू है, तो DevTools bid और win इवेंट के बारे में जानकारी दिखाता है.

Chrome कैनरी में
   DevTools ऐप्लिकेशन पैनल, जो Protected Audience नीलामी के लिए बिड और
   जीतने वाले इवेंट के बारे में जानकारी दिखा रहा है.

Protected Audience API कैसे काम करता है?

इस उदाहरण में, एक उपयोगकर्ता पसंद के मुताबिक बाइक बनाने वाली कंपनी की वेबसाइट ब्राउज़ करता है, फिर बाद में किसी समाचार वेबसाइट पर जाता है और उसे बाइक बनाने वाली कंपनी की नई बाइक का विज्ञापन दिखाया जाता है.

1. जब कोई उपयोगकर्ता विज्ञापन देने वाले की साइट पर जाता है

इलस्ट्रेशन में एक व्यक्ति को अपने लैपटॉप पर ब्राउज़र में, साइकल बनाने वाली अपनी पसंद की साइट पर जाते हुए दिखाया गया है.

मान लें कि एक उपयोगकर्ता, पसंद के मुताबिक बनाई गई साइकल बनाने वाली कंपनी (इस उदाहरण में बताया गया विज्ञापन देने वाला) की वेबसाइट पर जाता है और हाथ से बनी स्टील की बाइक के प्रॉडक्ट पेज पर कुछ समय बिताता है. इससे बाइक बनाने वाली कंपनी को रीमार्केटिंग का अवसर मिलता है.

2. उपयोगकर्ता के ब्राउज़र से एक इंटरेस्ट ग्रुप जोड़ने के लिए कहा जाता है

इलस्ट्रेशन में एक व्यक्ति अपने लैपटॉप पर ब्राउज़र में कोई साइट देख रहा है. ब्राउज़र में JavaScript
  कोडjoinAdInterestGroup() चल रहा है.

पूरी जानकारी देने वाला सेक्शन: ब्राउज़र रिकॉर्ड इंटरेस्ट ग्रुप

विज्ञापन देने वाले का मांग-साइड प्लैटफ़ॉर्म (या खुद व्यक्ति) navigator.joinAdInterestGroup() को कॉल करता है और ब्राउज़र को उन ग्रुप की सूची में एक इंटरेस्ट ग्रुप जोड़ने के लिए कहता है जिनका वह ब्राउज़र सदस्य है. इस उदाहरण में, ग्रुप का नाम custom-bikes है और उसका मालिक dsp.example है. इंटरेस्ट ग्रुप का मालिक (इस मामले में, डीएसपी) चौथे चरण में बताई गई विज्ञापन नीलामी में खरीदार होगा. एक जैसी दिलचस्पी वाले ग्रुप की सदस्यता, ब्राउज़र में उपयोगकर्ता के डिवाइस पर सेव होती है. इसे ब्राउज़र वेंडर या किसी और के साथ शेयर नहीं किया जाता.

joinAdInterestGroup() को इनसे अनुमति चाहिए:

  • विज़िट की जा रही साइट
  • एक जैसी दिलचस्पी वाले ग्रुप का मालिक

उदाहरण के लिए: malicious.example के लिए, dsp.example की अनुमति के बिना joinAdInterestGroup() को मालिक के तौर पर dsp.example से कॉल करना मुमकिन नहीं होना चाहिए.

विज़िट की जा रही साइट की अनुमति

एक ही ऑरिजिन: डिफ़ॉल्ट रूप से, joinAdInterestGroup() कॉल को उसी ऑरिजिन से अनुमति दी जाती है जिस ऑरिजिन से विज़िट की जा रही है. इसका मतलब है कि कॉल को उसी ऑरिजिन से किया जाता है जिस ऑरिजिन से मौजूदा पेज का टॉप लेवल फ़्रेम है. joinAdInterestGroup() कॉल बंद करने के लिए, साइटें, Protected Audience से जुड़ी अनुमतियों की नीति के हेडर join-ad-interest-group डायरेक्टिव का इस्तेमाल कर सकती हैं.

क्रॉस ऑरिजिन: मौजूदा पेज से अलग ऑरिजिन से joinAdInterestGroup() को कॉल करने की सुविधा सिर्फ़ तब काम करती है, जब विज़िट की जा रही साइट ने अनुमतियों से जुड़ी ऐसी नीति सेट की हो जो क्रॉस-ऑरिजिन iframe से joinAdInterestGroup() को कॉल करने की अनुमति देती हो.

इंटरेस्ट ग्रुप के मालिक से अनुमति

एक जैसे ऑरिजिन वाले iframe से joinAdInterestGroup() को कॉल करके, इंटरेस्ट ग्रुप के मालिक की अनुमति साफ़ तौर पर दी जाती है. उदाहरण के लिए, dsp.example के मालिकाना हक वाले इंटरेस्ट ग्रुप के लिए, dsp.example iframe joinAdInterestGroup() को कॉल कर सकता है.

हमारा सुझाव है कि joinAdInterestGroup() को मालिक के डोमेन के पेज या iframe में चलाया जा सकता है. इसके अलावा, .well-known यूआरएल पर मौजूद सूची का इस्तेमाल करके, इसे दूसरे डोमेन को सौंपा जा सकता है.

navigator.joinAdInterestGroup() का इस्तेमाल करना

यहां दिए गए उदाहरण में बताया गया है कि एपीआई का इस्तेमाल कैसे किया जा सकता है:

const interestGroup = {
  owner: 'https://dsp.example',
  name: 'custom-bikes',
  biddingLogicUrl: ...,
  biddingWasmHelperUrl: ...,
  dailyUpdateUrl: ...,
  trustedBiddingSignalsUrl: ...,
  trustedBiddingSignalsKeys: ['key1', 'key2'],
  userBiddingSignals: {...},
  ads: [bikeAd1, bikeAd2, bikeAd3],
  adComponents: [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2],
};

navigator.joinAdInterestGroup(interestGroup, 7 * kSecsPerDay);

फ़ंक्शन को पास किए गए interestGroup ऑब्जेक्ट का साइज़, 50 केबी से ज़्यादा नहीं होना चाहिए. ऐसा न होने पर, कॉल नहीं हो पाएगा. दूसरा पैरामीटर, इंटरेस्ट ग्रुप की अवधि के बारे में बताता है, जिसे 30 दिनों तक सीमित किया जाता है. लगातार आने वाले कॉल, पहले से सेव की गई वैल्यू को ओवरराइट कर देते हैं.

एक जैसी दिलचस्पी वाले ग्रुप की प्रॉपर्टी

प्रॉपर्टी ज़रूरी है उदाहरण भूमिका
owner ज़रूरी है 'https://dsp.example' इंटरेस्ट ग्रुप के मालिक का ऑरिजिन.
name ज़रूरी है 'custom-bikes' इंटरेस्ट ग्रुप का नाम.
biddingLogicUrl** ज़रूरी नहीं* 'https://dsp.example/bid/custom-bikes/bid.js' वर्कलेट में JavaScript रन करने के लिए यूआरएल.
biddingWasmHelperUrl** ज़रूरी नहीं* 'https://dsp.example/bid/custom-bikes/bid.wasm' biddingLogicUrl से मिले WebAssembly कोड का यूआरएल.
dailyUpdateUrl** ज़रूरी नहीं है 'https://dsp.example/bid/custom-bikes/update' वह यूआरएल जो इंटरेस्ट ग्रुप के एट्रिब्यूट अपडेट करने के लिए, JSON फ़ॉर्म दिखाता है. (एक जैसी दिलचस्पी वाले ग्रुप को अपडेट करें देखें.)
trustedBiddingSignalsUrl** ज़रूरी नहीं है 'https://dsp.example/trusted/bidding-signals' बिड करने वाले के भरोसेमंद सर्वर पर की-वैल्यू वाले अनुरोधों के लिए बेस यूआरएल.
trustedBiddingSignalsKeys ज़रूरी नहीं है ['key1', 'key2' ...] की-वैल्यू भरोसेमंद सर्वर के अनुरोधों के लिए कुंजियां.
userBiddingSignals ज़रूरी नहीं है {...} अतिरिक्त मेटाडेटा, जिसे मालिक बिडिंग के दौरान इस्तेमाल कर सकता है.
ads ज़रूरी नहीं* [bikeAd1, bikeAd2, bikeAd3] इस इंटरेस्ट ग्रुप के लिए रेंडर किए जा सकने वाले विज्ञापन.
adComponents ज़रूरी नहीं है [customBike1, customBike2, bikePedal, bikeFrame1, bikeFrame2] कई हिस्सों से बने विज्ञापनों के कॉम्पोनेंट.

* owner और name को छोड़कर, सभी प्रॉपर्टी ज़रूरी नहीं हैं. biddingLogicUrl और ads प्रॉपर्टी ज़रूरी नहीं हैं, लेकिन नीलामी में हिस्सा लेने के लिए ज़रूरी हैं. इन प्रॉपर्टी के बिना इंटरेस्ट ग्रुप बनाने के काम के उदाहरण भी हो सकते हैं: उदाहरण के लिए, हो सकता है कि इंटरेस्ट ग्रुप का मालिक, किसी ऐसे कैंपेन के लिए इंटरेस्ट ग्रुप में ब्राउज़र जोड़ना चाहे जो अब तक नहीं चल रहा है या आने वाले समय में किसी अन्य काम के लिए है. इसके अलावा, यह भी हो सकता है कि विज्ञापन के लिए तय किया गया बजट कुछ समय के लिए खत्म हो गया हो.

** biddingLogicUrl, biddingWasmHelperUrl, dailyUpdateUrl, और trustedBiddingSignalsUrl यूआरएल का ऑरिजिन, मालिक के तौर पर एक ही होना चाहिए. ads और adComponents यूआरएल पर ऐसी कोई पाबंदी नहीं है.

एक जैसी दिलचस्पी वाले ग्रुप के एट्रिब्यूट अपडेट करें

dailyUpdateUrl ऐसे वेब सर्वर के बारे में बताता है जो इंटरेस्ट ग्रुप की प्रॉपर्टी के बारे में बताने वाले JSON को दिखाता है. ऐसा इंटरेस्ट ग्रुप के navigator.joinAdInterestGroup() को पास किए गए ऑब्जेक्ट से मिलता है. इससे ग्रुप के मालिक को एक तरीका मिलता है, जिससे वे इंटरेस्ट ग्रुप की विशेषताओं को समय-समय पर अपडेट कर पाते हैं. मौजूदा लागू होने के तरीके में, इन एट्रिब्यूट में बदलाव किया जा सकता है:

  • biddingLogicUrl
  • biddingWasmHelperUrl
  • trustedBiddingSignalsUrl
  • trustedBiddingSignalsKeys
  • ads
  • priority

अगर JSON में फ़ील्ड नहीं दी गई है, तो उसे ओवरराइट नहीं किया जाएगा. सिर्फ़ JSON में दिए गए फ़ील्ड अपडेट हो जाएंगे. जबकि, navigator.joinAdInterestGroup() को कॉल करने से मौजूदा इंटरेस्ट ग्रुप बदल जाते हैं.

अपडेट तुरंत करने की कोशिश की जाती है और ये स्टेटस के तहत काम नहीं करते:

  • नेटवर्क अनुरोध का टाइम आउट (फ़िलहाल, 30 सेकंड).
  • अन्य नेटवर्क की गड़बड़ी.
  • JSON को पार्स नहीं किया जा सका.

अगर अपडेट करने में बहुत ज़्यादा समय लगता है, तो भी अपडेट रद्द किए जा सकते हैं. हालांकि, इससे रद्द किए गए (बचे हुए) अपडेट पर, लागू होने वाली दर सीमित नहीं होती. अपडेट की दर एक दिन में ज़्यादा से ज़्यादा एक तय सीमा तक सीमित होती है. जो अपडेट नेटवर्क की गड़बड़ियों की वजह से काम नहीं करते उन्हें एक घंटे बाद फिर से अपडेट करने की कोशिश की जाती है. साथ ही, इंटरनेट से डिसकनेक्ट होने की वजह से पूरे नहीं हो पाने वाले अपडेट, फिर से कनेक्ट होने पर फिर से इस्तेमाल किए जाते हैं.

मैन्‍युअल अपडेट

मौजूदा फ़्रेम के ऑरिजिन के मालिकाना हक वाले इंटरेस्ट ग्रुप से जुड़े अपडेट, navigator.updateAdInterestGroups() की मदद से मैन्युअल तरीके से ट्रिगर किए जा सकते हैं. अनुरोध संख्या सीमित करने की सुविधा चालू होने पर, अपडेट बार-बार नहीं होते: navigator.updateAdInterestGroups() को बार-बार कॉल करने पर, अनुरोधों की तय सीमा (फ़िलहाल, एक दिन) खत्म होने तक कोई फ़ायदा नहीं होगा. अगर उसी इंटरेस्ट ग्रुप owner और name के लिए navigator.joinAdInterestGroup() को फिर से कॉल किया जाता है, तो दर सीमा रीसेट हो जाती है.

अपने-आप होने वाले अपडेट

नीलामी के लिए लोड किए गए सभी इंटरेस्ट ग्रुप, नीलामी पूरी होने के बाद अपने-आप अपडेट हो जाते हैं. हालांकि, इसकी दर सीमाएं, मैन्युअल तौर पर किए गए अपडेट पर निर्भर करती हैं. हर मालिक के लिए, मान लीजिए कि navigator.updateAdInterestGroups() को किसी ऐसे iframe से कॉल किया गया हो जिसका ऑरिजिन, नीलामी में हिस्सा लेने वाले कम से कम एक इंटरेस्ट ग्रुप से मेल खाता हो.

किसी इंटरेस्ट ग्रुप के लिए विज्ञापन बताएं

ads और adComponents ऑब्जेक्ट में, विज्ञापन क्रिएटिव का यूआरएल होता है. साथ ही, इसमें आर्बिट्रेरी मेटाडेटा होता है. हालांकि, इसका इस्तेमाल बिडिंग के समय किया जा सकता है. उदाहरण के लिए:

{
  renderUrl: 'https://cdn.example/.../bikeAd1.html',
  metadata: bikeAd1metadata // optional
}

खरीदार बिड कैसे करते हैं?

एक इंटरेस्ट ग्रुप के मालिक की ओर से, biddingLogicUrl पर दी गई स्क्रिप्ट में generateBid() फ़ंक्शन शामिल होना चाहिए. जब कोई विज्ञापन स्पेस सेलर navigator.runAdAuction() को कॉल करता है, तो generatedBid() फ़ंक्शन को हर एक इंटरेस्ट ग्रुप के लिए एक बार कॉल किया जाता है. ऐसा तब होता है, जब ब्राउज़र उस ग्रुप का सदस्य हो. ऐसा तब होता है, जब इंटरेस्ट ग्रुप के मालिक को बिड करने का न्योता भेजा गया हो. दूसरे शब्दों में, हर उम्मीदवार के विज्ञापन के लिए generateBid() को एक बार कॉल किया जाता है. सेलर, navigator.runAdAuction() को पास किए गए नीलामी कॉन्फ़िगरेशन पैरामीटर पर, decisionLogicUrl प्रॉपर्टी देता है. इस यूआरएल के कोड में एक scoreAd() फ़ंक्शन होना चाहिए, जो नीलामी में बिड करने वाले हर व्यक्ति के लिए चलाया जाता है. इससे generateBid() से मिलने वाली हर बिड को स्कोर दिया जाता है.

biddingLogicUrl पर उपलब्ध किसी विज्ञापन-स्थान खरीदार की ओर से दी गई स्क्रिप्ट में एक generateBid() फ़ंक्शन शामिल होना चाहिए. हर उम्मीदवार के विज्ञापन के लिए इस फ़ंक्शन को एक बार कॉल किया जाता है. runAdAuction() हर विज्ञापन की अलग-अलग जांच करता है. साथ ही, उससे जुड़ी बिड और मेटाडेटा की जांच करता है. इसके बाद, उसे विज्ञापन को संख्या के हिसाब से पसंद के मुताबिक स्कोर देता है.

generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  ...
  return {
    ad: adObject,
    bid: bidValue,
    render: renderUrl,
    adComponents: [adComponentRenderUrl1, ...]
   };
}

generateBid() में ये आर्ग्युमेंट इस्तेमाल किए जाते हैं:

  • interestGroup
    विज्ञापन खरीदार ने ऑब्जेक्ट को joinAdInterestGroup() को पास किया. (दिलचस्पी वाले ग्रुप को dailyUpdateUrl के ज़रिए अपडेट किया जा सकता है.)

  • auctionSignals
    विज्ञापन स्पेस सेलर से navigator.runAdAuction() को पास किए गए नीलामी कॉन्फ़िगरेशन आर्ग्युमेंट की प्रॉपर्टी. इससे पेज के कॉन्टेक्स्ट (जैसे कि विज्ञापन का साइज़ और पब्लिशर आईडी), नीलामी का टाइप (फ़र्स्ट-प्राइस या सेकंड-प्राइस) और दूसरे मेटाडेटा के बारे में जानकारी मिलती है.

  • perBuyerSignals
    auctionSignals की तरह ही, नीलामी के कॉन्फ़िगरेशन वाली प्रॉपर्टी, जिसे सेलर ने navigator.runAdAuction() को पास किया है. यह खरीदार के सर्वर से पेज के बारे में कॉन्टेक्स्ट दे सकता है. ऐसा तब होता है, जब सेलर SSP हो. यह खरीदार के सर्वर को रीयल-टाइम बिडिंग कॉल करता है और उसका जवाब देता है या अगर पब्लिशर पेज, खरीदार के सर्वर से सीधे संपर्क करता है. अगर ऐसा है, तो हो सकता है कि खरीदार, generateBid() में उन सिग्नल के क्रिप्टोग्राफ़िक हस्ताक्षर की जांच करना चाहे, ताकि छेड़छाड़ न की जा सके.

  • trustedBiddingSignals
    एक ऐसा ऑब्जेक्ट जिसकी कुंजियां, इंटरेस्ट ग्रुप के लिए trustedBiddingSignalsKeys हैं. साथ ही, जिनकी वैल्यू trustedBiddingSignals अनुरोध में दिखाई जाती हैं.

  • browserSignals
    ब्राउज़र का बनाया गया कोई ऑब्जेक्ट. इसमें पेज के कॉन्टेक्स्ट (जैसे, मौजूदा पेज का hostname, जिसे सेलर किसी और तरीके से नकली कर सकता है) की जानकारी और इंटरेस्ट ग्रुप का डेटा (जैसे कि ग्रुप ने पिछली बार कब नीलामी जीती थी, उसकी जानकारी शामिल हो सकती है, ताकि ऑन-डिवाइस फ़्रीक्वेंसी कैपिंग की अनुमति दी जा सके).

browserSignals ऑब्जेक्ट में ये प्रॉपर्टी हैं:

{
  topWindowHostname: 'publisher.example',
  seller: 'https://ssp.example',
  joinCount: 3,
  bidCount: 17,
  prevWins: [[time1,ad1],[time2,ad2],...],
  wasmHelper: ... /* WebAssembly.Module object based on interest group's biddingWasmHelperUrl. */
  dataVersion: 1, /* Data-Version value from the buyer's Key/Value service response(s). */
}

bid की वैल्यू कैलकुलेट करने के लिए, generateBid() में मौजूद कोड, फ़ंक्शन के पैरामीटर की प्रॉपर्टी का इस्तेमाल कर सकता है. उदाहरण के लिए:

function generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  return {
    ...
    bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
    ...
  }
}

generateBid() चार प्रॉपर्टी वाला कोई ऑब्जेक्ट दिखाता है:

  • ad
    विज्ञापन के बारे में आर्बिट्ररी मेटाडेटा, जैसे कि वह जानकारी जो सेलर इस बिड या विज्ञापन क्रिएटिव के बारे में जानने की उम्मीद करता है. विक्रेता](/privacy-sandbox/resources/ग्लॉसी#ssp) इस जानकारी का इस्तेमाल नीलामी और फ़ैसले के विज्ञापन क्रिएटिव में करता है. सेलर इस जानकारी का इस्तेमाल, नीलामी और फ़ैसले के नियम में करता है.

  • bid
    संख्या वाली ऐसी बिड जो नीलामी में शामिल होगी. विक्रेता अलग-अलग खरीदारों की बोलियों की तुलना करने की स्थिति में होना चाहिए, इसलिए बोलियां कुछ विक्रेता की चुनी हुई इकाई में होनी चाहिए (जैसे, "डॉलर प्रति हज़ार"). अगर बिड शून्य या नेगेटिव है, तो इंटरेस्ट ग्रुप के आधार पर चुना गया यह ग्रुप, सेलर की नीलामी में हिस्सा नहीं लेगा. इस सिस्टम की मदद से, खरीदार विज्ञापन देने वाले के उन नियमों को लागू कर सकता है जहां उसके विज्ञापन दिख सकते हैं या नहीं.

  • render
    यूआरएल या यूआरएल की सूची, जिसका इस्तेमाल क्रिएटिव को रेंडर करने के लिए किया जाएगा. ऐसा तब होगा, जब इस बिड के लिए नीलामी जीती गई हो. (एपीआई के बारे में जानकारी देने वाले दस्तावेज़ में, कई हिस्सों से बने विज्ञापन देखें.) वैल्यू, इंटरेस्ट ग्रुप के लिए तय किए गए विज्ञापनों में से किसी एक विज्ञापन के renderUrl से मेल खानी चाहिए.

  • adComponents
    कई हिस्सों से बने विज्ञापनों के लिए, ज़्यादा से ज़्यादा 20 कॉम्पोनेंट की एक वैकल्पिक सूची, जिसे इंटरेस्ट ग्रुप के तर्क की adComponents प्रॉपर्टी से navigator.joinAdInterestGroup() में पास किया जाता है.

ब्राउज़र से एक इंटरेस्ट ग्रुप छोड़ने के लिए कहना

इंटरेस्ट ग्रुप का मालिक, इंटरेस्ट ग्रुप से ब्राउज़र को हटाने का अनुरोध कर सकता है. दूसरे शब्दों में, ब्राउज़र को इंटरेस्ट ग्रुप को उन ग्रुप की सूची से हटाने के लिए कहा जाता है जिनका वह सदस्य है.

navigator.leaveAdInterestGroup({
  owner: 'https://dsp.example',
  name: 'custom-bikes'
});

अगर कोई उपयोगकर्ता ऐसी साइट पर वापस आता है जिसने ब्राउज़र से एक इंटरेस्ट ग्रुप जोड़ने का अनुरोध किया है, तो इंटरेस्ट ग्रुप का मालिक navigator.leaveAdInterestGroup() फ़ंक्शन को कॉल करके ब्राउज़र से इंटरेस्ट ग्रुप हटाने का अनुरोध कर सकता है. किसी विज्ञापन का कोड, इस फ़ंक्शन को उसके इंटरेस्ट ग्रुप के लिए भी कॉल कर सकता है.

3. उपयोगकर्ता किसी ऐसी साइट पर जाता है जो विज्ञापन स्पेस बेचती है

इलस्ट्रेशन में एक व्यक्ति को अपने लैपटॉप पर ब्राउज़र में किसी न्यूज़ वेबसाइट पर जाते हुए दिखाया गया है. साइट में
  एक खाली विज्ञापन स्लॉट है.

इसके बाद, उपयोगकर्ता विज्ञापन स्पेस बेचने वाली साइट पर जाता है. उदाहरण के लिए, यह एक समाचार वेबसाइट है. साइट पर विज्ञापन इन्वेंट्री मौजूद है. इसे रीयल-टाइम बिडिंग का इस्तेमाल करके, प्रोग्रैम्ड तरीके से बेचा जाता है.

4. विज्ञापन नीलामी ब्राउज़र में चलती है

इलस्ट्रेशन में एक व्यक्ति को अपने लैपटॉप पर ब्राउज़र में न्यूज़ वेबसाइट देखते हुए दिखाया गया है. Protected Audience API का इस्तेमाल करके, विज्ञापन
  नीलामी हो रही है.

पूरी जानकारी देने वाला सेक्शन: विक्रेता, डिवाइस पर नीलामी करते हैं

विज्ञापन नीलामी को पब्लिशर का SSP या खुद पब्लिशर चला सकता है. नीलामी का मकसद, मौजूदा पेज पर एक ही विज्ञापन स्लॉट के लिए सबसे सही विज्ञापन चुनना है. नीलामी में उन इंटरेस्ट ग्रुप को ध्यान में रखा जाता है जिनका ब्राउज़र सदस्य होता है. साथ ही, इसमें विज्ञापन स्पेस के खरीदारों और Key/Value services के सेलर के डेटा को भी ध्यान में रखा जाता है.

विज्ञापन स्पेस सेलर, उपयोगकर्ता के ब्राउज़र से navigator.runAdAuction() को कॉल करके विज्ञापन नीलामी शुरू करने का अनुरोध करता है.

उदाहरण के लिए:

const auctionConfig = {
  seller: 'https://ssp.example',
  decisionLogicUrl: ...,
  trustedScoringSignalsUrl: ...,
  interestGroupBuyers: ['https://dsp.example', 'https://buyer2.example', ...],
  auctionSignals: {...},
  sellerSignals: {...},
  sellerTimeout: 100,
  perBuyerSignals: {
    'https://dsp.example': {...},
    'https://another-buyer.example': {...},
    ...
  },
  perBuyerTimeouts: {
    'https://dsp.example': 50,
    'https://another-buyer.example': 200,
    '*': 150,
    ...
  },
  componentAuctions: [
    {
      'seller': 'https://some-other-ssp.example',
      'decisionLogicUrl': ...,
      ...
    },
    ...
  ]
};

const auctionResultPromise = navigator.runAdAuction(auctionConfig);

runAdAuction(), विज्ञापन नीलामी के नतीजे को दिखाने वाले यूआरएन (urn:uuid:<something>) के प्रॉमिस को दिखाता है. इसे ब्राउज़र से सिर्फ़ तब डिकोड किया जा सकता है, जब रेंडरिंग के लिए इसे फ़ेंस किए गए फ़्रेम में पास किया गया हो: पब्लिशर पेज, जीतने वाले विज्ञापन की जांच नहीं कर सकता.

decisionLogicUrl स्क्रिप्ट हर विज्ञापन को, उससे जुड़ी बिड और मेटाडेटा के साथ-साथ, एक-एक करके शामिल करती है. इसके बाद, वह विज्ञापन को पसंद के मुताबिक एक संख्या वाला स्कोर असाइन करती है.

auctionConfig प्रॉपर्टी

प्रॉपर्टी ज़रूरी है उदाहरण भूमिका
seller ज़रूरी है 'https://ssp.example' सेलर का ऑरिजिन.
decisionLogicUrl ज़रूरी है 'https://ssp.example/auction-decision-logic.js' नीलामी वर्कलेट JavaScript के लिए यूआरएल.
trustedScoringSignalsUrl ज़रूरी नहीं है 'https://ssp.example/scoring-signals' विक्रेता के भरोसेमंद सर्वर का यूआरएल.
interestGroupBuyers* ज़रूरी है ['https://dsp.example', 'https://buyer2.example', ...] इंटरेस्ट ग्रुप के उन सभी मालिकों के ऑरिजिन जिन्हें नीलामी में बिड करने के लिए कहा गया है.
auctionSignals ज़रूरी नहीं है {...} पेज के कॉन्टेक्स्ट, नीलामी के टाइप वगैरह के बारे में सेलर की जानकारी.
sellerSignals ज़रूरी नहीं है {...} पब्लिशर सेटिंग पर आधारित जानकारी, संदर्भ के हिसाब से विज्ञापन का अनुरोध करना वगैरह.
sellerTimeout ज़रूरी नहीं है 100 विक्रेता की scoreAd() स्क्रिप्ट का ज़्यादा से ज़्यादा रनटाइम (मि॰से॰).
perBuyerSignals ज़रूरी नहीं है {'https://dsp.example': {...},
  'https://another-buyer.example': {...},
...}
हर खरीदार के लिए, पेज के बारे में काम के सिग्नल. ये सिग्नल सर्वर से मिलते हैं.
perBuyerTimeouts ज़रूरी नहीं है 50 विशेष खरीदार की generateBid() स्क्रिप्ट का अधिकतम रनटाइम (ms).
componentAuctions ज़रूरी नहीं है [{'seller': 'https://www.some-other-ssp.com',
  'decisionLogicUrl': ..., ...},
  ...]
कॉम्पोनेंट की नीलामियों के लिए अन्य कॉन्फ़िगरेशन.

* विक्रेता सभी इंटरेस्ट ग्रुप को बिड करने की अनुमति देने के लिए, interestGroupBuyers: '*' तय कर सकता है. इसके बाद, इंटरेस्ट ग्रुप के मालिक को शामिल करने के अलावा, किसी दूसरी शर्त के आधार पर विज्ञापनों को स्वीकार या अस्वीकार किया जाता है. उदाहरण के लिए, सेलर अपनी नीतियों के पालन की पुष्टि करने के लिए, विज्ञापन क्रिएटिव की समीक्षा कर सकता है.

** additionalBids सुरक्षित ऑडियंस को लागू करने के मौजूदा तरीके में काम नहीं करता. ज़्यादा जानकारी के लिए, Protected Audience से जुड़ी जानकारी में मौजूद, नीलामी में हिस्सा लेने वाले लोग सेक्शन को पढ़ें.

विज्ञापन कैसे चुने जाते हैं?

decisionLogicUrl के कोड (नीलामी कॉन्फ़िगरेशन ऑब्जेक्ट की एक प्रॉपर्टी, जिसे runAdAuction() को पास किया गया है) में scoreAd() फ़ंक्शन होना चाहिए. यह हर विज्ञापन को एक बार चलाया जाता है, ताकि यह तय किया जा सके कि वह विज्ञापन कितने काम का है.

scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals) {
  ...
  return desirabilityScoreForThisAd;
}

scoreAd() में ये आर्ग्युमेंट इस्तेमाल किए जाते हैं:

  • adMetadata
    खरीदार से मिला आर्बिट्ररी मेटाडेटा.
  • bid
    संख्या वाली बिड की वैल्यू.
  • auctionConfig
    नीलामी कॉन्फ़िगरेशन ऑब्जेक्ट navigator.runAdAuction() को पास किया गया.
  • trustedScoringSignals
    नीलामी के समय, सेलर के भरोसेमंद सर्वर से ली गई वैल्यू. इससे विज्ञापन के बारे में विक्रेता की राय का पता चलता है.
  • browserSignals
    ब्राउज़र के ज़रिए बनाया गया कोई ऑब्जेक्ट, जिसमें वह जानकारी शामिल होती है जो ब्राउज़र को पता होती है. साथ ही, इसमें विक्रेता की नीलामी की स्क्रिप्ट की पुष्टि की जाती है:
{
  topWindowHostname: 'publisher.example',
  interestGroupOwner: 'https://dsp.example',
  renderUrl: 'https://cdn.example/render',
  adComponents: ['https://cdn.com/ad-component-1', ...],
  biddingDurationMsec: 12,
  dataVersion: 1 /* Data-Version value from the seller's Key/Value service response. */
}

नीलामी शुरू होने से पहले, विक्रेता उपलब्ध विज्ञापन स्लॉट के लिए सबसे अच्छा प्रासंगिक विज्ञापन खोजता है. इसके scoreAd() तर्क का एक हिस्सा ऐसे विज्ञापन को अस्वीकार करना है जो प्रासंगिक विजेता को पीछे नहीं छोड़ सकता.

5. विक्रेता और हिस्सा लेने वाले खरीदारों को कुंजी/वैल्यू सेवा से रीयलटाइम डेटा मिलता है

इलस्ट्रेशन में एक व्यक्ति को अपने लैपटॉप पर ब्राउज़र में न्यूज़ वेबसाइट देखते हुए दिखाया गया है. Protected Audience API का इस्तेमाल करके, विज्ञापन
  नीलामी हो रही है. इसमें हिस्सा लेने वाले व्यक्ति को कुंजी/वैल्यू सेवा से डेटा मिल रहा है.

पूरी जानकारी देने वाला सेक्शन: Protected Audience Key/Value Service से रीयल-टाइम डेटा फ़ेच करना.

विज्ञापन नीलामी के दौरान, विज्ञापन स्पेस विक्रेता, navigator.runAdAuction() को पास किए गए नीलामी कॉन्फ़िगरेशन तर्क की trustedScoringSignalsUrl प्रॉपर्टी का इस्तेमाल करके, कुंजी/वैल्यू वाली सेवा को अनुरोध करके, खास विज्ञापन क्रिएटिव का रीयल टाइम डेटा पा सकता है. साथ ही, ads और नीलामी में सभी इंटरेस्ट ग्रुप के adComponents फ़ील्ड की renderUrl प्रॉपर्टी की कुंजियों का भी इस्तेमाल कर सकता है.

इसी तरह, विज्ञापन स्पेस का खरीदार भी कुंजी/वैल्यू सेवा से रीयलटाइम डेटा पाने का अनुरोध कर सकता है. ऐसा वह navigator.joinAdInterestGroup() में इंटरेस्ट ग्रुप के लिए पास किए गए तर्क की trustedBiddingSignalsUrl और trustedBiddingSignalsKeys प्रॉपर्टी का इस्तेमाल करके कर सकता है.

runAdAuction() को कॉल करने पर, ब्राउज़र हर विज्ञापन खरीदार के भरोसेमंद सर्वर को एक अनुरोध भेजता है. अनुरोध का यूआरएल ऐसा हो सकता है:

https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
  • बेस यूआरएल, trustedBiddingSignalsUrl से मिलता है.
  • hostname को ब्राउज़र उपलब्ध कराता है.
  • keys की वैल्यू, trustedBiddingSignalsKeys से ली जाती है.

इस अनुरोध का रिस्पॉन्स एक JSON ऑब्जेक्ट है, जो हर कुंजी के लिए वैल्यू देता है.

6. जीतने वाला विज्ञापन दिखाया जाता है

इलस्ट्रेशन में एक व्यक्ति को अपने लैपटॉप पर ब्राउज़र में न्यूज़ वेबसाइट देखते हुए दिखाया गया है. स्क्रीन
  पर एक बाइक (20% की छूट) का विज्ञापन दिखाया गया है—जिसमें ऊपर लॉक दिखाया गया है, जिससे पता चलता है कि विज्ञापन
  फ़ेंस किए गए फ़्रेम में दिखाया गया है.

पूरी जानकारी देने वाला सेक्शन: ब्राउज़र, जीतने वाले विज्ञापन को रेंडर करते हैं

जैसा कि पहले बताया गया है: runAdAuction() से मिलने वाला प्रॉमिस, यूआरएन में बदल जाता है, जिसे रेंडरिंग के लिए फ़ेंस किए गए फ़्रेम में भेजा जाता है. इसके बाद, साइट जीतने वाले विज्ञापन को दिखाती है.

7. नीलामी के नतीजे की रिपोर्ट दी गई

पूरी जानकारी देने वाला सेक्शन: इवेंट-लेवल की रिपोर्टिंग (अभी के लिए)

सेलर की शिकायत का नतीजा

पूरी जानकारी देने वाला सेक्शन: रेंडर के दौरान सेलर की रिपोर्टिंग

नीलामी के नतीजे रिपोर्ट करने के लिए, decisionLogicUrl पर उपलब्ध सेलर की JavaScript (जिसमें scoreAd() भी दी गई है) में reportResult() फ़ंक्शन शामिल हो सकता है.

reportResult(auctionConfig, browserSignals) {
  ...
  return signalsForWinner;
}

इस फ़ंक्शन में पास किए जाने वाले आर्ग्युमेंट, ये हैं:

  • auctionConfig
    नीलामी कॉन्फ़िगरेशन ऑब्जेक्ट navigator.runAdAuction() को पास किया गया.

  • browserSignals
    ब्राउज़र की मदद से बनाया गया ऑब्जेक्ट, जो नीलामी के बारे में जानकारी देता है. उदाहरण के लिए:

    {
      'topWindowHostname': 'publisher.example',
      'interestGroupOwner': 'https://dsp.example',
      'renderUrl': 'https://cdn.example/url-of-winning-creative.wbn',
      'bid:' <bidValue>,
      'desirability': <winningAdScore>
    }
    

इस फ़ंक्शन की रिटर्न वैल्यू का इस्तेमाल, बिड जीतने वाले बिडर के reportWin() फ़ंक्शन के लिए, sellerSignals आर्ग्युमेंट के तौर पर किया जाता है.

जीतने वाले बिडर की रिपोर्ट के नतीजे

पूरी जानकारी देने वाला सेक्शन: रेंडर और विज्ञापन इवेंट के बारे में खरीदार की रिपोर्टिंग

जीतने वाली बिडर का JavaScript (जिसमें generateBid() भी दिया गया है) नीलामी के नतीजे बताने के लिए, reportWin() फ़ंक्शन शामिल कर सकती है.

reportWin(auctionSignals, perBuyerSignals, sellerSignals, browserSignals) {
  ...
}

इस फ़ंक्शन में पास किए जाने वाले आर्ग्युमेंट, ये हैं:

  • auctionSignals और perBuyerSignals
    जीतने वाले बिडर के लिए वही वैल्यू जो generateBid() को पास की गई हैं.
  • sellerSignals
    reportResult() की रिटर्न वैल्यू, जिससे सेलर को खरीदार को जानकारी भेजने का मौका मिलता है.
  • browserSignals
    ब्राउज़र की मदद से बनाया गया ऑब्जेक्ट, जो नीलामी के बारे में जानकारी देता है. उदाहरण के लिए:

    {
      'topWindowHostname': 'publisher.example',
      'seller': 'https://ssp.example',
      'interestGroupOwner': 'https://dsp.example',
      'interestGroupName': 'custom-bikes',
      'renderUrl': 'https://cdn.example/winning-creative.wbn',
      'bid:' <bidValue>
    }
    

कुछ समय के लिए नुकसान/जीत की रिपोर्टिंग लागू करना

कुछ समय के लिए, नीलामी की रिपोर्ट बनाने के लिए Chrome में दो तरीके उपलब्ध हैं:

  • forDebuggingOnly.reportAdAuctionLoss()
  • forDebuggingOnly.reportAdAuctionWin()

इन तरीकों में से हर तरीके में सिर्फ़ एक तर्क दिया जाता है: नीलामी पूरी होने के बाद फ़ेच किया जाने वाला यूआरएल. उन्हें अलग-अलग यूआरएल आर्ग्युमेंट के साथ, scoreAd() और generateBid() दोनों में एक से ज़्यादा बार कॉल किया जा सकता है.

Chrome, डीबग लॉस/जीत की रिपोर्ट सिर्फ़ तब भेजता है, जब नीलामी पूरी हो जाती है. अगर कोई नीलामी रद्द कर दी जाती है (उदाहरण के लिए, नए नेविगेशन की वजह से), तो कोई रिपोर्ट जनरेट नहीं होगी.

ये तरीके Chrome में डिफ़ॉल्ट रूप से उपलब्ध होते हैं. तरीकों की जांच करने के लिए, chrome://settings/adPrivacy में विज्ञापन देखने वाले की निजता बनाए रखने वाले सभी एपीआई चालू करें. अगर Protected Audience को चालू करने के लिए, Chrome को कमांड लाइन फ़्लैग के साथ चलाया जा रहा है, तो आपको BiddingAndScoringDebugReportingAPI फ़्लैग को शामिल करके, तरीकों को साफ़ तौर पर चालू करना होगा. अगर फ़्लैग चालू नहीं है, तब भी तरीके उपलब्ध होंगे, लेकिन कुछ न करें.

8. विज्ञापन क्लिक की सूचना दी जाती है

इलस्ट्रेशन में एक व्यक्ति को समाचार वेबसाइट पर, बाड़े से बने फ़्रेम में खड़ी साइकल के विज्ञापन पर क्लिक करते हुए दिखाया गया है. साथ ही, इसमें विक्रेता और खरीदारों को रिपोर्ट
 का डेटा दिखाया गया है.

फ़ेंस किए गए फ़्रेम में रेंडर किए गए विज्ञापन पर होने वाले क्लिक को रिपोर्ट किया जाता है. यह कैसे काम कर सकता है, इस बारे में ज़्यादा जानने के लिए फ़ेंस किए गए फ़्रेम के विज्ञापनों की रिपोर्टिंग लेख पढ़ें.



नीचे दिए गए डायग्राम में, Protected Audience से जुड़ी विज्ञापन नीलामी के हर चरण के बारे में बताया गया है:

इस इमेज में, Protected Audience से जुड़ी विज्ञापन नीलामी के हर चरण के बारे में खास जानकारी दी गई है


Protected Audience और TURTLEDOVE में क्या अंतर है?

Protected Audience, प्रपोज़ल के TURTLEDOVE फ़ैमिली में Chromium में लागू किया जाने वाला पहला एक्सपेरिमेंट है.

Protected Audience, TURTLEDOVE के हाई-लेवल सिद्धांतों का पालन करता है. कुछ ऑनलाइन विज्ञापन, विज्ञापन देने वाले या विज्ञापन नेटवर्क कंपनी से इंटरैक्ट करने में दिलचस्पी रखने वाले किसी व्यक्ति को विज्ञापन दिखाने पर आधारित होते हैं. पहले यह विज्ञापन देने वालों के लिए काम करता था, ताकि वे किसी खास व्यक्ति को वेब साइटों पर ब्राउज़ करने के दौरान उसकी पहचान कर सकें. यह आज के वेब के लिए निजता की एक प्रमुख चिंता है.

TURTLEDOVE की कोशिश, इस इस्तेमाल के उदाहरण के लिए नया एपीआई उपलब्ध कराने के साथ-साथ निजता से जुड़े कुछ अहम बदलाव लाने पर है:

  • विज्ञापन देने वाला नहीं, बल्कि ब्राउज़र यह जानकारी रखता है कि विज्ञापन देने वाले व्यक्ति की दिलचस्पी किस चीज़ में है.
  • विज्ञापन देने वाले, दिलचस्पी के आधार पर विज्ञापन दिखा सकते हैं. हालांकि, वे उस दिलचस्पी को किसी व्यक्ति की अन्य जानकारी के साथ नहीं जोड़ सकते. खास तौर पर, यह जानकारी कि वे कौन हैं या वे किस पेज पर जा रहे हैं.

Protected Audience में TURTLEDOVE की शुरुआत हुई और इससे जुड़े प्रस्तावों का कलेक्शन हुआ, ताकि एपीआई का इस्तेमाल करने वाले डेवलपर को बेहतर तरीके से मदद मिल सके:

  • SPARROW में: Criteo ने ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट (टीईई) में चलने वाले ("गेटकीपर") सर्विस मॉडल को जोड़ने का सुझाव दिया है. Protected Audience में, रीयल-टाइम डेटा लुकअप और एग्रीगेटेड रिपोर्टिंग के लिए, TEE का ज़्यादा सीमित इस्तेमाल किया जा सकता है.
  • NextRoll के TERN और Magnite के PARRROT प्रपोज़ल में, डिवाइस पर नीलामी में खरीदारों और सेलर की अलग-अलग भूमिकाओं के बारे में बताया गया था. Protected Audience में विज्ञापन की बिडिंग/स्कोरिंग का फ़्लो, इस काम पर आधारित होता है.
  • आरटीबी हाउस के नतीजे पर आधारित और प्रॉडक्ट-लेवल TURTLEDOVE में किए गए बदलाव से, उपयोगकर्ता के डिवाइस पर नीलामी से जुड़ी पहचान छिपाने के मॉडल और ऐप्लिकेशन को उपयोगकर्ता के मनमुताबिक बनाने की सुविधाओं में सुधार हुआ है
  • पैराकिट, TURTLEDOVE जैसी विज्ञापन सेवा के लिए Microsoft का प्रस्ताव है. यह विज्ञापन अनुरोधों की पहचान छिपाने और निजता प्रॉपर्टी लागू करने के लिए, ब्राउज़र और विज्ञापन टेक्नोलॉजी से जुड़ी सेवा देने वाली कंपनियों के बीच TEE में चलने वाले प्रॉक्सी सर्वर पर निर्भर करती है. Protected Audience ने इस प्रॉक्सी मॉडल का इस्तेमाल नहीं किया है. हम paraKEET और Protected Audience के लिए JavaScript API को लागू कर रहे हैं, ताकि आने वाले समय में दोनों प्रपोज़ल की सबसे अच्छी सुविधाओं को एक साथ जोड़ा जा सके.

Protected Audience फ़िलहाल किसी वेबसाइट के विज्ञापन नेटवर्क को यह जानने से नहीं रोकता कि कोई व्यक्ति कौनसे विज्ञापन देखता है. हम एपीआई को समय के साथ ज़्यादा निजी बनाने के लिए, उसमें बदलाव करने की उम्मीद करते हैं.

ब्राउज़र का कौनसा कॉन्फ़िगरेशन उपलब्ध है?

Chrome में प्राइवसी सैंडबॉक्स के ट्रायल के लिए, उपयोगकर्ता अपनी भागीदारी में बदलाव कर सकते हैं. इसके लिए, उन्हें chrome://settings/adPrivacy में टॉप-लेवल सेटिंग को चालू या बंद करना होगा. शुरुआती टेस्टिंग के दौरान, लोग Protected Audience से ऑप्ट आउट करने के लिए, Privacy Sandbox की इस हाई-लेवल सेटिंग का इस्तेमाल कर सकेंगे. Chrome की योजना है कि लोग उन इंटरेस्ट ग्रुप की सूची देख सकें और उन्हें मैनेज कर सकें जिन्हें उन्होंने विज़िट की गई वेबसाइटों पर जोड़ा गया है. प्राइवसी सैंडबॉक्स टेक्नोलॉजी की तरह ही, उपयोगकर्ताओं, रेगुलेटर, और अन्य लोगों से मिले सुझाव, शिकायत या राय के हिसाब से उपयोगकर्ता सेटिंग में भी बदलाव हो सकते हैं.

टेस्ट और सुझाव के आधार पर, Protected Audience से जुड़े प्रस्ताव की प्रोग्रेस के साथ-साथ, हम Chrome में उपलब्ध सेटिंग को अपडेट करते रहेंगे. आने वाले समय में, हम Protected Audience और उससे जुड़े डेटा को मैनेज करने के लिए, ज़्यादा जानकारी वाली सेटिंग उपलब्ध कराएंगे.

जब उपयोगकर्ता गुप्त मोड में ब्राउज़ करते हैं, तो एपीआई कॉलर, ग्रुप की सदस्यता को ऐक्सेस नहीं कर सकते. साथ ही, जब उपयोगकर्ता अपनी साइट का डेटा मिटा देते हैं, तब सदस्यता हटा दी जाती है.



दिलचस्पी बढ़ाएं और सुझाव दें

सहायता पाएँ

लागू करने की प्रक्रिया, डेमो या दस्तावेज़ के बारे में कोई सवाल पूछने के लिए:

Chrome में Protected Audience API को लागू करने से जुड़ी गड़बड़ियों और समस्याओं के लिए: * एपीआई के लिए रिपोर्ट की गई मौजूदा समस्याएं देखें. * crbug.com/new पर जाकर नई समस्या के बारे में बताएं.

अपडेट पाएं

  • एपीआई में स्थिति में हुए बदलावों की सूचना पाने के लिए, डेवलपर के लिए ईमेल पाने वाले लोगों की सूची में शामिल हों.
  • एपीआई पर चल रही सभी बातचीत का बारीकी से पालन करने के लिए, GitHub पर प्रस्ताव पेज पर देखें बटन पर क्लिक करें. इसके लिए ज़रूरी है कि आपके पास GitHub खाता हो या आपके पास होना चाहिए.
  • प्राइवसी सैंडबॉक्स के सभी अपडेट पाने के लिए, आरएसएस फ़ीड की सदस्यता लें [Privacy Sandbox में प्रोग्रेस].

ज़्यादा जानें


Unस्प्लैश पर रे हेनेसी की फ़ोटो.