सेल-साइड विज्ञापन प्लैटफ़ॉर्म, आम तौर पर विज्ञापन से मिलने वाले रेवेन्यू को ऑप्टिमाइज़ करने के लिए, विज्ञापन की मांग के अलग-अलग सोर्स का इस्तेमाल करते हैं. विज्ञापन मीडिएशन की मदद से, कोई विज्ञापन नेटवर्क या सेवा कई विज्ञापन नेटवर्क को कॉल करती है. इससे, किसी विज्ञापन स्लॉट के लिए सबसे अच्छा विज्ञापन तय किया जा सकता है. इस प्रपोज़ल में बताया गया है कि Android पर Protected Audience API को कैसे बढ़ाया जा सकता है, ताकि निजता बनाए रखने के तरीके से वॉटरफ़ॉल मीडिएशन की सुविधा लागू की जा सके. आजकल, विज्ञापन नेटवर्क, ऐप्लिकेशन डेवलपर को कई विज्ञापन सेलर की विज्ञापन नीलामियों को मीडिएट करने के लिए अलग-अलग तरीके उपलब्ध कराते हैं:
- वॉटरफ़ॉल मीडिएशन: ऐप्लिकेशन डेवलपर, विज्ञापन नेटवर्क की क्रम से लगाई गई सूची तय करते हैं. अक्सर, इस सूची में नेटवर्क को पुराने eCPMs के हिसाब से रैंक किया जाता है. इस सूची को मीडिएशन चेन कहा जाता है. ऐप्लिकेशन डेवलपर का मीडिएशन प्लैटफ़ॉर्म, इस सूची का इस्तेमाल करके विज्ञापन नेटवर्क को कॉल करता है. ऐसा उस क्रम में किया जाता है जिस क्रम में उन्हें सूची में शामिल किया गया है. इससे विज्ञापन की मांग के काम के सोर्स तय किए जाते हैं.
- प्रोग्राम के हिसाब से मीडिएशन: ऐप्लिकेशन डेवलपर, विज्ञापन दिखाने के मौकों के लिए बिडिंग में हिस्सा लेने के लिए कई विज्ञापन नेटवर्क कॉन्फ़िगर करता है. इन नेटवर्क को, इस अवसर को अहमियत देने के आधार पर रीयल-टाइम में बिड करने की अनुमति होती है.
- हाइब्रिड मीडिएशन: यह वॉटरफ़ॉल और प्रोग्रामैटिक मीडिएशन तकनीकों का कॉम्बिनेशन होता है.
वॉटरफ़ॉल मीडिएशन
वॉटरफ़ॉल मीडिएशन में, जब विज्ञापन दिखाने का मौका मिलता है, तब विज्ञापन SDK टूल, अपने बैकएंड सर्वर को अनुरोध भेजता है. अनुरोध का जवाब, सबसे ज़्यादा ईसीपीएम वाले विज्ञापन क्रिएटिव से देने के बजाय, सर्वर एक मीडिएशन चेन से जवाब देता है. इसमें विज्ञापन नेटवर्क की एक सूची होती है, जिसे पुराने ईसीपीएम के हिसाब से क्रम में लगाया जाता है.
पहली इमेज. वॉटरफ़ॉल मीडिएशन मॉडल.
सर्वर-साइड वॉटरफ़ॉल मॉडल में, Ads SDK, मीडिएशन चेन में तय किए गए क्रम के हिसाब से हर विज्ञापन नेटवर्क (या उसके ऑक्शन SDK) को कॉल करता है. अगर कोई विज्ञापन नेटवर्क, विज्ञापन दिखाने का अनुरोध पूरा कर सकता है, तो वह विज्ञापन दिखाता है. अगर ऐसा नहीं होता है, तो अनुरोध को चेन में मौजूद अगले नेटवर्क पर भेज दिया जाता है. यह प्रोसेस तब तक दोहराई जाती है, जब तक अनुरोध पूरा नहीं हो जाता या चेन खत्म नहीं हो जाती.
वॉटरफ़ॉल मीडिएशन को अक्सर ऑप्टिमाइज़ किया जाता है. इसके लिए, मीडिएशन चेन को नियमित तौर पर फिर से ऑर्डर किया जाता है. यह काम, पहले पक्ष की विज्ञापन मांग के स्रोतों से मिले eCPM के फिर से आकलन के आधार पर किया जाता है.
प्रोग्रामैटिक मीडिएशन
प्रोग्राम के हिसाब से विज्ञापन दिखाने की सुविधा (इसे "हेडर बिडिंग" भी कहा जाता है) का इस्तेमाल, इस बात का फ़ैसला करने के लिए किया जाता है कि विज्ञापन अनुरोध को पूरा करने का मौका किस विज्ञापन नेटवर्क को मिलेगा. इसके लिए, पुराने ईसीपीएम का इस्तेमाल नहीं किया जाता. प्रोग्राम के हिसाब से मीडिएशन की सुविधा में, विज्ञापन देने वाली कंपनियां लाइव बिड वैल्यू का इस्तेमाल करके, सबसे ज़्यादा बिड वाले विज्ञापन का पता लगाती हैं.
दूसरी इमेज: प्रोग्राम के हिसाब से मीडिएशन करने का मॉडल
हाइब्रिड मीडिएशन
प्रोग्राम के हिसाब से विज्ञापन दिखाने की सुविधा देने वाले कुछ मीडिएशन समाधान, विज्ञापन नेटवर्क को वॉटरफ़ॉल और बिडिंग के हाइब्रिड मोड में जोड़ते हैं. इससे विज्ञापन पर ज़्यादा कंट्रोल मिलता है. साथ ही, विज्ञापन नेटवर्क में शामिल होने वाले नेटवर्क से ज़्यादा रेवेन्यू पाने के लिए, लाइव ईसीपीएम का इस्तेमाल करने का फ़ायदा मिलता है.
हाइब्रिड मीडिएशन मॉडल में, विज्ञापन नेटवर्क और मीडिएशन की सेवा देने वाली कंपनियां, ऐप्लिकेशन डेवलपर को ज़्यादा फ़्लेक्सिबिलिटी दे सकती हैं. इसके लिए, वे वॉटरफ़ॉल और रीयल-टाइम बिडिंग के एलिमेंट को एक साथ इस्तेमाल करती हैं. हाइब्रिड मॉडल की मदद से, ऐप्लिकेशन डेवलपर पुराने ईसीपीएम के आधार पर विज्ञापन नेटवर्क कॉन्फ़िगर कर सकते हैं. इससे उन्हें विज्ञापन दिखाने का मौका मिलता है. इसके बाद, वे विज्ञापन दिखाने के मौके पाने के लिए, बिडिंग में हिस्सा लेने वाले नेटवर्क के साथ रीयल-टाइम बिडिंग की प्रोसेस शुरू करते हैं.
Protected Audience के लिए वॉटरफ़ॉल मीडिएशन
Android पर Protected Audience API, वॉटरफ़ॉल मीडिएशन के साथ काम करता है. इसके लिए, यह कई ऑक्शन करता है. हर ऑक्शन, मीडिएशन ग्राफ़ में मौजूद किसी नोड के लिए होता है. अगर किसी नीलामी में कोई भी नेटवर्क नहीं जीतता है, तो अगले नेटवर्क नीलामी नोड को तब तक कॉल किया जाता है, जब तक कि चेन खत्म नहीं हो जाती. वॉटरफ़ॉल मीडिएशन की प्रोसेस इस तरह होती है:
- मीडिएशन SDK, कॉन्टेक्स्ट के हिसाब से विज्ञापन दिखाने वाले सर्वर के एंडपॉइंट से मीडिएशन चेन फ़ेच करता है. यह कॉन्टेक्स्ट के हिसाब से विज्ञापन या मीडिएशन चेन दिखा सकता है.
- अगर विज्ञापन सर्वर एंडपॉइंट, मीडिएशन चेन दिखाता है, तो मीडिएशन एसडीके, चेन के हर आइटम को क्रम से दोहराता है. इसके बाद, विज्ञापन नेटवर्क कंपनी के एसडीके को चालू करता है, ताकि कॉन्टेक्स्ट के हिसाब से और रीमार्केटिंग के लिए विज्ञापन चुना जा सके. चेन में मौजूद हर आइटम, विज्ञापन नेटवर्क कंपनी की ओर से विज्ञापन स्पेस खरीदने का अनुरोध दिखाता है. यह अनुरोध, किसी खास कीमत पर, इंप्रेशन, क्लिक या विज्ञापन दिखाने की अवधि की तय संख्या के लिए किया जाता है.
- अगर चेन में मौजूद कोई भी लाइन आइटम, सबसे अच्छा परफ़ॉर्म करने वाला विज्ञापन नहीं चुनता है, तो मीडिएशन SDK, अपने विज्ञापन नेटवर्क से कोई विज्ञापन दिखा सकता है. इसके लिए, वह सुरक्षित ऑडियंस के लिए विज्ञापन चुनने की सुविधा का इस्तेमाल करता है. इसमें रीमार्केटिंग और कॉन्टेक्स्ट के हिसाब से दिखाए जाने वाले विज्ञापन, दोनों को ध्यान में रखा जाता है.
तीसरी इमेज. Protected Audience API के साथ वॉटरफ़ॉल मीडिएशन.
ऊपर दिए गए डायग्राम में, वॉटरफ़ॉल मीडिएशन एल्गोरिदम का एक उदाहरण दिखाया गया है. इसे मीडिएशन SDK टूल लागू कर सकता है. हालांकि, इसमें पहले पक्ष के विज्ञापन नेटवर्क को ऑप्टिमाइज़ करने की सुविधा नहीं मिलती. Protected Audience API, पहले पक्ष के विज्ञापन नेटवर्क को ऑप्टिमाइज़ करने में मदद करता है. इसके लिए, यह विज्ञापन चुनने के वर्कफ़्लो को एक साथ चलाने और विज्ञापन के सबसे ज़्यादा इंप्रेशन की रिपोर्टिंग करने की अनुमति देता है.
AdSelection outcome
selectAds() का रिटर्न टाइप, AdSelectionOutcome ऑब्जेक्ट है.
AdSelectionOutcome में, जीतने वाले विज्ञापन का रेंडर यूआरआई और AdSelectionId शामिल होता है. AdSelectionId एक ओपेक पूर्णांक होता है, जो जीतने वाले लाइन आइटम के विज्ञापन क्रिएटिव की पहचान करता है.
AdSelectionOutcome {
Uri renderUri;
Long AdSelectionId;
}
AdSelectionId, AdSelectionOutcome के लिए पॉइंटर की तरह काम करता है. आज, AdSelectionId को reportResult() तरीके में ReportImpressionInput पैरामीटर के तौर पर पास किया जाता है. इससे उन सही विज्ञापनों की पहचान करने में मदद मिलती है जिन पर reportWin() और reportResult() तरीके लागू किए जाते हैं.
चेन विज्ञापन चुनने का सुझाव
हमारा सुझाव है कि selectAds() को AdSelectionFromOutcomesConfig के साथ ओवरलोड किया जाए.
val config = AdSelectionFromOutcomesConfig.Builder()
.setSeller(seller)
.setAdSelectionIds(listOf(outcome1pAdSelectionId))
.setSelectionSignals({"bid_floor": bidFloorOfNextNetworkInline})
.setSelectionLogicUri(selectionLogicUri)
.build()
adSelectionClient.selectAds(config)
इससे मीडिएशन SDK, नीलामी जीतने वाले विज्ञापन की बिड की तुलना, अगले इनलाइन नेटवर्क की बिड फ़्लोर से कर पाता है.
पहला उदाहरण:
दूसरा उदाहरण:
जीतने वाले इंप्रेशन की रिपोर्ट करना
अगर selectAds(AdSelectionFromOutcomes) से कोई विज्ञापन सोर्स जीत जाता है, तो वह विज्ञापन सोर्स मीडिएशन जीत जाता है. इसके बाद, reportImpression को selectAds(AdSelectionFromOutcomes) से सबसे अच्छा परफ़ॉर्म करने वाले विज्ञापन के विज्ञापन चुनने वाले आईडी और उससे जुड़े AdSelectionConfig के साथ कॉल किया जाता है.
अगर किसी भी नेटवर्क के लिए, selectAds(AdSelectionConfig) से विजेता विज्ञापन वापस मिलता है, तो reportImpression को विज्ञापन चुनने के आईडी और उस कॉल के कॉन्फ़िगरेशन के साथ कॉल किया जाता है.
वॉटरफ़ॉल मीडिएशन का इस्तेमाल करना
वॉटरफ़ॉल मीडिएशन की प्रोसेस को पूरा करने के लिए, यहां कार्रवाइयों का क्रम दिया गया है.
- पहले पक्ष के विज्ञापन चुनने की सुविधा का इस्तेमाल करें.
- मीडिएशन चेन को दोहराएं. हर तीसरे पक्ष के नेटवर्क के लिए, यह तरीका अपनाएं:
AdSelectionFromOutcomeConfigबनाएं. इसमें पहले पक्ष काoutcomeIdऔर तीसरे पक्ष के एसडीके टूल के लिए बिड फ़्लोर शामिल करें- पिछले चरण से मिले
configके साथselectAds()को कॉल करें. - अगर नतीजा खाली नहीं है, तो विज्ञापन दिखाएं.
- मौजूदा एसडीके नेटवर्क अडैप्टर के
selectAds()तरीके को कॉल करें. अगर नतीजा खाली नहीं है, तो विज्ञापन दिखाएं.
- अगर चेन में कोई भी विज्ञापन बेहतर परफ़ॉर्म नहीं करता है, तो पहले पक्ष का विज्ञापन दिखाएं.
सबसे सही तरीके
पहले पक्ष के ऑप्टिमाइज़ेशन से पहले, कॉन्टेक्स्ट के हिसाब से नीलामी चलाएं
रीमार्केटिंग की मांग से ज़्यादा बिड जनरेट हो सकती हैं. इससे, मीडिएशन चेन में जीतने वाले नतीजे मिल सकते हैं. रीमार्केटिंग ऑडियंस की सूची को बेहतर बनाकर, अक्सर पहले पक्ष के ऑप्टिमाइज़ेशन को चालू करने के लिए ट्रंकेशन का इस्तेमाल किया जाता है.
Protected Audience API की रीमार्केटिंग की मांग, सिर्फ़ क्लाइंट-साइड पर उपलब्ध होती है. यह Protected Audience की नीलामियों के साथ काम करती है. इससे सर्वर साइड पर, पहले पक्ष के ऑप्टिमाइज़ेशन को चालू करना मुश्किल हो सकता है. फ़र्स्ट-पार्टी ऑप्टिमाइज़ेशन से जुड़ी समस्याओं को कम करने के लिए, सबसे पहले कॉन्टेक्स्ट के हिसाब से ऑक्शन चलाएं. इसके बाद, इस पेज पर पहले बताए गए तरीके के मुताबिक, जीतने वाले विज्ञापन के नतीजे के आधार पर फ़र्स्ट-पार्टी ऑप्टिमाइज़ेशन करें.
डिवाइस पर मौजूद मीडिएशन चेन को छोटा रखें
बेहतरीन परफ़ॉर्मेंस के लिए, डिवाइस पर मौजूद मीडिएशन चेन को छोटा रखना चाहिए. डिवाइस पर विज्ञापन दिखाने के लिए, कंप्यूटिंग की लागत, मीडिएशन चेन के तहत आकलन की गई नीलामी की संख्या के हिसाब से तय की जा सकती है. दूसरे शब्दों में, ज़्यादा नोड होने से, कंप्यूटेशनल साइकल की ज़्यादा ज़रूरतें होती हैं और लेटेन्सी बढ़ जाती है. डिवाइस पर मौजूद मीडिएशन की परफ़ॉर्मेंस का आकलन करने के लिए नोड पास करते समय, इंतज़ार के समय का रेवेन्यू पर पड़ने वाले असर को ध्यान में रखें.
ज़रूरी बातें
Protected Audience API, कई विज्ञापन स्लॉट के मीडिएशन के लिए पूरा समाधान नहीं देता है. हर विज्ञापन स्लॉट को अलग से प्रोसेस किया जाना चाहिए.
Protected Audience Mediation API, वॉटरफ़ॉल मीडिएशन और सीमित प्रोग्रामैटिक मीडिएशन के साथ काम करता है. आने वाले समय में, प्रोग्राम के हिसाब से होने वाले मीडिएशन के अन्य इस्तेमाल के उदाहरणों के बारे में ज़्यादा जानकारी शेयर की जाएगी.
कॉन्टेक्स्ट के हिसाब से विज्ञापन फ़ेच होने के बाद, Protected Audience की मदद से विज्ञापन चुनने की प्रोसेस शुरू होती है. इसलिए, Protected Audience API को चालू करने से, विज्ञापन के अनुरोधों के लिए एंड-टू-एंड लेटेन्सी पर असर पड़ सकता है.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक का टेक्स्ट दिखता है
- Android पर Protected Audience API के लिए डेवलपर गाइड
- Protected Audience API की मदद से, कस्टम ऑडियंस टारगेटिंग की सुविधा
- Protected Audience: इंटिग्रेशन गाइड