विज्ञापन रेंडर करना

जब Protected Audience से जुड़ी नीलामी की मदद से, कोई विज्ञापन दिखाया जाता है, तो एक ओपेक URN के तौर पर दिखाया जाता है, जिसका इस्तेमाल iframe या FencedFrameConfig. इसका इस्तेमाल, फ़ेंस किए गए फ़्रेम में विज्ञापन को रेंडर करने के लिए किया जाता है.

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

फ़ेंस किए गए फ़्रेम क्या हैं?

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

उदाहरण के लिए, मान लें कि news.example (एम्बेड करने का संदर्भ), इससे कोई विज्ञापन एम्बेड करता है फ़ेंस किए गए फ़्रेम में shoes.example. news.example से डेटा बाहर निकाला नहीं जा सकता shoes.example विज्ञापन और shoes.example पहले पक्ष (ग्राहक) के डेटा का इस्तेमाल नहीं कर सकता news.example.

फ़ेंस वाले फ़्रेम कैसे काम करते हैं?

फ़ेंस किए गए फ़्रेम, नेविगेशन के लिए FencedFrameConfig ऑब्जेक्ट का इस्तेमाल करते हैं. यह ऑब्जेक्ट ये कर सकता है Protected Audience API से मिलने वाली नीलामी से, आपको वापस लाया जा सकता है. इसके बाद, कॉन्फ़िगरेशन ऑब्जेक्ट इस तरह सेट होता है फ़ेंस किए गए फ़्रेम एलिमेंट पर, config एट्रिब्यूट. यह iframe से अलग है जहां src एट्रिब्यूट को यूआरएल या ओपेक URN असाइन किया जाता है. कॉन्टेंट बनाने FencedFrameConfig ऑब्जेक्ट में, रीड-ओनली url प्रॉपर्टी है; हालांकि, क्योंकि मौजूदा इस्तेमाल के उदाहरणों में, इंटरनल रिसॉर्स के असल यूआरएल को छिपाना ज़रूरी है, जब पढ़ा जाता है तो यह प्रॉपर्टी स्ट्रिंग को ओपेक देती है.

फ़ेंस किया गया फ़्रेम, अपने एम्बेडर के साथ कम्यूनिकेट करने के लिए, postMessage का इस्तेमाल नहीं कर सकता. हालांकि, फ़ेंस किया गया फ़्रेमpostMessageiframe फ़ेंस वाला फ़्रेम.

फ़ेंस किए गए फ़्रेम, पब्लिशर से दूसरे तरीकों से अलग किए जाएंगे. प्रकाशक फ़ेंस किए गए फ़्रेम और फ़ेंस किए गए फ़्रेम के अंदर के DOM को ऐक्सेस नहीं कर पाएगा प्रकाशक के DOM को ऐक्सेस नहीं कर सकता. इसके अलावा, name जैसे एट्रिब्यूट की मदद से, ये काम किए जा सकते हैं पब्लिशर की ओर से मॉनिटर की गई और किसी भी वैल्यू पर सेट की जानी चाहिए. ये फ़ेंस्ड में उपलब्ध नहीं हैं फ़्रेम.

फ़ेंस किए गए फ़्रेम किसी टॉप-लेवल ब्राउज़िंग कॉन्टेक्स्ट की तरह काम करते हैं (जैसे कि ब्राउज़र टैब). हालांकि, इस्तेमाल के कुछ खास उदाहरणों में फ़ेंस्ड फ़्रेम (जैसे, opaque-ads) इसमें क्रॉस-साइट डेटा शामिल हो सकता है (जैसे कि Protected Audience API इंटरेस्ट ग्रुप), फ़्रेम मौजूदा स्टोरेज या कुकी को ऐक्सेस नहीं कर सकता. opaque-ads ने फ़ेंस किया है फ़्रेम एक यूनीक, नॉन्स-आधारित कुकी और स्टोरेज पार्टिशन को ऐक्सेस कर सकता है.

फ़ेंस किए गए फ़्रेम की विशेषताओं के बारे में ज़्यादा जानकारी एक्सप्लेनर में दी गई है.

चारदीवारी से बने फ़्रेम में विज्ञापन बनाएं

Protected Audience API से हुई नीलामी में, FencedFrameConfig को शामिल किया जाता है. हालांकि, इसके लिए ज़रूरी है कि कि AuctionConfig का resolveToConfig पैरामीटर 'सही' पर सेट था:

const frameConfig = await navigator.runAdAuction({
  // ...auction configuration
  resolveToConfig: true
});

कॉन्फ़िगरेशन मिलने के बाद, इसे फ़ेंस किए गए फ़्रेम के config को असाइन किया जा सकता है एट्रिब्यूट का इस्तेमाल करके, फ़्रेम को कॉन्फ़िगर करके दिखाए गए रिसॉर्स पर जाएं. Chrome के पिछले वर्शन में resolveToConfig प्रॉपर्टी काम नहीं करती. इसलिए, आप अब भी पुष्टि करनी होगी कि FencedFrameConfig से पहले प्रॉमिस रिज़ॉल्व हो गया है नेविगेट करना:

if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
  const frame = document.createElement('fencedframe');
  frame.config = frameConfig;
}

iframe में विज्ञापन रेंडर करना

अगर AuctionConfig, resolveToConfig को साफ़ तौर पर सेट नहीं करता है या सेट है गलत पर, runAdAuction() एक ओपेक URN देता है. इस URN को विज्ञापन को रेंडर करने के लिए iframe का src.