विज्ञापन स्‍थापना

इस गाइड में बताया गया है कि अपने ऐप्लिकेशन के लिए विज्ञापन बनाने और दिखाने के लिए, Google Mobile Ads Unity प्लगिन की विज्ञापन प्लेसमेंट सुविधा का इस्तेमाल कैसे करें.

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

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

विज्ञापन लोड करने से पहले, MobileAds.Initialize() को Action<InitializationStatus> कॉलबैक के साथ कॉल करके, Mobile Ads SDK शुरू करें. इसे सिर्फ़ एक बार करना पड़ता है, खासकर ऐप्लिकेशन लॉन्च करते समय.

using GoogleMobileAds.Api;
using System.Collections.Generic;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    ...
    public void Start()
    {
        // Initialize the Mobile Ads SDK.
        MobileAds.Initialize((initStatus) =>
        {
            // SDK initialization is complete
        });
        ...
    }
}

विज्ञापन प्लेसमेंट बनाना

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

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

विज्ञापन प्लेसमेंट कॉन्फ़िगरेशन

हर प्लेसमेंट में ये प्रॉपर्टी होती हैं:

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

नीचे दिए गए स्क्रीनशॉट में, मेरा शानदार बैनर नाम के विज्ञापन प्लेसमेंट का उदाहरण दिखाया गया है.

सीन में AdGameObject जोड़ना

Unity Editor में GameObject > Google मोबाइल विज्ञापन का इस्तेमाल करके, अपने सीन में बैनर, पेज पर अचानक दिखने वाले विज्ञापन या इनाम वाले फ़ॉर्मैट के लिए AdGameObject जोड़ें. मौजूदा सीन में प्लेसमेंट जोड़ने के लिए फ़ॉर्मैट चुनें.

सीन में AdGameObject जोड़ने के बाद, आपको Unity Editor के हैरारकी व्यू में, विज्ञापन दिखाने वाला GameObject दिखेगा.

आप GameObject का नाम बदलकर, प्लेसमेंट का नाम बदल सकते हैं. नीचे दिया गया स्क्रीनशॉट, बैनर विज्ञापन नाम वाले AdGameObject का उदाहरण दिखाता है.

AdGameObject की सेटिंग

विज्ञापन गेम ऑब्जेक्ट (स्क्रिप्ट) कॉम्पोनेंट की सेटिंग में जाकर, Inspector व्यू से अपने सीन में AdGameObject को कॉन्फ़िगर किया जा सकता है.

विज्ञापन प्लेसमेंट

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

BannerAdGameObject कॉन्फ़िगरेशन (सिर्फ़ बैनर के लिए)

  • साइज़ - बैनर का वह साइज़ चुनें जिसका आपको इस्तेमाल करना है.
    • एंकर किया गया अडैप्टिव बैनर, कुछ और विकल्प भी देता है:
      • ओरिएंटेशन - विज्ञापन की ऊंचाई कैलकुलेट करने के लिए, इस्तेमाल किया जाने वाला डिवाइस ओरिएंटेशन चुनें.
      • फ़ुल स्क्रीन की चौड़ाई का इस्तेमाल करें - सही का निशान लगाने पर, बैनर पूरी स्क्रीन की चौड़ाई का इस्तेमाल कर लेगा. फ़ुल स्क्रीन की चौड़ाई का इस्तेमाल करें विकल्प से सही का निशान हटाकर, स्क्रीन की चौड़ाई % (50~99%) में बदलाव किया जा सकता है.
    • पसंद के मुताबिक विकल्प की मदद से, बैनर की चौड़ाई और ऊंचाई तय की जा सकती है.
  • विज्ञापन का क्रम - वह जगह चुनें जहां बैनर दिखाना है.

कॉलबैक

विज्ञापन कॉलबैक से जुड़े फ़ंक्शन लागू किए जा सकते हैं. उदाहरण के लिए, अगर आपको यह मैनेज करना है कि कोई बैनर विज्ञापन कब लोड न हो, तो:

  1. विज्ञापन कॉलबैक के साथ काम करने वाला फ़ंक्शन बनाएं.

    public void OnBannerAdFailedToLoad(string reason) {
        Debug.Log("Banner ad failed to load: " + reason);
    }
    
  2. उस स्क्रिप्ट को अटैच करें जिसमें ऊपर दिए गए फ़ंक्शन को सीन में किसी भी GameObject से जोड़ा गया हो.

  3. + बटन पर क्लिक करें. इसके बाद, उस GameObject को खींचें और छोड़ें जिसमें आपने स्क्रिप्ट को अटैच किया है.

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

स्क्रिप्ट से AdGameObject का इस्तेमाल करें

स्क्रिप्ट से AdGameObject इंस्टेंस पाएं

सभी AdGameObject ऑब्जेक्ट में, सुविधा के हिसाब से तरीका LoadAd() है. इससे एक सादे, बिना टारगेट वाले AdRequest के विज्ञापन लोड हो जाएगा. टारगेटिंग (विज्ञापन के लिए सही दर्शक चुनना) लागू करने के लिए, आपको अपने कॉन्फ़िगर किए गए विज्ञापन अनुरोध का इस्तेमाल करके, LoadAd(AdRequest adRequest) का इस्तेमाल करना चाहिए.

AdGameObject का इंस्टेंस पाने के लिए, हर फ़ॉर्मैट के लिए नीचे दिया गया तरीका इस्तेमाल करें:

MobileAds.Instance.GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

दिखाए गए BannerAdGameObject ऑब्जेक्ट में, आसान तरीके Hide() और Show() भी मौजूद हैं.

मध्यवर्ती

MobileAds.Instance.GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

दिखाए गए InterstitialAdGameObject ऑब्जेक्ट में, सुविधा के हिसाब से तरीका ShowIfLoaded() है.

इनाम दिया गया

MobileAds.Instance.GetAd<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

दिखाए गए RewardedAdGameObject ऑब्जेक्ट में, सुविधा के हिसाब से तरीका ShowIfLoaded() है.

उदाहरण के लिए, आपको BannerAdGameObject का एक इंस्टेंस मिल सकता है और आप उसे इस तरह लोड कर सकते हैं:

using UnityEngine;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class BannerTestScript : MonoBehaviour
{
    BannerAdGameObject bannerAd;

    void Start()
    {
        bannerAd = MobileAds.Instance
            .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

        bannerAd.LoadAd();
        ...
    }
    ...
}

अगर BannerAd नाम का कोई BannerAdGameObject है, तो आपको यह इस तरह का उदाहरण मिल सकता है:

MobileAds.Instance.GetAd<BannerAdGameObject>("BannerAd");

AdGameObject में मौजूद विज्ञापन ऑब्जेक्ट को ऐक्सेस करें

ये स्निपेट दिखाते हैं कि AdGameObject से जुड़े नीचे के विज्ञापन ऑब्जेक्ट को कैसे ऐक्सेस किया जाए.

BannerAdGameObject bannerAd = MobileAds.Instance
    .GetAd<BannerAdGameObject>("AD_GAMEOBJECT_NAME");

// Access BannerView object
BannerView bannerView = bannerAd.BannerView;

मध्यवर्ती

InterstitialAdGameObject interstitialAdGameObject = MobileAds.Instance
    .GetAd<InterstitialAdGameObject>("AD_GAMEOBJECT_NAME");

// Access InterstitialAd object
InterstitialAd interstitialAd = interstitialAdGameObject.InterstitialAd;

इनाम दिया गया

RewardedAdGameObject rewardedAdGameObject = MobileAds.Instance
    .Get<RewardedAdGameObject>("AD_GAMEOBJECT_NAME");

// Access RewardedAd object
RewardedAd rewardedAd = rewardedAdGameObject.RewardedAd;

उदाहरण

पेज पर अचानक दिखने वाला विज्ञापन दिखाना

यहां दिए गए उदाहरण में, AdGameObject का इस्तेमाल करके अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापन को लोड करने और दिखाने के लिए, गेम को कॉन्फ़िगर करने का तरीका बताया गया है.

सीन में InterstitialAdGameObject जोड़ें और अपने-आप लोड होने की सुविधा सुविधा चालू करें, ताकि सीन लोड होने पर विज्ञापन अपने-आप लोड हो जाए.

इसके बाद, पक्का करें कि आपने नीचे बताए गए तरीके से SDK टूल शुरू किया हो. ध्यान दें कि अगर आप SDK टूल शुरू करना भूल जाते हैं, तो AdGameObject में ऑटो लोड सुविधा काम नहीं करेगी.

इसके बाद, InterstitialAdGameObject.ShowIfLoaded() फ़ंक्शन को कॉल करके, स्क्रीन ट्रांज़िशन के बीच पेज पर अचानक दिखने वाला विज्ञापन दिखाएं. नीचे दिया गया कोड, एक सीन के ट्रांज़िशन के बीच अचानक दिखने वाले (इंटरस्टीशियल) विज्ञापन को दिखाने का एक उदाहरण दिखाता है.

using UnityEngine;
using UnityEngine.SceneManagement;

using GoogleMobileAds.Api;
using GoogleMobileAds.Placement;

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAd<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }

    public void OnClickShowGameSceneButton()
    {
        // Display an interstitial ad
        interstitialAd.ShowIfLoaded();

        // Load a scene named "GameScene"
        SceneManager.LoadScene("GameScene");
    }
}

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

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

public class MainScene : MonoBehaviour
{
    InterstitialAdGameObject interstitialAd;

    void Start()
    {
        interstitialAd = MobileAds.Instance
            .GetAdGameObject<InterstitialAdGameObject>("interstitial");

        MobileAds.Initialize((initStatus) => {
            Debug.Log("MobileAds initialized");

            // Load an interstitial ad after the SDK initialization is complete
            interstitialAd.LoadAd();
        });
    }
    ...
}

"इनाम वाला विज्ञापन देखें" बटन की स्थिति को मैनेज करना

विज्ञापन प्लेसमेंट का इस्तेमाल करके, "इनाम वाला विज्ञापन देखें" बटन को चालू करने का तरीका यहां बताया गया है.

सीन में एक बटन गेमऑब्जेक्ट जोड़ें जिसका नाम बटन है. इसका इस्तेमाल इनाम वाले विज्ञापन को दिखाने के लिए किया जाएगा. हम इस बटन को तभी उपलब्ध कराएंगे, जब इनाम वाला विज्ञापन उपलब्ध होगा.

Start() तरीके में, बटन की चालू स्थिति को false पर सेट करें. ऐसा करने से बटन सीन से गायब हो जाएगा.

public class MainScene : MonoBehaviour
{
    ...
    void Start()
    {
        GameObject.Find("Button").SetActive(false);
        ...
    }
}

सीन में RewardedAdGameObject जोड़ें और ड्रॉपडाउन से AdMob के इनाम वाले डेमो विज्ञापन का विज्ञापन प्लेसमेंट चुनें.

RewardedAdGameObject इंस्पेक्टर के कॉलबैक सेक्शन में जाकर, Ad Loaded() से + बटन पर क्लिक करें. इससे, इनाम वाले विज्ञापन के लोड होने पर, फ़ंक्शन को कॉल किया जा सकेगा.

आपने पिछले चरण में जिस बटन गेमऑब्जेक्ट को जोड़ा था उसे कोई नहीं (ऑब्जेक्ट) फ़ील्ड में खींचें और छोड़ें. ड्रॉपडाउन से वह फ़ंक्शन चुनें जिसे आपको कॉल करना है. No फ़ंक्शन > GameObject > SetActive(bool) पर क्लिक करें. इसके बाद, चेकबॉक्स पर क्लिक करें, ताकि यह true को पैरामीटर के तौर पर भेज सके (SetActive(true) को कॉल करता है).

इस कॉलबैक सेक्शन में, किसी ऐसे इवेंट को भी लिंक किया जा सकता है जिसे RewardedAd.OnUserEarnedReward इवेंट के ट्रिगर होने पर कॉल किया जाएगा. ज़्यादा जानकारी के लिए, यह सेक्शन देखें.

इसके बाद, क्लिक करने पर इनाम वाला विज्ञापन दिखाने के लिए बटन बनाएं. बटन इंस्पेक्टर के OnClick() कॉलबैक सेक्शन में, + बटन पर क्लिक करें. इसके बाद, इनाम वाले विज्ञापन प्लेसमेंट गेम ऑब्जेक्ट (इस उदाहरण में इनाम वाला विज्ञापन नाम) को खींचकर कोई नहीं (ऑब्जेक्ट) फ़ील्ड में छोड़ें.

इसके बाद, RewardedAdGameObject.ShowIfLoaded() फ़ंक्शन को बटन के On Click() कॉलबैक से अटैच करें.

आखिर में, SDK टूल को शुरू करना न भूलें. यह कोड स्निपेट, इस उदाहरण में इस्तेमाल किए गए सीन का पूरा कोड है:

using UnityEngine;

using GoogleMobileAds.Api;

public class MainScene : MonoBehaviour
{
    void Start()
    {
        GameObject.Find("Button").SetActive(false);

        MobileAds.Initialize((initStatus) => {
            Debug.Log("Initialized MobileAds");
        });
    }
}

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

RewardedAdGameObject के लिए, इनाम वाले कॉलबैक को कॉन्फ़िगर करें

यहां इनाम वाले कॉलबैक को, इनाम वाले विज्ञापन के प्लेसमेंट में कॉन्फ़िगर करने का एक उदाहरण दिया गया है, ताकि कॉलबैक फ़ंक्शन को कॉल करने पर किसी उपयोगकर्ता को इनाम दिया जा सके.

नई स्क्रिप्ट बनाएं और ऐसा फ़ंक्शन तय करें जो Reward को पैरामीटर के तौर पर स्वीकार करता हो. इसके लिए, नीचे दिया गया तरीका अपनाएं.

using UnityEngine;
using GoogleMobileAds.Api;

class RewardedTestScript : MonoBehaviour {
    ...
    public void OnUserEarnedReward(Reward reward) {
        Debug.Log("OnUserEarnedReward: reward=" +
            reward.Type + ", amount=" + reward.Amount);
    }
    ...
}

सीन में मौजूद किसी भी GameObject (विज्ञापन प्लेसमेंट गेम ऑब्जेक्ट को छोड़कर) से RewardedTestScript स्क्रिप्ट को अटैच करें. इस उदाहरण में, यह मुख्य कैमरा गेमऑब्जेक्ट से जोड़ा गया है.

सीन में RewardedAdGameObject जोड़ें. इसके बाद, RewardedAdGameObject इंस्पेक्टर में कॉलबैक सेक्शन में जाकर, उपयोगकर्ता को मिला इनाम (इनाम) के बगल में मौजूद + बटन पर क्लिक करें. इससे उपयोगकर्ता को इनाम मिलने पर, फ़ंक्शन कॉल किया जा सकेगा.

आपने पिछले चरण में जो मुख्य कैमरा गेमऑब्जेक्ट जोड़ा था उसे खींचकर कोई नहीं (ऑब्जेक्ट) फ़ील्ड में छोड़ें. ड्रॉपडाउन से कॉल करने के लिए कोई फ़ंक्शन चुनें. No फ़ंक्शन > RewardedTestScript > OnUserEarnedReward पर क्लिक करें.

प्रोजेक्ट चलाने और इनाम वाले विज्ञापन को देखने के बाद, RewardedTestScript.OnUserEarnedReward() तब शुरू होगा, जब आपको विज्ञापन से इंटरैक्ट करने के लिए इनाम मिलेगा.