पिक्चर-इन-पिक्चर (पीआईपी) विज्ञापन, फ़्लोटिंग विंडो में दिखते हैं. यह विंडो, स्क्रीन पर मौजूद कॉन्टेंट के ऊपर दिखती है. जैसे, लेख, फ़ीड या गेमप्ले. इस फ़ॉर्मैट की मदद से, उपयोगकर्ता आपके ऐप्लिकेशन के साथ इंटरैक्ट कर सकते हैं. साथ ही, विज्ञापन भी दिखता रहता है. अगर आपको ऐसे विज्ञापन दिखाने हैं जो पूरी स्क्रीन पर न दिखें, तो यह फ़ॉर्मैट चुनें. पिक्चर-इन-पिक्चर विज्ञापनों के बारे में ज़्यादा जानें. पिक्चर-इन-पिक्चर विज्ञापनों के बारे में ज़्यादा जानें.
इस गाइड में, Google Mobile Ads SDK का इस्तेमाल करके, अपने ऐप्लिकेशन में पिक्चर-इन-पिक्चर विज्ञापन दिखाने और उनके लिए अनुरोध करने का तरीका बताया गया है using Google Mobile Ads SDK.
शुरू करने से पहले
आगे बढ़ने से पहले, यह काम करें:
Google Mobile Ads SDKवर्शन
13.10.0या इसके बाद का वर्शन इंस्टॉल करें.
टेस्ट विज्ञापन चालू करें और टेस्ट विज्ञापन यूनिट के इस आईडी का इस्तेमाल करें:
ca-app-pub-3940256099942544/8810945611
विज्ञापन लोड करना
GADPictureInPictureAd ऑब्जेक्ट लोड करने के लिए, विज्ञापन दिखाने का अनुरोध बनाएं और लोड करने के तरीके को कॉल करें:
Swift
adUnitID को अपनी विज्ञापन यूनिट के आईडी से बदलें.
Objective-C
kAdUnitID को अपनी विज्ञापन यूनिट के आईडी से बदलें.
विज्ञापन दिखाना
स्क्रीन पर पिक्चर-इन-पिक्चर विज्ञापन दिखाने के लिए, शो करने के तरीके को कॉल करें. यहां दिए गए उदाहरण में, विज्ञापन को डिफ़ॉल्ट पोज़िशन में दिखाया गया है. साथ ही, प्रज़ेंटेशन स्कोप को स्क्रीन पर सेट किया गया है:
Swift
private func showPictureInPictureAd() { // Use the loaded PictureInPictureAd instance. guard let pipAd else { print("No ad to show.") return } let options = PictureInPictureAdOptions() // Uses the Google Mobile Ads SDK's default screen position. options.position = .default // Binds the ad lifecycle to the host screen. options.presentationScope = .screen pipAd.show(with: options) }
Objective-C
- (void)showPictureInPictureAd { // Use the loaded PictureInPictureAd instance. if (!self.pipAd) { NSLog(@"No ad to show."); return; } GADPictureInPictureAdOptions *options = [[GADPictureInPictureAdOptions alloc] init]; // Uses the Google Mobile Ads SDK's default screen position. options.position = GADPictureInPictureAdPositionDefault; // Binds the ad lifecycle to the host screen. options.presentationScope = GADPictureInPictureAdPresentationScopeScreen; [self.pipAd showWithOptions:options]; }
पोज़िशन सेट करना
डिफ़ॉल्ट रूप से, Google Mobile Ads SDK पिक्चर में पिक्चर विज्ञापन को स्क्रीन के दाएं कोने में सबसे नीचे दिखाता है. अगर विज्ञापन पहले दिखाया गया है, तो यह पिछली पोज़िशन पर दिखता है. विज्ञापन को अपनी पसंद की जगह पर दिखाने के लिए, विज्ञापन दिखाते समय उसकी पोज़िशन तय करें. यहां दिए गए उदाहरण में, स्क्रीन के बाएं कोने में सबसे ऊपर मौजूद कॉन्टेंट के ऊपर पोज़िशन सेट की गई है:
Swift
private func createTopLeftPositionOptions() -> PictureInPictureAdOptions { let options = PictureInPictureAdOptions() // Sets the ad position to the top-left corner of the screen. options.position = .topLeft return options }
Objective-C
- (GADPictureInPictureAdOptions *)createTopLeftPositionOptions { GADPictureInPictureAdOptions *options = [[GADPictureInPictureAdOptions alloc] init]; // Sets the ad position to the top-left corner of the screen. options.position = GADPictureInPictureAdPositionTopLeft; return options; }
सभी उपलब्ध पोज़िशन देखने के लिए, देखें
GADPictureInPictureAdPosition.
प्रज़ेंटेशन स्कोप सेट करना
डिफ़ॉल्ट रूप से, Google Mobile Ads SDK पिक्चर-इन-पिक्चर विज्ञापन को मौजूदा होस्ट स्क्रीन से बाइंड करता है. Google Mobile Ads SDK जब होस्ट स्क्रीन की व्यू हाइरार्की, मेमोरी में मौजूद नहीं होती , तब विज्ञापन को खारिज कर देता है. होस्ट स्क्रीन को मेमोरी से हटाने के बाद भी विज्ञापन को दिखाने के लिए, प्रज़ेंटेशन स्कोप को ऐप्लिकेशन पर सेट करें:
Swift
private func createApplicationScopedOptions() -> PictureInPictureAdOptions { let options = PictureInPictureAdOptions() // Keeps the ad visible beyond the host screen's lifecycle. options.presentationScope = .application return options }
Objective-C
- (GADPictureInPictureAdOptions *)createApplicationScopedOptions { GADPictureInPictureAdOptions *options = [[GADPictureInPictureAdOptions alloc] init]; // Keeps the ad visible beyond the host screen's lifecycle. options.presentationScope = GADPictureInPictureAdPresentationScopeApplication; return options; }
ज़्यादा जानकारी के लिए, स्क्रीन पर विज्ञापन को हमेशा दिखाने का तरीका देखें.
विज्ञापन इवेंट सुनना
पिक्चर-इन-पिक्चर विज्ञापन के लाइफ़साइकल इवेंट को मैनेज करने के लिए, विज्ञापन दिखाने से पहले विज्ञापन इवेंट के लिए रजिस्टर करें. इन इवेंट से, विज्ञापन इंटरैक्शन की रिपोर्ट मिलती है. जैसे, क्लिक और इंप्रेशन. इन इवेंट से, पिक्चर-इन-पिक्चर से जुड़े इवेंट की भी रिपोर्ट मिलती है. जैसे, विज्ञापन कब दिखता है या कब छिपता है:
Swift
func pictureInPictureAdDidShow(_ pictureInPictureAd: PictureInPictureAd) { print("Picture-in-Picture ad shown.") } func pictureInPictureAdDidHide(_ pictureInPictureAd: PictureInPictureAd) { print("Picture-in-Picture ad hidden.") } func pictureInPictureAdDidFailToShow( _ pictureInPictureAd: PictureInPictureAd, error: Error ) { print("Picture-in-Picture ad failed to show: \(error.localizedDescription)") } func pictureInPictureAdDidRecordImpression( _ pictureInPictureAd: PictureInPictureAd ) { print("Picture-in-Picture ad recorded an impression.") } func pictureInPictureAdDidRecordClick( _ pictureInPictureAd: PictureInPictureAd ) { print("Picture-in-Picture ad recorded a click.") } func pictureInPictureAdWillPresentScreen( _ pictureInPictureAd: PictureInPictureAd ) { print("Picture-in-Picture ad will present screen.") } func pictureInPictureAdWillDismissScreen( _ pictureInPictureAd: PictureInPictureAd ) { print("Picture-in-Picture ad will dismiss screen.") } func pictureInPictureAdDidDismissScreen( _ pictureInPictureAd: PictureInPictureAd ) { print("Picture-in-Picture ad dismissed screen.") }
Objective-C
- (void)pictureInPictureAdDidShow:(GADPictureInPictureAd *)pictureInPictureAd { NSLog(@"Picture-in-Picture ad shown."); } - (void)pictureInPictureAdDidHide:(GADPictureInPictureAd *)pictureInPictureAd { NSLog(@"Picture-in-Picture ad hidden."); } - (void)pictureInPictureAdDidFailToShow:(GADPictureInPictureAd *)pictureInPictureAd withError:(NSError *)error { NSLog(@"Picture-in-Picture ad failed to show: %@", error); } - (void)pictureInPictureAdDidRecordImpression:(GADPictureInPictureAd *)pictureInPictureAd { NSLog(@"Picture-in-Picture ad recorded an impression."); } - (void)pictureInPictureAdDidRecordClick:(GADPictureInPictureAd *)pictureInPictureAd { NSLog(@"Picture-in-Picture ad recorded a click."); } - (void)pictureInPictureAdWillPresentScreen:(GADPictureInPictureAd *)pictureInPictureAd { NSLog(@"Picture-in-Picture ad will present screen."); } - (void)pictureInPictureAdWillDismissScreen:(GADPictureInPictureAd *)pictureInPictureAd { NSLog(@"Picture-in-Picture ad will dismiss screen."); } - (void)pictureInPictureAdDidDismissScreen:(GADPictureInPictureAd *)pictureInPictureAd { NSLog(@"Picture-in-Picture ad dismissed screen."); }
विज्ञापन छिपाना
स्क्रीन से फ़्लोटिंग विज्ञापन हटाने के लिए, छिपाने के तरीके को कॉल करें. इस तरीके से, विज्ञापन के छिपने का इवेंट ट्रिगर होता है:
Swift
private func hidePictureInPictureAd() { // Use the loaded PictureInPictureAd instance. guard let pipAd else { print("No ad to hide.") return } pipAd.hide() }
Objective-C
- (void)hidePictureInPictureAd { // Use the loaded PictureInPictureAd instance. if (!self.pipAd) { NSLog(@"No ad to hide."); return; } [self.pipAd hide]; }
विज्ञापन के संसाधनों को साफ़ करना
मेमोरी लीक से बचने के लिए, जब आपका ऐप्लिकेशन विज्ञापन का इस्तेमाल करना बंद कर दे, तब विज्ञापन ऑब्जेक्ट के रेफ़रंस को हटा दें. उदाहरण के लिए, जब आपका ऐप्लिकेशन विज्ञापन को फिर से नहीं दिखाता या उसके साथ इंटरैक्ट नहीं करता. स्क्रीन-स्कोप वाले विज्ञापनों के लिए, जब आपका ऐप्लिकेशन होस्ट स्क्रीन को मेमोरी से हटाता है, तब रेफ़रंस को हटा दें. ऐप्लिकेशन-स्कोप वाले विज्ञापनों के लिए, जब उपयोगकर्ता अलग-अलग स्क्रीन पर नेविगेट करता है, तब विज्ञापन रेफ़रंस को बनाए रखें. साथ ही, जब उपयोगकर्ता विज्ञापन को खारिज करता है, तब रेफ़रंस को हटा दें:
Swift
private func cleanUpPictureInPictureAd() { pipAd?.hide() pipAd = nil }
Objective-C
- (void)cleanUpPictureInPictureAd { [self.pipAd hide]; self.pipAd = nil; }
स्क्रीन पर विज्ञापन को हमेशा दिखाने का तरीका
जब प्रज़ेंटेशन स्कोप को ऐप्लिकेशन पर सेट किया जाता है, तब पिक्चर-इन-पिक्चर विज्ञापन, होस्टिंग स्क्रीन को मेमोरी से हटाने के बाद भी दिखता रहता है. जब उपयोगकर्ता होस्ट स्क्रीन से दूर जाता है, तब विज्ञापन के साथ इंटरैक्ट करने या उसे खारिज करने के लिए, आपके ऐप्लिकेशन के पास पिक्चर में पिक्चर विज्ञापन का ऐक्सेस होना चाहिए. हमारा सुझाव है कि विज्ञापन को किसी एक स्क्रीन के इंस्टेंस वैरिएबल के बजाय, ऐप्लिकेशन-लेवल के सिंगलटन या शेयर किए गए स्टेट मैनेजर में रखें.
स्क्रीन पर विज्ञापन को हमेशा दिखाने के तरीके के उदाहरण के लिए, ये सैंपल के तौर पर मिले ऐप्लिकेशन देखें: