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

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

इस गाइड में, Unity ऐप्लिकेशन में बैनर व्यू को इंटिग्रेट करने का तरीका बताया गया है. इसमें कोड स्निपेट और निर्देशों के अलावा, बैनर के साइज़ को सही तरीके से तय करने के बारे में जानकारी और अन्य संसाधनों के लिंक भी शामिल हैं.

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

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

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

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

/21775744923/example/adaptive-banner

Mobile Ads SDK को शुरू करना

विज्ञापन लोड करने से पहले, अपने ऐप्लिकेशन को MobileAds.Initialize() को कॉल करके, Mobile Ads SDK टूल को शुरू करने दें. इसे सिर्फ़ एक बार करना होगा. आम तौर पर, ऐप्लिकेशन लॉन्च करते समय ऐसा करना चाहिए.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

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

BannerView का उदाहरण

नीचे दिए गए सैंपल कोड में, बैनर व्यू को इस्तेमाल करने का तरीका बताया गया है. उदाहरण में, आपने बैनर व्यू का एक इंस्टेंस बनाया है. साथ ही, बैनर व्यू में विज्ञापन लोड करने के लिए AdManagerAdRequest का इस्तेमाल किया है. इसके बाद, लाइफ़साइकल इवेंट को मैनेज करके, इसकी सुविधाओं को बढ़ाया है.

बैनर व्यू बनाना

बैनर व्यू का इस्तेमाल करने के लिए सबसे पहले, GameObject से जुड़ी C# स्क्रिप्ट में बैनर व्यू का इंस्टेंस बनाना होता है.


  // This ad unit is configured to always serve test ads.
  private string _adUnitId = "/21775744923/example/adaptive-banner";

  AdManagerBannerView _bannerView;

  /// <summary>
  /// Creates a 320x50 banner view at top of the screen.
  /// </summary>
  public void CreateBannerView()
  {
      Debug.Log("Creating banner view");

      // If we already have a banner, destroy the old one.
      if (_bannerView != null)
      {
          DestroyAd();
      }

      // Create a 320x50 banner at top of the screen
      _bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
  }

AdManagerBannerView के कंस्ट्रक्टर में ये पैरामीटर होते हैं:

  • adUnitId: वह विज्ञापन यूनिट आईडी जिससे AdManagerBannerView विज्ञापन लोड होने चाहिए.
  • AdSize: वह विज्ञापन साइज़ जिसका इस्तेमाल करना है. ज़्यादा जानकारी के लिए, बैनर साइज़ देखें.
  • AdPosition: वह जगह जहां बैनर व्यू डाले जाने चाहिए. AdPosition एनम में, विज्ञापन की रैंक की मान्य वैल्यू की सूची होती है.

ध्यान दें कि प्लैटफ़ॉर्म के हिसाब से, अलग-अलग विज्ञापन यूनिट का इस्तेमाल कैसे किया जाता है. iOS पर विज्ञापन अनुरोध करने के लिए, आपको iOS विज्ञापन यूनिट का इस्तेमाल करना होगा. वहीं, Android पर अनुरोध करने के लिए, आपको Android विज्ञापन यूनिट का इस्तेमाल करना होगा.

(ज़रूरी नहीं) कस्टम पोज़िशन वाला बैनर व्यू बनाना

AdPosition वैल्यू की तुलना में, स्क्रीन पर AdManagerBannerView को बेहतर तरीके से प्लेस करने के लिए, उस कॉन्स्ट्रक्टर का इस्तेमाल करें जिसमें पैरामीटर के तौर पर x- और y-कोऑर्डिनेट हों:

// Create a 320x50 banner views at coordinate (0,50) on screen.
_bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, 0, 50);

AdManagerBannerView के सबसे ऊपर बाएं कोने को, कॉन्स्ट्रक्टर में दी गई x और y वैल्यू पर रखा गया है. यहां ऑरिजिन, स्क्रीन के सबसे ऊपर बाईं ओर होता है.

(ज़रूरी नहीं) कस्टम साइज़ वाला बैनर व्यू बनाना

AdSize कॉन्स्टेंट का इस्तेमाल करने के अलावा, अपने विज्ञापन के लिए कस्टम साइज़ भी तय किया जा सकता है:

// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new AdManagerBannerView(_adUnitId, adSize, AdPosition.Bottom);

(ज़रूरी नहीं) विज्ञापन के कई साइज़

Ad Manager की मदद से, एक से ज़्यादा विज्ञापन साइज़ तय किए जा सकते हैं, जो AdManagerBannerView में दिखाए जा सकते हैं. SDK टूल में इस सुविधा को लागू करने से पहले, अलग-अलग साइज़ के क्रिएटिव से जुड़ी एक ही विज्ञापन यूनिट को टारगेट करने वाला लाइन आइटम बनाएं.

अपने ऐप्लिकेशन में, ValidAdSizes में एक से ज़्यादा AdSize पैरामीटर पास करें:

var adView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
adView.ValidAdSizes = new List<AdSize>
{
    AdSize.Banner, new AdSize(120, 20), new AdSize(250, 250),
};

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

बैनर विज्ञापन लोड करना

AdManagerBannerView लागू होने के बाद, AdManagerBannerView क्लास में LoadAd() तरीके से विज्ञापन लोड करें. यह एक पैरामीटर लेता है, जिसमें रनटाइम की जानकारी होती है. जैसे, टारगेटिंग की जानकारी, एक्सक्लूज़न लेबल, और पब्लिशर से मिला आईडी.

/// <summary>
/// Creates the banner view and loads a banner ad.
/// </summary>
public void LoadAd()
{
    // create an instance of a banner view first.
    if(_bannerView == null)
    {
        CreateAdManagerBannerView();
    }

    // create our request used to load the ad.
    var adRequest = new AdManagerAdRequest();

    // send the request to load the ad.
    Debug.Log("Loading banner ad.");
    _bannerView.LoadAd(adRequest);
}

बैनर व्यू इवेंट को सुनना

अपने विज्ञापन के व्यवहार को पसंद के मुताबिक बनाने के लिए, विज्ञापन के लाइफ़साइकल में कई इवेंट को जोड़ा जा सकता है. जैसे, लोड होना, खुलना या बंद होना. इन इवेंट को सुनने के लिए, किसी प्रतिनिधि को रजिस्टर करें:

/// <summary>
/// listen to events the banner view may raise.
/// </summary>
private void ListenToAdEvents()
{
    // Raised when an ad is loaded into the banner view.
    _bannerView.OnBannerAdLoaded += () =>
    {
        Debug.Log("Banner view loaded an ad with response : "
            + _bannerView.GetResponseInfo());
    };
    // Raised when an ad fails to load into the banner view.
    _bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
    {
        Debug.LogError("Banner view failed to load an ad with error : "
            + error);
    };
    // Raised when the ad is estimated to have earned money.
    _bannerView.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Banner view paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    _bannerView.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Banner view recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    _bannerView.OnAdClicked += () =>
    {
        Debug.Log("Banner view was clicked.");
    };
    // Raised when an ad opened full screen content.
    _bannerView.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Banner view full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    _bannerView.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Banner view full screen content closed.");
    };
}

बैनर व्यू को हटाना

बैनर व्यू का इस्तेमाल करने के बाद, संसाधनों को रिलीज़ करने के लिए Destroy() को कॉल करना न भूलें.

/// <summary>
/// Destroys the banner view.
/// </summary>
public void DestroyAd()
{
    if (_bannerView != null)
    {
        Debug.Log("Destroying banner view.");
        _bannerView.Destroy();
        _bannerView = null;
    }
}

हो गया! आपका ऐप्लिकेशन अब बैनर विज्ञापन दिखाने के लिए तैयार है.

किसी विज्ञापन को रीफ़्रेश करना

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

नीचे दी गई टेबल में, स्टैंडर्ड बैनर साइज़ की सूची दी गई है.

डाइमेंशन, डीपी में (चौड़ाई x ऊंचाई) ब्यौरा उपलब्धता AdSize कॉन्स्टेंट
320x50 स्टैंडर्ड बैनर फ़ोन और टेबलेट BANNER
320x100 बड़ा बैनर फ़ोन और टेबलेट LARGE_BANNER
300x250 IAB मीडियम रेक्टैंगल फ़ोन और टेबलेट MEDIUM_RECTANGLE
468x60 आईएबी फ़ुल-साइज़ बैनर टैबलेट FULL_BANNER
728x90 IAB लीडरबोर्ड टैबलेट LEADERBOARD
तय की गई चौड़ाई x ज़रूरत के हिसाब से ऊंचाई अडैप्टिव बैनर फ़ोन और टेबलेट लागू नहीं
स्क्रीन की चौड़ाई x 32|50|90 स्मार्ट बैनर फ़ोन और टेबलेट SMART_BANNER
अडैप्टिव बैनर के बारे में ज़्यादा जानें. इन्हें स्मार्ट बैनर की जगह इस्तेमाल किया जाता है.

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

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

AppEvent का इस्तेमाल करके, Ad Manager के खास ऐप्लिकेशन इवेंट को सुना जा सकता है. ये इवेंट, विज्ञापन के लाइफ़साइकल के दौरान कभी भी हो सकते हैं. भले ही, लोड होने से पहले ही ऐसा हो.

namespace GoogleMobileAds.Api.AdManager;

/// The App event message sent from the ad.
public class AppEvent
{
    // Name of the app event.
    string Name;
    // Argument passed from the app event.
    string Value;
}

OnAppEventReceived तब ट्रिगर होता है, जब किसी विज्ञापन में ऐप्लिकेशन इवेंट होता है. अपने कोड में इस इवेंट को मैनेज करने का उदाहरण यहां दिया गया है:

_bannerview.OnAppEventReceived += (AppEvent args) =>
{
    Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};

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

_bannerview.OnAppEventReceived += (AppEvent args) =>
{
  if (args.Name == "color")
  {
    Color color;
    if (ColorUtility.TryParseColor(arg.Value, out color))
    {
      gameObject.GetComponent<Renderer>().material.color = color;
    }
  }
};

यहां उस क्रिएटिव का उदाहरण दिया गया है जो कलर ऐप्लिकेशन इवेंट भेजता है:

<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>

अन्य संसाधन