बैनर विज्ञापन

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

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

ऐंकर किया गया अडैप्टिव बैनर

ऐंकर किए गए अडैप्टिव बैनर वाले विज्ञापन, सामान्य विज्ञापन के बजाय, तय आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) वाले विज्ञापन होते हैं तय साइज़ वाले विज्ञापन. आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) 320*50 इंडस्ट्री स्टैंडर्ड के जैसा होता है. एक बार आप पूरी चौड़ाई उपलब्ध कराते हैं, तो यह आपको सबसे अच्छी क्वालिटी वाला एक विज्ञापन दिखाएगा ऊंचाई. इससे आने वाले अनुरोधों के लिए सही ऊंचाई में कोई बदलाव नहीं होता उसी डिवाइस पर विज्ञापन दिखाता है, और विज्ञापन दिखाते समय आस-पास के दृश्यों को इधर-उधर जाने की ज़रूरत नहीं होती रीफ़्रेश करता है.

ज़रूरी शर्तें

हमेशा टेस्ट विज्ञापनों से टेस्ट करें

अपने ऐप्लिकेशन बनाते और उनकी जांच करते समय पक्का करें कि आप विज्ञापनों के बजाय टेस्ट विज्ञापनों का इस्तेमाल करें लाइव, प्रोडक्शन के लिए विज्ञापन. ऐसा न करने पर, आपका खाता निलंबित किया जा सकता है.

टेस्ट विज्ञापन लोड करने का सबसे आसान तरीका, iOS के लिए बने हमारे टेस्ट विज्ञापन यूनिट आईडी का इस्तेमाल करना है बैनर: /6499/example/adaptive-banner अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

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

Mobile Ads SDK के टेस्ट विज्ञापनों के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, जांच करें Google Ads.

एक GAMBannerView बनाएं

बैनर विज्ञापन GAMBannerView में दिखाए जाते हैं ऑब्जेक्ट शामिल हैं, इसलिए बैनर विज्ञापनों को इंटिग्रेट करने की दिशा में पहला कदम यह है कि आप GAMBannerView की जगह लागू होती है. आम तौर पर, ऐसा प्रोग्राम के हिसाब से किया जाता है या इंटरफ़ेस बिल्डर के ज़रिए बनाया गया है.

प्रोग्रैम्ड तरीके से

GAMBannerView को सीधे इंस्टैंशिएट भी किया जा सकता है. यहां एक उदाहरण दिया गया है, जिसमें GAMBannerView बनाने का तरीका बताया गया है, स्क्रीन के सुरक्षित क्षेत्र में नीचे बीच में संरेखित करें:

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  var bannerView: GAMBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    
    let viewWidth = view.frame.inset(by: view.safeAreaInsets).width

    // Here the current interface orientation is used. Use
    // GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth or
    // GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth if you prefer to load an ad of a
    // particular orientation,
    let adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)
    bannerView = GAMBannerView(adSize: adaptiveSize)

    addBannerViewToView(bannerView)
  }

  func addBannerViewToView(_ bannerView: GAMBannerView) {
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bannerView)
    view.addConstraints(
      [NSLayoutConstraint(item: bannerView,
                          attribute: .bottom,
                          relatedBy: .equal,
                          toItem: view.safeAreaLayoutGuide,
                          attribute: .bottom,
                          multiplier: 1,
                          constant: 0),
       NSLayoutConstraint(item: bannerView,
                          attribute: .centerX,
                          relatedBy: .equal,
                          toItem: view,
                          attribute: .centerX,
                          multiplier: 1,
                          constant: 0)
      ])
   }
   
}

Objective-C

@import GoogleMobileAds;

@interface ViewController ()

@property(nonatomic, strong) GAMBannerView *bannerView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  
  // Here safe area is taken into account, hence the view frame is used after the
  // view has been laid out.
  CGRect frame = UIEdgeInsetsInsetRect(self.view.frame, self.view.safeAreaInsets);
  CGFloat viewWidth = frame.size.width;

  // Here the current interface orientation is used. If the ad is being preloaded
  // for a future orientation change or different orientation, the function for the
  // relevant orientation should be used.
  GADAdSize adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);
  // In this case, we instantiate the banner with desired ad size.
  self.bannerView = [[GAMBannerView alloc] initWithAdSize:adaptiveSize];

  [self addBannerViewToView:self.bannerView];
}

- (void)addBannerViewToView:(UIView *)bannerView {
  bannerView.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview:bannerView];
  [self.view addConstraints:@[
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeBottom
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view.safeAreaLayoutGuide
                               attribute:NSLayoutAttributeBottom
                              multiplier:1
                                constant:0],
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeCenterX
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view
                               attribute:NSLayoutAttributeCenterX
                              multiplier:1
                                constant:0]
                                ]];
}
  
@end

ध्यान दें कि इस मामले में हम चौड़ाई या ऊंचाई की पाबंदी नहीं देते, क्योंकि दिया गया विज्ञापन आकार, बैनर को सामग्री का स्वाभाविक आकार देगा, व्यू.

इंटरफ़ेस बिल्डर

GAMBannerView को स्टोरीबोर्ड या xib में जोड़ा जा सकता है फ़ाइल से लिए जाते हैं. इस तरीके का इस्तेमाल करते समय, पक्का करें कि सिर्फ़ पोज़िशन कंस्ट्रेंट को जोड़ा गया हो क्लिक किया जा सकता है. उदाहरण के लिए, पेज के सबसे नीचे मौजूद अडैप्टिव बैनर को दिखाते समय स्क्रीन के लिए, बैनर व्यू के निचले हिस्से को स्क्रीन के निचले हिस्से के ऊपर सेट करें लेआउट गाइड चुनें और केंद्र X को सुपरव्यू के सेंटर X के बराबर सेट करें.

बैनर का विज्ञापन साइज़ अब भी प्रोग्राम के हिसाब से सेट है:

Swift

  bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)

Objective-C

  self.bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);

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

GAMBannerView और उसकी प्रॉपर्टी तय होने के बाद कॉन्फ़िगर किया है, तो यह विज्ञापन लोड करने का समय है. ऐसा करने के लिए loadRequest: को कॉल करें: GAMRequest ऑब्जेक्ट:

Swift

override func viewDidLoad() {
  super.viewDidLoad()
  ...
  
  //  Set the ad unit ID and view controller that contains the GAMBannerView.
  bannerView.adUnitID = "/6499/example/adaptive-banner"
  bannerView.rootViewController = self

  bannerView.load(GAMRequest())
}

Objective-C

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  
  //  Set the ad unit ID and view controller that contains the GAMBannerView.
  self.bannerView.adUnitID = @"/6499/example/adaptive-banner";
  self.bannerView.rootViewController = self;

  [self.bannerView loadRequest:[GAMRequest request]];
}

GAMRequest ऑब्जेक्ट एक विज्ञापन अनुरोध को दिखाते हैं और प्रॉपर्टी में टारगेटिंग (विज्ञापन के लिए सही दर्शक चुनना) जैसी चीज़ें शामिल होती हैं.

अगर आपका विज्ञापन लोड नहीं होता है, तो आपको स्पष्ट रूप से जब तक कि आपने अपनी विज्ञापन यूनिट को रीफ़्रेश करने के लिए कॉन्फ़िगर किया है; Google Mobile Ads SDK Ad Manager में बताई गई किसी रीफ़्रेश दर का पालन करता है यूज़र इंटरफ़ेस (यूआई). अगर आपने रीफ़्रेश करने की सुविधा चालू नहीं की है, तो आपको नया अनुरोध करना होगा.

विज्ञापन इवेंट

GADBannerViewDelegate का इस्तेमाल करके, लाइफ़साइकल इवेंट को सुना जा सकता है, जैसे, जब कोई विज्ञापन बंद होता है या उपयोगकर्ता ऐप्लिकेशन से बाहर निकल जाता है.

बैनर इवेंट के लिए रजिस्टर करना

अगर आपको बैनर विज्ञापन इवेंट के लिए रजिस्टर करना है, तो delegate प्रॉपर्टी को चालू करें GAMBannerView को लागू करता है, जो GADBannerViewDelegate प्रोटोकॉल. आम तौर पर, बैनर लागू करने वाली क्लास विज्ञापन, डेलिगेट क्लास के तौर पर भी काम करते हैं. इस मामले में, delegate प्रॉपर्टी ये काम कर सकती है self पर सेट होना चाहिए.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADBannerViewDelegate {

  var bannerView: GAMBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    ...
    bannerView.delegate = self
  }
}

Objective-C

@import GoogleMobileAds;

@interface ViewController () <GADBannerViewDelegate>

@property(nonatomic, strong) GAMBannerView *bannerView;

@end

@implementation ViewController

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  self.bannerView.delegate = self;
}

बैनर इवेंट लागू करना

GADBannerViewDelegate में दिए गए हर तरीके को 'ज़रूरी नहीं' के तौर पर मार्क किया गया है. इसलिए, आपको सिर्फ़ अपनी पसंद के तरीके लागू करने होते हैं. यह उदाहरण हर तरीका लागू करता है और कंसोल में मैसेज लॉग करता है:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  print("bannerViewDidReceiveAd")
}

func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) {
  print("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)")
}

func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
  print("bannerViewDidRecordImpression")
}

func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillPresentScreen")
}

func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillDIsmissScreen")
}

func bannerViewDidDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewDidDismissScreen")
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidReceiveAd");
}

-   (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error {
  NSLog(@"bannerView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}

-   (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidRecordImpression");
}

-   (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillPresentScreen");
}

-   (void)bannerViewWillDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillDismissScreen");
}

-   (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidDismissScreen");
}

अगर आपको अपने विज्ञापन में बैनर डेलिगेट के तरीकों को लागू करना है, तो विज्ञापन डेलिगेट का उदाहरण देखें iOS API डेमो ऐप्लिकेशन.

स्विफ़्ट मकसद-सी

उपयोग के उदाहरण

यहां विज्ञापन इवेंट के इन तरीकों के इस्तेमाल के कुछ उदाहरण दिए गए हैं.

विज्ञापन मिलने के बाद, व्यू हैरारकी में बैनर जोड़ना

GAMBannerView को जोड़ने में थोड़ा समय लग सकता है विज्ञापन मिलने तक व्यू हैरारकी (व्यू और व्यू ग्रुप के लेआउट का क्रम) ऐसा करने के लिए, ये काम किए जा सकते हैं: bannerViewDidReceiveAd: इवेंट के लिए:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  // Add banner to view and add constraints as above.
  addBannerViewToView(bannerView)
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GAMBannerView *)bannerView {
  // Add bannerView to view and add constraints as above.
  [self addBannerViewToView:self.bannerView];
}

बैनर विज्ञापन को ऐनिमेट करना

bannerViewDidReceiveAd: इवेंट का इस्तेमाल, बैनर विज्ञापन को एक बार ऐनिमेट करने के लिए भी किया जा सकता है इसे लौटाया जाता है, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  bannerView.alpha = 0
  UIView.animate(withDuration: 1, animations: {
    bannerView.alpha = 1
  })
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GAMBannerView *)bannerView {
  bannerView.alpha = 0;
  [UIView animateWithDuration:1.0 animations:^{
    bannerView.alpha = 1;
  }];
}

ऐप्लिकेशन को रोकना और उसे फिर से शुरू करना

GADBannerViewDelegate प्रोटोकॉल में आपको इवेंट की सूचना देने के तरीके मिलते हैं. जैसे जैसे, किसी क्लिक की वजह से ओवरले पेश या खारिज हो जाता है. अगर आपको यह पता लगाना कि क्या ये इवेंट विज्ञापनों की वजह से हुए थे, इनके लिए रजिस्टर करें GADBannerViewDelegate तरीके.

सभी तरह के ओवरले प्रज़ेंटेशन या बाहरी ब्राउज़र को शुरू करने के लिए, समय-समय पर जो विज्ञापन पर क्लिक करने से मिलते हैं, आपका ऐप्लिकेशन UIViewController या UIApplication पर उसी तरह के तरीके इस्तेमाल करें. यहाँ एक टेबल दी गई है iOS के ऐसे मिलते-जुलते तरीके दिखाए जा रहे हैं जिनका इस्तेमाल एक ही समय पर किया जाता है GADBannerViewDelegate तरीका:

GADBannerViewDelegate iOS का तरीका
bannerViewWillPresentScreen: UIViewController का viewWillDisappear:
bannerViewWillDismissScreen: UIViewController का viewWillAppear:
bannerViewDidDismissScreen: UIViewController का viewDidAppear:

इंप्रेशन की मैन्युअल तरीके से गिनती

अगर आपके पास कोई खास इंप्रेशन रिकॉर्ड किए जाने की शर्तें तय करती हैं. इस कार्रवाई को पहले ही पूरा किया जा सकता है किसी विज्ञापन को लोड करने से पहले मैन्युअल इंप्रेशन के लिए GAMBannerView चालू करना:

Swift

bannerView.enableManualImpressions = true

Objective-C

self.bannerView.enableManualImpressions = YES;

जब आपको पता चलता है कि विज्ञापन सही तरीके से वापस आ गया है और वह स्क्रीन पर दिख रहा है, तो मैन्युअल रूप से इंप्रेशन ट्रिगर किए जा सकते हैं:

Swift

bannerView.recordImpression()

Objective-C

[self.bannerView recordImpression];

ऐप्लिकेशन इवेंट

ऐप्लिकेशन इवेंट की मदद से, ऐसे विज्ञापन बनाए जा सकते हैं जो अपने ऐप्लिकेशन कोड पर मैसेज भेज सकते हैं. कॉन्टेंट बनाने तब ऐप इन मैसेज के आधार पर कार्रवाइयां कर सकता है.

GADAppEventDelegate का इस्तेमाल करके, Ad Manager के खास ऐप्लिकेशन इवेंट सुने जा सकते हैं. ये इवेंट विज्ञापन के लाइफ़साइकल के दौरान किसी भी समय हो सकते हैं, यहां तक कि GADBannerViewDelegate ऑब्जेक्ट के bannerViewDidReceiveAd: पर कॉल किया गया.

Swift

// Implement your app event within this method. The delegate will be
// notified when the SDK receives an app event message from the ad.

// Called when the banner receives an app event.
optional public func bannerView(_ banner: GAMBannerView,
    didReceiveAppEvent name: String, withInfo info: String?)

Objective-C

// Implement your app event within this method. The delegate will be
// notified when the SDK receives an app event message from the ad.

@optional
// Called when the banner receives an app event.
-   (void)bannerView:(GAMBannerView *)banner
    didReceiveAppEvent:(NSString *)name
              withInfo:(NSString *)info;

आपके ऐप्लिकेशन इवेंट के तरीकों को व्यू कंट्रोलर में लागू किया जा सकता है:

Swift

import GoogleMobileAds

class ViewController: UIViewController, GADAppEventDelegate {
}

Objective-C

@import GoogleMobileAds;

@interface ViewController : UIViewController <GADAppEventDelegate> {
}

@end

किसी और को ईमेल भेजने से पहले, appEventDelegate प्रॉपर्टी का इस्तेमाल करके उस व्यक्ति को अपने ईमेल खाते का ऐक्सेस देना न भूलें किसी विज्ञापन के लिए अनुरोध.

Swift

bannerView.appEventDelegate = self

Objective-C

self.bannerView.appEventDelegate = self;

यहां एक उदाहरण दिया गया है, जिसमें बताया गया है कि ऐप्लिकेशन के बैकग्राउंड का रंग कैसे बदला जा सकता है ऐप्लिकेशन इवेंट के ज़रिए रंग तय करता है:

Swift

func bannerView(_ banner: GAMBannerView, didReceiveAppEvent name: String,
    withInfo info: String?) {
  if name == "color" {
    guard let info = info else { return }
    switch info {
    case "green":
      // Set background color to green.
      view.backgroundColor = UIColor.green
    case "blue":
      // Set background color to blue.
      view.backgroundColor = UIColor.blue
    default:
      // Set background color to black.
      view.backgroundColor = UIColor.black
    }
  }
}

Objective-C

-   (void)bannerView:(GAMBannerView *)banner
    didReceiveAppEvent:(NSString *)name
              withInfo:(NSString *)info {
  if ([name isEqual:@"color"]) {
    if ([info isEqual:@"green"]) {
      // Set background color to green.
      self.view.backgroundColor = [UIColor greenColor];
    } else if ([info isEqual:@"blue"]) {
      // Set background color to blue.
      self.view.backgroundColor = [UIColor blueColor];
    } else
      // Set background color to black.
      self.view.backgroundColor = [UIColor blackColor];
    }
  }
}

और यहां संबंधित क्रिएटिव दिया गया है जो रंगीन ऐप्लिकेशन इवेंट संदेश भेजता है appEventDelegate:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

ऐप्लिकेशन इवेंट लागू करने के लिए, Ad Manager ऐप्लिकेशन इवेंट का उदाहरण देखें iOS API डेमो ऐप्लिकेशन.

स्विफ़्ट मकसद-सी

अन्य संसाधन

GitHub पर उदाहरण

अगले चरण

छोटे किए जा सकने वाले बैनर

छोटे हो सकने वाले बैनर विज्ञापन ऐसे बैनर विज्ञापन होते हैं जो शुरुआत में बड़े साइज़ के ओवरले पर क्लिक करें. इसका इस्तेमाल करें का इस्तेमाल करें. ज़्यादा जानकारी के लिए, छोटे हो जाने वाले बैनर विज्ञापन देखें.

इनलाइन अडैप्टिव बैनर

ऐंकर किए गए अडैप्टिव बैनर की तुलना में, इनलाइन अडैप्टिव बैनर बड़े और लंबे होते हैं बैनर. इनकी ऊंचाई अलग-अलग होती है और ये डिवाइस की स्क्रीन जितनी लंबी हो सकती हैं. इनके लिए, ऐंकर किए गए अडैप्टिव बैनर वाले विज्ञापनों के बजाय, इनलाइन अडैप्टिव बैनर का सुझाव दिया जाता है ऐसे ऐप्लिकेशन जो स्क्रोल किए जा सकने वाले कॉन्टेंट में बैनर विज्ञापन दिखाते हैं. इनलाइन अडैप्टिव देखें बैनर विज्ञापन देखें. विवरण.

दूसरे विषय एक्सप्लोर करें