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

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

यह पोस्ट, Protected Audience API की परफ़ॉर्मेंस को बेहतर बनाने के मौजूदा तरीके के बारे में तकनीकी जानकारी देती है.

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

  • Protected Audience डेमो में, FLEDGE के डिप्लॉयमेंट से जुड़े कदम-दर-कदम निर्देश दिए गए हैं.

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

सुरक्षित ऑडियंस क्या है?

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

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

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

FLEDGE की लाइफ़साइकल के हर चरण की खास जानकारी देने वाली इमेज
FLEDGE की लाइफ़साइकल.

मैं सुरक्षित ऑडियंस की सुविधा को कैसे आज़माऊं?

सुरक्षित ऑडियंस का डेमो

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

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

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

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

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

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

Protected Audience डेमो, शुरू से अंत तक 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);
    

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

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

chrome://flags या फ़ीचर फ़्लैग की मदद से टेस्ट करें

डेस्कटॉप पर, Chrome Beta 101.0.4951.26 और इसके बाद के वर्शन में, किसी एक उपयोगकर्ता के लिए Protected Audience की जांच की जा सकती है: * chrome://flags/#privacy-sandbox-ads-apis को चालू करके. * कमांड लाइन से फ़्लैग सेट करना.

विज्ञापन 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 के मौजूदा लागू में डिफ़ॉल्ट तौर पर यह सुविधा डिफ़ॉल्ट रूप से, joinAdInterestGroup() को पेज पर कहीं से भी कॉल करने की अनुमति देती है. यहां तक कि क्रॉस-डोमेन iframe से भी कॉल किए जा सकते हैं. आने वाले समय में, जब साइट के मालिकों को अपनी क्रॉस-डोमेन iframe की अनुमतियों से जुड़ी नीतियों में बदलाव करने का समय मिलेगा, तब क्रॉस-डोमेन iframe से आने वाले कॉल को रोकने की योजना बनाई जाएगी. इस बारे में जानकारी देने वाले लेख में बताया गया है.

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

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

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

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

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

सुविधा सहायता का पता लगाएं

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

'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 के ऐक्सेस को ब्लॉक किया जा सकता है.

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

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

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

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

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

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

<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 के बारे में जानकारी देने वाली रिपोर्ट में, एपीआई डिज़ाइन से जुड़े एलिमेंट के बारे में ज़्यादा जानकारी दी गई है. साथ ही, यह भी बताया गया है कि एपीआई निजता से जुड़े लक्ष्यों को कैसे पूरा करता है.

सुरक्षित ऑडियंस वाले वर्कलेट को डीबग करें

Chrome Canary 98.0.4718.0 से, Chrome DevTools में सुरक्षित ऑडियंस वर्कलेट को डीबग किया जा सकता है.

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

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

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

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

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

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

सुरक्षित ऑडियंस के लिए बनाए गए इवेंट

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

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

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

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

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

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

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

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

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

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

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

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

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

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

joinAdInterestGroup() को इनसे अनुमति चाहिए: * देखी जा रही साइट * इंटरेस्ट ग्रुप का मालिक

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

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

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

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

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

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

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

navgator.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 kiB से ज़्यादा नहीं होना चाहिए. ऐसा न होने पर, कॉल पूरा नहीं हो पाएगा. दूसरा पैरामीटर एक इंटरेस्ट ग्रुप की अवधि के बारे में बताता है, जिसे 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 ऐसे वेब सर्वर के बारे में बताता है जो navigator.joinAdInterestGroup() को पास किए गए इंटरेस्ट ग्रुप ऑब्जेक्ट के हिसाब से, JSON की जानकारी देने वाले इंटरेस्ट ग्रुप की प्रॉपर्टी दिखाता है. इससे ग्रुप के मालिक को एक तरीका मिलता है, ताकि वह ग्रुप के एट्रिब्यूट को समय-समय पर अपडेट कर सके. मौजूदा सेटअप में, इन एट्रिब्यूट को बदला जा सकता है:

  • 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() को एक बार कॉल किया जाता है. विक्रेता, नीलामी के कॉन्फ़िगरेशन पैरामीटर पर decisionLogicUrl प्रॉपर्टी उपलब्ध कराता है, जिसे navigator.runAdAuction() को पास किया गया है. इस यूआरएल के कोड में एक 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 हो और खरीदार के सर्वर को रीयल-टाइम बिडिंग कॉल करता हो और जवाब को पाइपलाइन करता हो. इसके अलावा, यह तब भी हो सकता है, जब पब्लिशर पेज सीधे खरीदार के सर्वर से संपर्क करता हो. अगर ऐसा है, तो खरीदार से किसी भी तरह की छेड़छाड़ से बचने के लिए, generateबिड() में उन सिग्नल के क्रिप्टोग्राफ़िक हस्ताक्षर की जांच की जा सकती है.

  • 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/faq#ssp) इस जानकारी का इस्तेमाल नीलामी और फ़ैसले के विज्ञापन क्रिएटिव में करता है. सेलर इस जानकारी का इस्तेमाल, नीलामी और फ़ैसले के लॉजिक में करता है.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

विज्ञापन स्पेस विक्रेता, 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 (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() स्क्रिप्ट का ज़्यादा से ज़्यादा रनटाइम (मि॰से॰).
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 का इस्तेमाल करके, विज्ञापन की नीलामी हो रही है. इस नीलामी में हिस्सा लेने वाले व्यक्ति को कुंजी/वैल्यू सेवा से डेटा मिल रहा है.

जानकारी वाला सेक्शन: सुरक्षित ऑडियंस कुंजी/वैल्यू सेवा से रीयल-टाइम डेटा फ़ेच करना.

विज्ञापन नीलामी के दौरान, विज्ञापन स्पेस सेलर को खास विज्ञापन क्रिएटिव के बारे में रीयल टाइम डेटा मिल सकता है. इसके लिए, कुंजी/वैल्यू सेवा के लिए अनुरोध किया जाता है. इसके लिए, 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://flags/#privacy-sandbox-ads-apis चालू है, तो ये तरीके Chrome में डिफ़ॉल्ट रूप से उपलब्ध होते हैं. हालांकि, अगर Protected Audience को चालू करने के लिए, Chrome को कमांड लाइन फ़्लैग के साथ चलाया जा रहा है, तो आपको BiddingAndScoringDebugReportingAPI फ़्लैग शामिल करके, तरीकों को साफ़ तौर पर चालू करना होगा. अगर फ़्लैग चालू नहीं है, तो भी तरीके उपलब्ध रहेंगे, लेकिन कुछ नहीं किया जा सकेगा.

8. विज्ञापन पर हुए क्लिक की रिपोर्ट की जाती है

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

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



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

सुरक्षित ऑडियंस वाली विज्ञापन नीलामी के हर चरण की खास जानकारी देने वाली इमेज


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

सुरक्षित ऑडियंस, Chromium में प्रपोज़ल फ़ैमिली का पहला एक्सपेरिमेंट है. इसे Chromium में लागू किया गया है.

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

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

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

सुरक्षित ऑडियंस की संख्या, TURTLEDOVE से बढ़ी. साथ ही, एपीआई का इस्तेमाल करने वाले डेवलपर को बेहतर सेवा देने के लिए, उनमें बदलाव करने के लिए मिलते-जुलते प्रपोज़ल भी मिले:

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

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

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

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

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

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



दिलचस्पी दिखाएं और सुझाव/राय दें या शिकायत करें

सहायता पाएँ

लागू करने, डेमो या दस्तावेज़ के बारे में कोई सवाल पूछने के लिए: * privacy-sandbox-dev-support रिपॉज़िटरी में कोई नई समस्या खोलें. सुरक्षित ऑडियंस के लिए, समस्या वाला टेंप्लेट चुनना न भूलें. * GitHub पर डेमो कोड रेपो पर समस्या बताएं. * एपीआई की मदद से अपने इस्तेमाल के उदाहरण पूरा करने के तरीके के बारे में और सामान्य सवालों के लिए, प्रपोज़ल रिपॉज़िटरी पर कोई समस्या दर्ज करें.

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

अपडेट पाएं

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

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


Unsplash पर रे हेनेसी की फ़ोटो.