सुरक्षित ऑडियंस मीडिएशन की मदद से, एक से ज़्यादा सेलर के लिए नीलामी की सुविधा

सेल-साइड विज्ञापन प्लैटफ़ॉर्म, विज्ञापन से मिलने वाले रेवेन्यू को ऑप्टिमाइज़ करने के लिए, आम तौर पर विज्ञापन की मांग के स्रोतों में बदलाव करते हैं. विज्ञापन मीडिएशन की मदद से, कोई विज्ञापन नेटवर्क या सेवा, किसी दिए गए विज्ञापन स्लॉट के लिए सबसे अच्छा विज्ञापन तय करने के लिए कई विज्ञापन नेटवर्क को कॉल करती है. इस प्रस्ताव में बताया गया है कि Android पर Protected Audience API का इस्तेमाल करके, निजता बनाए रखते हुए वॉटरफ़ॉल मीडिएशन की सुविधा को कैसे लागू किया जा सकता है. फ़िलहाल, विज्ञापन नेटवर्क, ऐप्लिकेशन डेवलपर को कई विज्ञापन सेलर की विज्ञापन नीलामियों में मध्यस्थता करने के कई तरीके उपलब्ध कराते हैं:

  1. वॉटरफ़ॉल मीडिएशन: ऐप्लिकेशन डेवलपर, विज्ञापन नेटवर्क की क्रम से लगाई गई सूची तय करते हैं. आम तौर पर, किसी नेटवर्क के लिए पुराने eCPMs के हिसाब से रैंकिंग तय की जाती है. इस सूची को मीडिएशन चेन कहा जाता है. ऐप्लिकेशन डेवलपर का मीडिएशन प्लैटफ़ॉर्म, इस सूची का इस्तेमाल करके विज्ञापन नेटवर्क को उसी क्रम में कॉल करता है जिसमें वे सूची में शामिल होते हैं. इससे, विज्ञापन की मांग से जुड़े काम के सोर्स का पता चलता है.
  2. प्रोग्रामैटिक मीडिएशन: ऐप्लिकेशन डेवलपर, विज्ञापन के अवसरों के लिए बिडिंग में हिस्सा लेने के लिए, कई विज्ञापन नेटवर्क कॉन्फ़िगर करता है. इन नेटवर्क को रीयल-टाइम में बिडिंग करने की अनुमति होती है. यह अनुमति, इस आधार पर दी जाती है कि वे अवसर को कितना अहम मानते हैं.
  3. हाइब्रिड मीडिएशन: यह वॉटरफ़ॉल और प्रोग्रामैटिक मीडिएशन की तकनीकों का कॉम्बिनेशन है.

वॉटरफ़ॉल मीडिएशन

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

वॉटरफ़ॉल मीडिएशन मॉडल का डायग्राम पहली इमेज. वॉटरफ़ॉल मीडिएशन मॉडल.

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

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

प्रोग्रामैटिक मीडिएशन

प्रोग्रामैटिक मीडिएशन (जिसे "हेडर बिडिंग" भी कहा जाता है), पुराने ईसीपीएम का इस्तेमाल करने का एक विकल्प है. इससे यह तय किया जाता है कि किस विज्ञापन नेटवर्क को विज्ञापन अनुरोध दिखाने का मौका मिलेगा. प्रोग्रामैटिक मीडिएशन की मदद से, विज्ञापन देने वाले, विज्ञापन दिखाने के लिए लाइव बिड वैल्यू का इस्तेमाल करते हैं.

प्रोग्रामैटिक मीडिएशन मॉडल का डायग्राम.

दूसरी इमेज: प्रोग्रामैटिक मीडिएशन मॉडल

हाइब्रिड मीडिएशन

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

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

Protected Audience के लिए वॉटरफ़ॉल मीडिएशन

Android पर Protected Audience API, वॉटरफ़ॉल मीडिएशन के साथ काम करता है. इसके लिए, मीडिएशन ग्राफ़ में हर नोड के लिए एक से ज़्यादा नीलामियां होती हैं. अगर किसी नीलामी में कोई विजेता नहीं मिलता है, तो अगले नेटवर्क नीलामी नोड को तब तक कॉल किया जाता है, जब तक चेन खत्म नहीं हो जाती. वॉटरफ़ॉल मीडिएशन की प्रोसेस इस तरह होती है:

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

Protected Audience के वॉटरफ़ॉल मीडिएशन फ़्लो का डायग्राम.

तीसरी इमेज. Protected Audience API के साथ वॉटरफ़ॉल मीडिएशन.

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

AdSelection का नतीजा

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 को कॉल किया जाता है.

वॉटरफ़ॉल मीडिएशन चलाना

वॉटरफ़ॉल मीडिएशन प्रोसेस को चलाने के लिए, यहां क्रम से दिए गए निर्देशों का पालन करें.

  1. पहले पक्ष के विज्ञापन चुनने की सुविधा चालू करें.
  2. मीडिएशन चेन पर बार-बार जाएं. तीसरे पक्ष के हर नेटवर्क के लिए, ये काम करें:
    1. AdSelectionFromOutcomeConfig बनाएं. इसमें पहले पक्ष का outcomeId और तीसरे पक्ष के SDK टूल का बिड फ़्लोर शामिल है
    2. पिछले चरण में दिए गए config के साथ selectAds() को कॉल करें.
    3. अगर नतीजा खाली नहीं है, तो विज्ञापन दिखाएं.
    4. मौजूदा SDK टूल के नेटवर्क अडैप्टर के selectAds() तरीके को कॉल करें. अगर नतीजा खाली नहीं है, तो विज्ञापन दिखाएं.
  3. अगर चेन से कोई विज्ञापन नहीं मिलता है, तो पहले पक्ष का विज्ञापन दिखाएं.

सबसे सही तरीके

पहले पक्ष के ऑप्टिमाइज़ेशन से पहले, कॉन्टेक्स्ट के हिसाब से नीलामी चलाना

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

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

डिवाइस पर मौजूद मीडिएशन चेन को छोटा रखें

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

ज़रूरी बातें

Protected Audience API, एक से ज़्यादा विज्ञापन स्लॉट के मीडिएशन के लिए, पूरा समाधान नहीं देता. हर विज्ञापन स्लॉट को अलग से प्रोसेस किया जाना चाहिए.

Protected Audience Mediation API, वॉटरफ़ॉल मीडिएशन और सीमित प्रोग्रामैटिक मीडिएशन के साथ काम करता है. प्रोग्रामैटिक मीडिएशन के इस्तेमाल के अन्य उदाहरणों के बारे में ज़्यादा जानकारी, आने वाले समय में शेयर की जाएगी.

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