पब्लिशर के पेज पर विज्ञापन नीलामी सेट अप करना

Protected Audience API की नीलामी को कॉन्फ़िगर करने का तरीका जानें.

डिवाइस पर होने वाली ऐसी नीलामियां जो सेलर करते हैं

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

  1. विक्रेता तय करते हैं कि (a) कौनसे खरीदार हिस्सा ले सकते हैं और (b) उन खरीदारों के इंटरेस्ट ग्रुप की किन बिड के लिए नीलामी में हिस्सा लिया जा सकता है. इससे सेलर, पेज पर दिखाए जाने वाले विज्ञापनों के लिए साइट के नियमों को लागू कर सकता है.
  2. नीलामी के कारोबारी नियम के लिए विक्रेता ज़िम्मेदार होते हैं: एक JavaScript कोड, जो हर बोली की कीमत और मेटाडेटा को ध्यान में रखता है और "वांछता" के स्कोर का हिसाब लगाता है. सबसे ज़्यादा ज़रूरी स्कोर वाली बिडिंग नीलामी में जीत जाती है.
  3. विक्रेता, नीलामी के नतीजे के बारे में रिपोर्टिंग करते हैं. इसमें कीमत तय करने और अन्य पे-आउट की जानकारी शामिल होती है. जीतने और हारने वाले खरीदारों को भी अपनी रिपोर्टिंग होती है.

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

Protected Audience API की विज्ञापन नीलामी को कॉन्फ़िगर करना

Protected Audience API की विज्ञापन नीलामी चलाने के लिए, सबसे पहले नीलामी को कॉन्फ़िगर करें. ऐसा करने के लिए, auctionConfig ऑब्जेक्ट बनाया जाता है. यहां ऐसे कॉन्फ़िगरेशन का एक उदाहरण दिया गया है:

const auctionConfig = {
  seller: 'https://seller.example',
  decisionLogicUrl: ...,
  trustedScoringSignalsUrl: ...,
  interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
  auctionSignals: {...},
  sellerSignals: {...},
  sellerTimeout: 100,
  perBuyerSignals: {
    'https://buyer-1.example': {...},
    'https://buyer-2.example': {...},
    ...
  },
  perBuyerTimeouts: {
    'https://buyer-1.example': 50,
    'https://buyer-2.example': 200,
    '*': 150,
    ...
  },
  componentAuctions: [
    {
      'seller': 'https://component-seller.example',
      'decisionLogicUrl': ...,
      ...
    },
    ...
  ],
  resolveToConfig: [true|false],
};

AuctionConfig प्रॉपर्टी

ज़रूरी प्रॉपर्टी

auctionConfigs के लिए सिर्फ़ seller, decisionLogicUrl, और interestGroupBuyers प्रॉपर्टी ज़रूरी हैं.

प्रॉपर्टी उदाहरण भूमिका
विक्रेता https://seller.example सेलर का ऑरिजिन.
decisionLogicUrl https://seller.example/decision-logic.js नीलामी में इस्तेमाल किए जाने वाले JavaScript के फ़ैसले के लॉजिक के वर्कलेट का यूआरएल. इस फ़ील्ड का ऑरिजिन और सेलर फ़ील्ड, एक ही होना चाहिए.
interestGroupBuyers [https://buyer-1.example,
https://buyer-2.example,
...]
जिन इंटरेस्ट ग्रुप के मालिकों ने नीलामी में बिड करने के लिए कहा है उनके ऑरिजिन

वैकल्पिक प्रॉपर्टी

auctionConfigs के लिए बाकी प्रॉपर्टी ज़रूरी नहीं हैं.

प्रॉपर्टी उदाहरण भूमिका
trustedScoringSignalsUrl https://seller.example/scoring-signals विक्रेता के कुंजी/वैल्यू सर्वर का यूआरएल. विज्ञापन स्कोरिंग के दौरान, इसकी क्वेरी क्रिएटिव के रेंडर यूआरएल को कुंजी के तौर पर इस्तेमाल करके की जाएगी. इस फ़ील्ड का ऑरिजिन और सेलर फ़ील्ड, एक ही होना चाहिए.
auctionSignals {"category":"खबरें"} क्रम से लगाने वाला JSON ऑब्जेक्ट, जो नीलामी में हिस्सा लेने वाले सभी खरीदारों और सेलर के लिए उपलब्ध सिग्नल दिखाता है.
sellerSignals {...} क्रम से लगाने वाला JSON ऑब्जेक्ट, जो सिर्फ़ सेलर के लिए उपलब्ध सिग्नल दिखाता है.
perBuyerSignals {https://dsp.example: {...},
https://another-buyer.example: {...},
... }
किसी खास खरीदार के लिए उपलब्ध सिग्नल. ये सिग्नल, सेलर और खरीदारों से भी मिल सकते हैं.
perBuyerTimeouts {https://www.example-dsp.com: 50,
https://www.another-buyer.com: 200,
*: 150,
...},
किसी खास खरीदार की generateBid() स्क्रिप्ट के लिए, मिलीसेकंड में ज़्यादा से ज़्यादा रनटाइम. वाइल्डकार्ड सिंबल हर उस खरीदार पर लागू होगा जिसने टाइम आउट तय नहीं किया है.
sellerTimeout 100 सेलर की ScoreAd() स्क्रिप्ट के मिलीसेकंड में ज़्यादा से ज़्यादा रनटाइम.
componentAuctions [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] कॉम्पोनेंट की नीलामियों के लिए अतिरिक्त कॉन्फ़िगरेशन.
resolveToConfig सही|गलत सही होने पर, FencedFrameConfig में इस्तेमाल करने के लिए (<fencedframe> में इस्तेमाल करने के लिए) सही होने पर, RunAdनीलामी() से मिले प्रॉमिस को डायरेक्ट करने वाला बूलियन. गलत होने पर, ओपेक urn:uuid यूआरएल पर भेजा जा सकता है. यह गलत होने पर, डिफ़ॉल्ट तौर पर <iframe> में इस्तेमाल किया जाता है.

एसिंक्रोनस तरीके से सिग्नल देना

कुछ सिग्नल (जिन्हें auctionSignals, sellerSignals, perBuyerSignals, और perBuyerTimeouts फ़ील्ड से कॉन्फ़िगर किया गया है) की वैल्यू, कंक्रीट वैल्यू के तौर पर नहीं, बल्कि प्रॉमिस के तौर पर दी जा सकती हैं. इससे, नीलामी के कुछ हिस्सों को अनुमति मिलती है, जैसे कि स्क्रिप्ट और भरोसेमंद सिग्नल को लोड करना और अलग-अलग वर्कलेट की प्रोसेस को लॉन्च करना, ताकि उन वैल्यू की कंप्यूटेशन (या नेटवर्क वापस पाना) को ओवरलैप किया जा सके. वर्कलेट स्क्रिप्ट में सिर्फ़ वे वैल्यू दिखेंगी जिनका समाधान किया जा चुका है. अगर ऐसा कोई प्रॉमिस अस्वीकार किया जाता है, तो नीलामी तब तक रद्द कर दी जाएगी, जब तक कि वह पहले ही पूरी नहीं हो जाती या किसी दूसरे तरीके से रद्द नहीं कर दी जाती.

एक से ज़्यादा सेलर के लिए नीलामी कॉन्फ़िगर करना

कुछ मामलों में, ऐसा हो सकता है कि एक से ज़्यादा सेलर किसी नीलामी में हिस्सा लेना चाहें. हालांकि, अलग-अलग नीलामियों के विजेताओं को दूसरी नीलामी में भेजा जाता है और इसे कोई दूसरा सेलर करता है. पास होने वाली इन अलग-अलग नीलामियों को कॉम्पोनेंट नीलामियां कहा जाता है. इन कॉम्पोनेंट की नीलामियों को आसान बनाने के लिए, componentAuctions ऑब्जेक्ट में, हर सेलर की कॉम्पोनेंट नीलामी के लिए, नीलामी के अन्य कॉन्फ़िगरेशन शामिल हो सकते हैं. इनमें से हर नीलामी की जीतने वाली बिड को, "टॉप-लेवल" नीलामी को पास किया जाएगा. इससे नीलामी को आखिरी फ़ैसला लेने में मदद मिलती है. ऐसा हो सकता है कि कॉम्पोनेंट की auctionConfig में, अपनी componentAuctions न हो. अगर componentAuctions खाली नहीं है, तो interestGroupBuyers खाली होना चाहिए. इसका मतलब है कि किसी खास सुरक्षित ऑडियंस नीलामी के लिए, सिर्फ़ एक सेलर होता है और कोई कॉम्पोनेंट नीलामी नहीं होती. ऐसा भी हो सकता है कि सभी बिड, कॉम्पोनेंट नीलामियों से आती हैं और टॉप-लेवल की नीलामी में, सिर्फ़ कॉम्पोनेंट नीलामी के विजेताओं में से ही किसी एक को चुना जा सकता है.

नीलामी करें

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

try {
  const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
  // Handle error.
}

runAdAuction() कॉल, विज्ञापन में शामिल होने वाला प्रॉमिस दिखाता है. पब्लिशर पेज पर मौजूद किसी भी कोड से, जीतने वाले विज्ञापन की जांच नहीं की जा सकती. इसके अलावा, runAdAuction() के नतीजे से, उसके कॉन्टेंट के बारे में भी नहीं जाना जा सकता. अगर AuctionConfig में resolveToConfig फ़्लैग को 'सही' पर सेट किया गया है, तो FencedFrameConfig ऑब्जेक्ट दिखाया जाता है. इसे सिर्फ़ फ़ेंस किए गए फ़्रेम में रेंडर किया जा सकता है. अगर फ़्लैग को 'गलत' पर सेट किया गया था, तो एक ओपेक यूआरएन दिखाया जाता है, जिसे iframe में रेंडर किया जा सकता है. हो सकता है कि RunAdनीलामी में शून्य वैल्यू दिखे. इससे पता चलता है कि कोई विज्ञापन नहीं चुना गया है. इस स्थिति में विक्रेता एक प्रासंगिक रूप से लक्षित विज्ञापन को रेंडर करना चुन सकता है.