विज्ञापन खरीदार (DSP और विज्ञापनदाता) के रूप में, विज्ञापनदाता साइट पर आपके द्वारा तय किए गए रुचि समूह पर किसी विज्ञापन को लक्षित करने के लिए प्रकाशक साइट पर सुरक्षित दर्शक विज्ञापन नीलामी में भाग लेने में आपकी रुचि हो सकती है. Protected Audience ऑक्शन में हिस्सा लेकर, अन्य साइटों पर मौजूद अपने पहचाने गए ग्राहकों तक पहुंचा जा सकता है. इसके लिए, निजता की सुरक्षा का ध्यान रखा जाता है.
Protected Audience ऑक्शन में, आपको बिड जनरेट करने का लॉजिक दिया जाता है. इसके बाद, ब्राउज़र उस लॉजिक का इस्तेमाल करके बिड कैलकुलेट करता है. यह दूसरे नीलामी आर्किटेक्चर से बिलकुल उलट होता है, जहां आप तर्क देने के बजाय सीधे बोली सबमिट करते हैं.
आप generateBid()
JavaScript फ़ंक्शन में अपना बिड जनरेट करने का लॉजिक देते हैं और फ़ाइल आपके सर्वर पर होस्ट की जाती है. जब किसी उपयोगकर्ता को इंटरेस्ट ग्रुप में जोड़ा जाता है, तो इस फ़ाइल की जगह को इंटरेस्ट ग्रुप के कॉन्फ़िगरेशन में biddingLogicUrl
के तौर पर पास कर दिया जाता है.
नीलामी के दौरान, ब्राउज़र biddingLogicUrl
फ़ील्ड में दिए गए आपके बिडिंग लॉजिक को फ़ेच करता है. साथ ही, हर इंटरेस्ट ग्रुप के लिए आपके generateBid()
फ़ंक्शन को एक सुरक्षित आइसोलेटेड एनवायरमेंट में एक्ज़ीक्यूट करता है, जो बाहरी कॉन्टेक्स्ट में सीमित कम्यूनिकेशन में होता है. generateBid()
चलाने पर ब्राउज़र, फ़ंक्शन को आर्ग्युमेंट के तौर पर सिग्नल भेजता है. इन सिग्नल में अलग-अलग सोर्स से मिलने वाली कई जानकारी शामिल होती है. जैसे, पब्लिशर के पहले पक्ष (ग्राहक) का डेटा, सेलर का डेटा, रीयल-टाइम डेटा वगैरह. बिड को कैलकुलेट करने के लिए, इन सिग्नल का इस्तेमाल किया जा सकता है. इसके बाद, generateBid()
कॉल से वैल्यू मिलती है. बिड सबमिट करने के बाद, ब्राउज़र हर बिड पर सेलर के स्कोरिंग लॉजिक को लागू करेगा. इससे, सेलर के ज़रूरी स्कोर का हिसाब लगाया जाएगा.
generateBid()
यहां, generateBid()
फ़ंक्शन के आर्ग्युमेंट और फ़ंक्शन से मिलने वाली बिड के स्ट्रक्चर के बारे में बताया गया है:
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
return {
ad: adObject,
adCost: optionalAdCost,
bid: bidValue,
bidCurrency: 'USD',
render: {
url: renderURL,
width: renderWidth,
height: renderHeight
},
adComponents: [
{url: adComponent1, width: componentWidth1, height: componentHeight1},
{url: adComponent2, width: componentWidth2, height: componentHeight2},
// ...
],
allowComponentAuction: false,
modelingSignals: 123 // 0-4095 integer (12-bits)
};
}
तर्क
generateBid()
में ये आर्ग्युमेंट इस्तेमाल किए जाते हैं:
आर्ग्यूमेंट | भूमिका |
---|---|
|
विज्ञापन खरीदार की ओर से पास किया गया कोई ऑब्जेक्ट. इंटरेस्ट ग्रुप को dailyUpdateUrl से अपडेट किया जा सकता है. |
|
नीलामी के कॉन्फ़िगरेशन के तर्क की प्रॉपर्टी, जिसे सेलर ने navigator.runAdAuction() को पास किया था. इससे पेज के कॉन्टेक्स्ट (जैसे कि विज्ञापन का साइज़ और पब्लिशर आईडी), नीलामी का टाइप (फ़र्स्ट प्राइस या सेकंड-प्राइस), और दूसरे मेटाडेटा के बारे में जानकारी मिलती है. |
|
नीलामी के कॉन्फ़िगरेशन के लिए, सेलर की पास की गई प्रॉपर्टी. यह खरीदार के सर्वर से पेज के बारे में काम के सिग्नल दे सकता है. ऐसा तब हो सकता है, जब सेलर, SSP हो और खरीदार के सर्वर को रीयल-टाइम बिडिंग कॉल करता हो और जवाब को सीधे भेजता हो या पब्लिशर का पेज, खरीदार के सर्वर से सीधे संपर्क करता हो. अगर ऐसा है, तो खरीदार आपसे छेड़छाड़ करने से बचने के लिए, generateBid() में उन सिग्नल के क्रिप्टोग्राफ़िक हस्ताक्षर की जांच कर सकता है. |
|
वह ऑब्जेक्ट जिसकी कुंजियां, इंटरेस्ट ग्रुप के लिए trustedBiddingSignalsKeys होती हैं और जिनकी वैल्यू trustedBiddingSignals अनुरोध में मिलती हैं. |
|
ब्राउज़र का इस्तेमाल करके बनाया गया ऑब्जेक्ट, जिसमें पेज के कॉन्टेक्स्ट की जानकारी (जैसे कि मौजूदा पेज का hostname , जिसके लिए विक्रेता जाली बना सकता है) और खुद इंटरेस्ट ग्रुप का डेटा (जैसे, डिवाइस पर फ़्रीक्वेंसी कैपिंग की अनुमति देने के लिए, ग्रुप की ओर से पिछली बार नीलामी कब जीता था) का डेटा शामिल हो सकता है. |
|
ऐसे सिग्नल जो किसी खास सेलर से मिलने की गारंटी देते हैं. यह auctionSignals और sellerSignals के लिए नहीं होता, क्योंकि runAdAuction को कहां से चलाया जा रहा है, इस बारे में जानकारी रखने वाले किसी भी व्यक्ति से मिलने वाले सिग्नल. |
ब्राउज़र सिग्नल
browserSignals
ऑब्जेक्ट में ये प्रॉपर्टी होती हैं:
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
topLevelSeller: 'https://www.top-level-ssp.com',
requestedSize: {width: 100, height: 200}, /* if specified in auction config */
joinCount: 3,
recency: 3600000,
bidCount: 17,
prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
wasmHelper: ...
dataVersion: 1,
adComponentsLimit: 40
}
प्रॉपर्टी | ब्यौरा |
---|---|
|
उस होस्टनेम का नाम जहां runAdAuction() कॉल किया गया था. |
|
वह सेलर जिस पर बिड सबमिट की गई है. कॉम्पोनेंट की नीलामी में, यह वैल्यू कॉम्पोनेंट सेलर की होती है. |
|
किसी कॉम्पोनेंट की नीलामी में टॉप लेवल का सेलर, जो सिर्फ़ कॉम्पोनेंट की नीलामी में मौजूद होता है. |
|
requestedSize प्रॉपर्टी, नीलामी के लिए फ़्रेम साइज़ का सुझाव देती है. विक्रेता, नीलामी कॉन्फ़िगरेशन में अनुरोध किया गया साइज़ सेट करता है और यह वैल्यू, generateBid() में बिडिंग करने वालों के लिए उपलब्ध हो जाती है. नीलामी में बिड करने वाले लोग, विज्ञापन के लिए कॉन्टेंट का अलग साइज़ चुन सकते हैं. इससे, एलिमेंट के कंटेनर साइज़ में फ़िट होने के लिए, इस साइज़ को विज़ुअल तौर पर स्केल किया जाएगा. |
|
joinCount फ़ील्ड से पता चलता है कि पिछले 30 दिनों में यह डिवाइस, इंटरेस्ट ग्रुप में कितनी बार शामिल हुआ. इसका मतलब है कि सदस्यता छोड़ने या उसकी समयसीमा खत्म होने की वजह से, डिवाइस पर इंटरेस्ट ग्रुप के स्टोरेज में कोई अंतर नहीं आया. |
|
recency फ़ील्ड, इस इंटरेस्ट ग्रुप में शामिल होने से लेकर अब तक की समयावधि (मिनट में) है |
|
वह संख्या जितनी बार इंटरेस्ट ग्रुप ने बिड सबमिट की. |
|
prevWinMs फ़ील्ड में, इंटरेस्ट ग्रुप के जीतने वाले विज्ञापन और मिलीसेकंड में उनकी पिछली जीत से अब तक का समय शामिल होता है. ध्यान दें कि यहां मौजूद विज्ञापन ऑब्जेक्ट में सिर्फ़ renderURL और मेटाडेटा फ़ील्ड हैं. |
|
एक WebAssembly.मॉड्यूल ऑब्जेक्ट, जो इंटरेस्ट ग्रुप के biddingWasmHelperURL पर आधारित है. |
|
खरीदार के कुंजी/वैल्यू सेवा के जवाब से मिलने वाला Data-Version मान. |
|
इससे ज़्यादा से ज़्यादा generateBid() विज्ञापन कॉम्पोनेंट दिखाए जा सकते हैं |
बिड का हिसाब लगाना
बिड की वैल्यू कैलकुलेट करने के लिए, generateBid()
में मौजूद कोड, फ़ंक्शन के पैरामीटर की प्रॉपर्टी का इस्तेमाल कर सकता है.
उदाहरण के लिए:
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
बिड रिटर्न करना
generateBid()
इन प्रॉपर्टी वाला एक ऑब्जेक्ट दिखाता है:
प्रॉपर्टी | भूमिका |
---|---|
ad |
विज्ञापन से जुड़ा आर्बिट्रेरी मेटाडेटा, जैसे कि वह जानकारी जिसे सेलर इस बिड या विज्ञापन क्रिएटिव के बारे में जानने की उम्मीद करता है. सेलर इस जानकारी का इस्तेमाल, नीलामी और फ़ैसले के आधार पर करता है. |
adCost |
यह संख्यात्मक वैल्यू है, जिसका इस्तेमाल रिपोर्टिंग में विज्ञापन देने वाले के क्लिक या कन्वर्ज़न की लागत को Genबिड से reportWin तक भेजने के लिए किया जाता है. यह संख्या 8-बिट मैंटिसा और 8-बिट एक्सपोनेंट तक सीमित होती है, जिसमें कोई भी राउंडिंग स्टॉकेस्टिक तरीके से की जाती है. |
adComponents |
कई हिस्सों से बने विज्ञापनों के लिए, ज़्यादा से ज़्यादा 20 कॉम्पोनेंट की वैकल्पिक सूची, जिसे navigator.joinAdInterestGroup() को पास किए गए इंटरेस्ट ग्रुप तर्क की adComponents प्रॉपर्टी से लिया जाता है. |
allowComponentAuction |
एक बूलियन वैल्यू, जिससे पता चलता है कि इस बिड का इस्तेमाल किसी कॉम्पोनेंट नीलामी में किया जा सकता है या नहीं. अगर इसके बारे में नहीं बताया गया है, तो डिफ़ॉल्ट तौर पर "गलत" पर सेट होता है. |
bid |
नीलामी में शामिल होने वाली संख्यात्मक बोली. विक्रेता इस स्थिति में होना चाहिए कि अलग-अलग खरीदारों की बिड की तुलना कर सके, इसलिए बिड, विक्रेता की चुनी हुई इकाई (जैसे कि"हर हज़ार डॉलर") में होनी चाहिए. अगर बोली शून्य या नेगेटिव है, तो यह इंटरेस्ट ग्रुप, सेलर की नीलामी में हिस्सा नहीं लेगा. इस तरीके से खरीदार, विज्ञापन देने वाले के किसी भी नियम को इस बात के लिए लागू कर सकता है कि उसके विज्ञापन कहां दिखें या नहीं. |
bidCurrency |
बोली की मुद्रा, जिसका इस्तेमाल मुद्रा की जांच के लिए किया जाता है. |
render |
क्रिएटिव की जानकारी देने वाली डिक्शनरी, अगर यह बिड नीलामी में जीत जाती है, तो किस क्रिएटिव को रेंडर किया जाना चाहिए. इसमें इस तरह का कॉन्टेंट शामिल है:
|
|
नॉइज़िंग और बकेटिंग स्कीम में बताए गए तरीके से, नॉइज़ के साथ, reportWin() को पास किया गया 0-4095 पूर्णांक (12-बिट). नेगेटिव, इनफ़ाइनाइट, और NaN जैसी अमान्य वैल्यू को अनदेखा कर दिया जाएगा और पास नहीं किया जाएगा. सिर्फ़ सबसे कम 12 बिट ही पास किए जाएंगे. एमएल मॉडल ट्रेनिंग चालू करने के लिए, खरीदार, generateBid() फ़ंक्शन में उपलब्ध सिग्नल का इस्तेमाल कर सकता है. इसमें दिलचस्पी का ग्रुप बनाते समय, userBiddingSignals में दिलचस्पी का ग्रुप बनाते समय, पहले पक्ष के खरीदार के कैप्चर किए गए डेटा का डेटा भी शामिल है. |