एचएलएस इंटरस्टीशियल स्पेसिफ़िकेशन, वीडियो या ऑडियो स्ट्रीम में विज्ञापन शेड्यूल करने और डालने का एक आसान तरीका है. क्लाइंट-साइड अप्रोच में, आपका ऐप्लिकेशन यह तय करता है कि विज्ञापन ब्रेक के लिए कब अनुरोध करना है और उन्हें कब चलाना है. इसके लिए, वह AVPlayerInterstitialEvent क्लास बनाता है. इस तरीके के लिए, कॉन्टेंट स्ट्रीम के मेनिफ़ेस्ट में EXT-X-DATERANGE टैग की ज़रूरत नहीं होती. क्लाइंट-साइड HLS इंटरस्टीशियल की मदद से, किसी भी कॉन्टेंट में डाइनैमिक तरीके से विज्ञापन डाले जा सकते हैं. इसके लिए, स्ट्रीम मेनिफ़ेस्ट या मीडिया फ़ाइलों में बदलाव करने की ज़रूरत नहीं होती.
इस गाइड में, इंटरैक्टिव मीडिया विज्ञापन (आईएमए) एसडीके को वीडियो प्लेयर ऐप्लिकेशन में इंटिग्रेट करने के बारे में बताया गया है. यह ऐप्लिकेशन, सर्वर गाइडेड ऐड इंसर्शन (एसजीएआई) लाइव स्ट्रीम सेशन बनाता है और क्लाइंट-साइड पर इंटरस्टीशियल विज्ञापन शेड्यूल करता है. ज़्यादा जानकारी के लिए, सर्वर गाइडेड डीएआई देखें.
ज़रूरी शर्तें
शुरू करने से पहले, आपके पास ये चीज़ें होनी चाहिए:
यूज़र इंटरफ़ेस के लिए
Storyboardका इस्तेमाल करके, नया Xcode प्रोजेक्ट. ज़्यादा जानकारी के लिए, किसी ऐप्लिकेशन के लिए Xcode प्रोजेक्ट बनाना लेख पढ़ें.Google IMA SDK. ज़्यादा जानकारी के लिए, DAI के लिए IMA SDK सेट अप करना लेख पढ़ें.
लाइव स्ट्रीम के लिए, DAI के अनुरोध से जुड़े ये पैरामीटर:
NETWORK_CODE: यह आपका Google Ad Manager नेटवर्क कोड है.CUSTOM_ASSET_KEY: आपकी कस्टम स्ट्रिंग, जो DAI लाइवस्ट्रीम इवेंट की पहचान करती है. लाइव स्ट्रीम वाले इवेंट में, पॉड सर्विंग मेनिफ़ेस्ट का डीएआई टाइप होना चाहिए.
स्टोरीबोर्ड को कॉन्फ़िगर करना
अपनी iPhone.storyboard फ़ाइल में, यह तरीका अपनाएं:
- वीडियो प्लेयर और विज्ञापन यूज़र इंटरफ़ेस (यूआई) के लिए कंटेनर के तौर पर
UIViewऑब्जेक्ट बनाएं. UIViewऑब्जेक्ट से कनेक्ट करने के लिए,ViewControllerक्लास कीadUIViewप्रॉपर्टी बनाएं.adUIViewऑब्जेक्ट में, एकUIButtonबनाएं, ताकि वह प्ले बटन के तौर पर काम कर सके.UIButtonऑब्जेक्ट से कनेक्ट करने के लिए,ViewControllerक्लास कीplayButtonप्रॉपर्टी बनाएं. साथ ही, उपयोगकर्ता के टैप को हैंडल करने के लिएonPlayButtonTouchफ़ंक्शन बनाएं.
विज्ञापन लोडर को शुरू करना
मुख्य व्यू कंट्रोलर के viewDidLoad इवेंट में, यह तरीका अपनाएं:
AVPlayerऔरAVPlayerLayerक्लास का इस्तेमाल करके, वीडियो प्लेयर सेट अप करें.IMAAdDisplayContainerऔरIMAAVPlayerVideoDisplayऑब्जेक्ट बनाएं. विज्ञापन दिखाने वाला कंटेनर, IMA DAI SDK के लिएadUIViewतय करता है, ताकि विज्ञापन यूज़र इंटरफ़ेस (यूआई) के सबव्यू डाले जा सकें. वीडियो डिसप्ले ऑब्जेक्ट, IMA DAI SDK के विज्ञापन लॉजिक और AVFoundation के प्लेबैक सिस्टम के बीच एक पुल की तरह काम करता है. यह वीडियो विज्ञापनों के प्लेबैक को ट्रैक करता है.- विज्ञापन दिखाने और विज्ञापन के यूज़र इंटरफ़ेस (यूआई) को स्थानीय भाषा में दिखाने की सेटिंग के साथ
IMAAdsLoaderऑब्जेक्ट को शुरू करें.
इस उदाहरण में, ads loader को एक खाली IMASettings ऑब्जेक्ट के साथ शुरू किया गया है:
स्ट्रीम करने का अनुरोध करना
कॉन्टेंट स्ट्रीम के लिए विज्ञापनों का अनुरोध करने के लिए, IMAPodStreamRequest ऑब्जेक्ट बनाएं और इसे अपने IMAAdsLoader इंस्टेंस को पास करें. इसके अलावा, अपनी स्ट्रीम के लिए डीएआई के विकल्प और टारगेटिंग पैरामीटर उपलब्ध कराने के लिए, adTagParameters प्रॉपर्टी सेट करें.
इस उदाहरण में, viewDidAppear इवेंट में loadAdStream तरीके को कॉल किया गया है:
अपने प्रोडक्शन ऐप्लिकेशन में, उपयोगकर्ता के कॉन्टेंट स्ट्रीम चुनने के बाद loadAdStream तरीके को कॉल करें.
स्ट्रीम लोड होने से जुड़े इवेंट मैनेज करना
स्ट्रीम के अनुरोध के पूरा होने या न होने की स्थिति को मैनेज करने के लिए, IMAAdsLoaderDelegate प्रोटोकॉल लागू करें:
- कार्रवाई पूरी होने पर, आपको
IMAAdsLoadedDataऑब्जेक्ट मिलता है. इसमेंIMAStreamManagerशामिल होता है. यह कुकी, मौजूदा DAI सेशन के लिएstreamManager.streamIdवैल्यू को सेव करती है. - अगर ऐसा नहीं होता है, तो गड़बड़ी को लॉग करें.
यहां दिए गए उदाहरण में, स्ट्रीम लोड होने वाले इवेंट को हैंडल करने और स्ट्रीम लोड न होने वाले इवेंट को लॉग करने का तरीका बताया गया है:
विज्ञापन दिखाने का समय शेड्यूल करना
विज्ञापन ब्रेक शेड्यूल करने के लिए, AVPlayerInterstitialEvent ऑब्जेक्ट बनाएं. इवेंट ऑब्जेक्ट की templateItems प्रॉपर्टी को AVPlayerItem ऑब्जेक्ट की एक ऐरे पर सेट करें. इसमें हर आइटम ऑब्जेक्ट, विज्ञापन पॉड के मेनिफ़ेस्ट यूआरएल को सेव करता है.
विज्ञापन पॉड मेनिफ़ेस्ट यूआरएल बनाने के लिए, तरीका: एचएलएस पॉड मेनिफ़ेस्ट दस्तावेज़ पढ़ें.
उदाहरण के तौर पर, यहां दिए गए उदाहरण में कॉन्टेंट की लाइव स्ट्रीम के मौजूदा समय का इस्तेमाल करके, पॉड आइडेंटिफ़ायर स्ट्रिंग जनरेट की गई है. generatePodIdentifier फ़ंक्शन, पॉड आइडेंटिफ़ायर को ad_break_id/mid-roll-{minute} के तौर पर दिखाता है.
अपने प्रोडक्शन ऐप्लिकेशन में, पॉड आइडेंटिफ़ायर को ऐसे सोर्स से पाएं जो हर विज्ञापन ब्रेक के लिए यूनीक वैल्यू देता हो. साथ ही, लाइव स्ट्रीम देखने वाले सभी लोगों के लिए, यह वैल्यू सिंक की गई हो.
नीचे दिए गए उदाहरण में, विज्ञापन के लिए ब्रेक को शेड्यूल किया गया है. इससे उपयोगकर्ता के 'चलाएं' बटन पर क्लिक करने के दो मिनट के अंदर विज्ञापन दिखने लगेगा:
scheduleAdInsertion तरीके से, विज्ञापन ब्रेक शुरू होने का समय कैलकुलेट किया जाता है. साथ ही, विज्ञापन पॉड के मेनिफ़ेस्ट का यूआरएल बनाया जाता है. AVPlayerInterstitialEvent ऑब्जेक्ट बनाने के लिए, इस यूआरएल का इस्तेमाल करें.
अगर चाहें, तो विज्ञापन दिखाने के दौरान उपयोगकर्ता को स्किप करने या रिवाइंड करने से रोकने के लिए, AVPlayerInterstitialEvent.Restrictions स्ट्रक्चर का इस्तेमाल करें.
विज्ञापन इवेंट मैनेज करना
विज्ञापन इवेंट मैनेज करने के लिए, IMAStreamManagerDelegate प्रोटोकॉल लागू करें. इस तरीके से, विज्ञापन ब्रेक के शुरू और खत्म होने का समय ट्रैक किया जा सकता है. साथ ही, अलग-अलग विज्ञापनों के बारे में जानकारी पाई जा सकती है.
अपना ऐप्लिकेशन चलाएं. अगर यह सही तरीके से काम करता है, तो पॉड दिखाने वाले मेनिफ़ेस्ट स्ट्रीम का इस्तेमाल करके, पेज पर अचानक दिखने वाले विज्ञापनों का अनुरोध किया जा सकता है और उन्हें चलाया जा सकता है.