AdMob ऐप्लिकेशन को Unity ऐप्लिकेशन में खोलने पर दिखने वाला विज्ञापन

1. परिचय

इस कोडलैब में, आपको Unity ऐप्लिकेशन में AdMob ऐप्लिकेशन ओपन विज्ञापन लागू करने का तरीका बताया गया है.

आपको क्या बनाना है

इस कोडलैब में, Google Mobile Ads Unity प्लगिन का इस्तेमाल करके, Unity ऐप्लिकेशन में AdMob ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन लागू करने का तरीका बताया गया है.

6338548c3f73e7cf.gif

अगर आपको इस कोडलैब को पूरा करते समय कोई समस्या (कोड में गड़बड़ियां, व्याकरण की गड़बड़ियां, शब्दों का सही इस्तेमाल न होना वगैरह) आती है, तो कोडलैब के सबसे नीचे, बाएं कोने में मौजूद गड़बड़ी की शिकायत करें लिंक का इस्तेमाल करके, समस्या की शिकायत करें.

आपको क्या सीखने को मिलेगा

  • Google Mobile Ads Unity प्लगिन को कॉन्फ़िगर करने का तरीका
  • Unity ऐप्लिकेशन में ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन लागू करने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Unity 2018.4 या इसके बाद का वर्शन
  • iOS पर डिप्लॉय करने के लिए, Xcode 12 या इसके बाद का वर्शन और CocoaPods

AdMob इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?

शुरुआती सामान्य एडवांस

2. डेवलपमेंट एनवायरमेंट सेट अप करना

कोड डाउनलोड करें

ज़िप फ़ाइल डाउनलोड करने के बाद, उसके कॉन्टेंट को एक्सट्रैक्ट करें. आपके पास admob-appopen-unity-main नाम का एक फ़ोल्डर होगा.

इसके अलावा, कमांड लाइन से GitHub रिपॉज़िटरी को क्लोन किया जा सकता है:

$ git clone https://github.com/googlecodelabs/admob-appopen-unity

इस रिपॉज़िटरी में दो फ़ोल्डर हैं:

  • android_studio_folder.png स्टार्टर: यह वह शुरुआती कोड है जिसे आपको इस कोडलैब में बनाना है.
  • android_studio_folder.png complete: इस कोडलैब के लिए पूरा किया गया कोड.

3. AdMob ऐप्लिकेशन और विज्ञापन यूनिट सेट अप करना

Unity एक मल्टी-प्लैटफ़ॉर्म एसडीके है. इसलिए, आपको AdMob में Android और iOS, दोनों के लिए एक ऐप्लिकेशन और विज्ञापन यूनिट जोड़नी होगी.

Android के लिए सेट अप करना

Android के लिए सेट अप करने के लिए, आपको एक Android ऐप्लिकेशन जोड़ना होगा और विज्ञापन यूनिट बनानी होंगी.

Android ऐप्लिकेशन जोड़ना

  1. AdMob कंसोल में, ऐप्लिकेशन मेन्यू में जाकर, ऐप्लिकेशन जोड़ें पर क्लिक करें.
  2. प्लैटफ़ॉर्म के तौर पर Android को चुनें. जब आपसे पूछा जाए कि क्या ऐप्लिकेशन, AdMob के साथ काम करने वाले ऐप स्टोर में मौजूद है?, तो नहीं पर क्लिक करें.
  3. ऐप्लिकेशन के नाम वाले फ़ील्ड में AdMob app open ad डालें.
  4. इस कोडलैब को पूरा करने के लिए, उपयोगकर्ता मेट्रिक चालू करना ज़रूरी नहीं है. हालांकि, हमारा सुझाव है कि आप ऐसा करें, क्योंकि इससे आपको उपयोगकर्ता के व्यवहार के बारे में ज़्यादा जानकारी मिलती है. प्रोसेस पूरी करने के लिए, जोड़ें पर क्लिक करें.

विज्ञापन यूनिट बनाना

  1. AdMob कंसोल में, ऐप्लिकेशन मेन्यू से AdMob ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन ऐप्लिकेशन (Android) चुनें.
  2. विज्ञापन यूनिट मेन्यू पर क्लिक करें.

  1. विज्ञापन यूनिट जोड़ें पर क्लिक करें.
  2. फ़ॉर्मैट के तौर पर ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन चुनें.
  3. विज्ञापन यूनिट का नाम फ़ील्ड में android-appopen डालें.
  4. प्रोसेस पूरी करने के लिए, विज्ञापन यूनिट बनाएं पर क्लिक करें.

आम तौर पर, नई विज्ञापन यूनिट को विज्ञापन दिखाने में कुछ घंटे लगते हैं.

अगर आपको विज्ञापन के व्यवहार को तुरंत टेस्ट करना है, तो Android ऐप्लिकेशन आईडी/विज्ञापन यूनिट आईडी और iOS ऐप्लिकेशन आईडी/विज्ञापन यूनिट आईडी टेबल में दिए गए टेस्ट ऐप्लिकेशन आईडी और विज्ञापन यूनिट आईडी का इस्तेमाल करें.

iOS के लिए सेट अप करना

iOS के लिए सेट अप करने के लिए, आपको एक iOS ऐप्लिकेशन जोड़ना होगा और विज्ञापन यूनिट बनानी होंगी.

iOS ऐप्लिकेशन जोड़ना

  1. AdMob कंसोल में, ऐप्लिकेशन मेन्यू में जाकर, ऐप्लिकेशन जोड़ें पर क्लिक करें.
  2. प्लैटफ़ॉर्म के तौर पर, iOS चुनें. जब आपसे पूछा जाए कि क्या ऐप्लिकेशन, AdMob के साथ काम करने वाले ऐप स्टोर में मौजूद है?, तो नहीं पर क्लिक करें.
  3. ऐप्लिकेशन के नाम वाले फ़ील्ड में AdMob app open ad डालें.
  4. इस कोडलैब को पूरा करने के लिए, उपयोगकर्ता मेट्रिक चालू करना ज़रूरी नहीं है. हालांकि, हमारा सुझाव है कि आप ऐसा करें, क्योंकि इससे आपको उपयोगकर्ता के व्यवहार के बारे में ज़्यादा जानकारी मिलती है. प्रोसेस पूरी करने के लिए, जोड़ें पर क्लिक करें.

विज्ञापन यूनिट बनाना

  1. AdMob कंसोल में, ऐप्लिकेशन मेन्यू से AdMob इनलाइन विज्ञापन ऐप्लिकेशन (iOS) चुनें.
  2. विज्ञापन यूनिट मेन्यू पर क्लिक करें.

  1. विज्ञापन यूनिट जोड़ें पर क्लिक करें.
  2. फ़ॉर्मैट के तौर पर ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन चुनें.
  3. विज्ञापन यूनिट का नाम फ़ील्ड में ios-appopen डालें.
  4. प्रोसेस पूरी करने के लिए, विज्ञापन यूनिट बनाएं पर क्लिक करें.

आम तौर पर, नई विज्ञापन यूनिट को विज्ञापन दिखाने में कुछ घंटे लगते हैं.

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

ज़रूरी नहीं: AdMob के टेस्ट ऐप्लिकेशन और विज्ञापन यूनिट का इस्तेमाल करना

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

Android ऐप्लिकेशन आईडी/विज्ञापन यूनिट आईडी

Item

ऐप्लिकेशन आईडी/विज्ञापन यूनिट आईडी

AdMob के ज़रिए विज्ञापन दिखाने वाले ऐप्लिकेशन का आईडी

ca-app-pub-3940256099942544~3347511713

विज्ञापन इकाई की ID

ca-app-pub-3940256099942544/3419835294

iOS ऐप्लिकेशन का आईडी/विज्ञापन यूनिट आईडी

Item

ऐप्लिकेशन आईडी/विज्ञापन यूनिट आईडी

AdMob के ज़रिए विज्ञापन दिखाने वाले ऐप्लिकेशन का आईडी

ca-app-pub-3940256099942544~1458002511

विज्ञापन इकाई की ID

ca-app-pub-3940256099942544/5662855259

टेस्ट विज्ञापनों के बारे में ज़्यादा जानने के लिए, Android टेस्ट विज्ञापन और iOS टेस्ट विज्ञापन के डेवलपर दस्तावेज़ देखें.

4. Google Mobile Ads Unity प्लगिन जोड़ना

Google Mobile Ads Unity प्लगिन को इंटिग्रेट करना, AdMob विज्ञापन दिखाने और कमाई करने के लिए पहला कदम है.

Mobile Ads Unity प्लगिन डाउनलोड करना

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

प्लगिन के लिए Unity पैकेज डाउनलोड करने के लिए, यहां दिए गए लिंक का इस्तेमाल करें.

स्टार्टर प्रोजेक्ट खोलना

  1. Unity Hub लॉन्च करें.
  2. प्रोजेक्ट टैब में, जोड़ें बटन पर क्लिक करें.
  3. उस फ़ोल्डर पर जाएं जहां आपने डेवलपमेंट एनवायरमेंट सेट अप करने के चरण में, डाउनलोड किए गए कोड को एक्सट्रैक्ट किया था.
  4. starter फ़ोल्डर खोलें.
  5. आपको प्रोजेक्ट की सूची में स्टार्टर प्रोजेक्ट दिखेगा. प्रोजेक्ट को Unity Editor में खोलने के लिए, उस पर क्लिक करें.

Mobile Ads Unity प्लगिन इंपोर्ट करना

  1. Unity Editor में, मेन्यू से Assets > Import Package > Custom Package चुनें.
  2. पिछले चरण में डाउनलोड की गई GoogleMobileAds-{VERSION}.unitypackage को चुनें.
  3. पक्का करें कि सभी फ़ाइलें चुनी गई हों. इसके बाद, इंपोर्ट करें पर क्लिक करें.

AdMob ऐप्लिकेशन का आईडी सेट करना

  1. Unity Editor में, मेन्यू से Assets > Google Mobile Ads > Settings चुनें.
  2. हर फ़ील्ड में, Android और iOS AdMob ऐप्लिकेशन का आईडी डालें. अगर आपको खुद से नया ऐप्लिकेशन और विज्ञापन यूनिट बनाने के बजाय, कोडलैब का पालन करना है, तो टेस्ट AdMob ऐप्लिकेशन आईडी इस तरह डालें.

8890521e199b1090.png

5. कोई यूटिलिटी क्लास बनाना

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

AppOpenAdManager.cs

using System;
using GoogleMobileAds.Api;
using UnityEngine;

public class AppOpenAdManager
{
#if UNITY_ANDROID
    // Test ad unit ID: ca-app-pub-3940256099942544/3419835294
    private const string AD_UNIT_ID = "<YOUR_ANDROID_APPOPEN_AD_UNIT_ID>";
#elif UNITY_IOS
    // Test ad unit ID: ca-app-pub-3940256099942544/5662855259
    private const string AD_UNIT_ID = "<YOUR_IOS_APPOPEN_AD_UNIT_ID>";
#else
    private const string AD_UNIT_ID = "unexpected_platform";
#endif

    private static AppOpenAdManager instance;

    private AppOpenAd ad;

    private bool isShowingAd = false;

    public static AppOpenAdManager Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new AppOpenAdManager();
            }

            return instance;
        }
    }

    private bool IsAdAvailable
    {
        get
        {
            return ad != null;
        }
    }

    public void LoadAd()
    {
        // TODO: Load an app open ad.
    }
}

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

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

लोड किए गए AppOpenAd ऑब्जेक्ट को पूरा होने वाले हैंडलर में पैरामीटर के तौर पर दिया जाता है. LoadAd() तरीके को इस तरह लागू करें.

AppOpenAdManager.cs

public class AppOpenAdManager
{
    ...

    public void LoadAd()
    {
        AdRequest request = new AdRequest.Builder().Build();

        // Load an app open ad for portrait orientation
        AppOpenAd.LoadAd(AD_UNIT_ID, ScreenOrientation.Portrait, request, ((appOpenAd, error) =>
        {
            if (error != null)
            {
                // Handle the error.
                Debug.LogFormat("Failed to load the ad. (reason: {0})", error.LoadAdError.GetMessage());
                return;
            }

            // App open ad is loaded.
            ad = appOpenAd;
        }));
    }
}

विज्ञापन दिखाएं

विज्ञापन दिखाने से पहले, हर इवेंट हैंडलर के लिए रजिस्टर करें, ताकि हर विज्ञापन इवेंट को सुना जा सके.

AppOpenAdManager.cs

public class AppOpenAdManager
{
    ...

    public void ShowAdIfAvailable()
    {
        if (!IsAdAvailable || isShowingAd)
        {
            return;
        }

        ad.OnAdDidDismissFullScreenContent += HandleAdDidDismissFullScreenContent;
        ad.OnAdFailedToPresentFullScreenContent += HandleAdFailedToPresentFullScreenContent;
        ad.OnAdDidPresentFullScreenContent += HandleAdDidPresentFullScreenContent;
        ad.OnAdDidRecordImpression += HandleAdDidRecordImpression;
        ad.OnPaidEvent += HandlePaidEvent;

        ad.Show();
    }

    private void HandleAdDidDismissFullScreenContent(object sender, EventArgs args)
    {
        Debug.Log("Closed app open ad");
        // Set the ad to null to indicate that AppOpenAdManager no longer has another ad to show.
        ad = null;
        isShowingAd = false;
        LoadAd();
    }

    private void HandleAdFailedToPresentFullScreenContent(object sender, AdErrorEventArgs args)
    {
        Debug.LogFormat("Failed to present the ad (reason: {0})", args.AdError.GetMessage());
        // Set the ad to null to indicate that AppOpenAdManager no longer has another ad to show.
        ad = null;
        LoadAd();
    }

    private void HandleAdDidPresentFullScreenContent(object sender, EventArgs args)
    {
        Debug.Log("Displayed app open ad");
        isShowingAd = true;
    }

    private void HandleAdDidRecordImpression(object sender, EventArgs args)
    {
        Debug.Log("Recorded ad impression");
    }

    private void HandlePaidEvent(object sender, AdValueEventArgs args)
    {
        Debug.LogFormat("Received paid event. (currency: {0}, value: {1}",
                args.AdValue.CurrencyCode, args.AdValue.Value);
    }
}

विज्ञापन की समयसीमा खत्म होने की तारीख के बारे में जानकारी

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

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

AppOpenAdManager.cs

public class AppOpenAdManager
{
    ...

    // TODO: Add loadTime field
    private DateTime loadTime;

    private bool IsAdAvailable
    {
        get
        {
            // TODO: Consider ad expiration
            return ad != null && (System.DateTime.UtcNow - loadTime).TotalHours < 4;
        }
    }

    public void LoadAd()
    {
        if (IsAdAvailable)
        {
            return;
        }

        AdRequest request = new AdRequest.Builder().Build();
        AppOpenAd.LoadAd(AD_UNIT_ID, ScreenOrientation.Portrait, request, ((appOpenAd, error) =>
        {
            if (error != null)
            {
                Debug.LogFormat("Failed to load the ad. (reason: {0})", error.LoadAdError.GetMessage());
                return;
            }

            ad = appOpenAd;
            Debug.Log("App open ad loaded");

            // TODO: Keep track of time when the ad is loaded.
            loadTime = DateTime.UtcNow;
        }));
    }
}

6. विज्ञापन लोड करने/दिखाने के लिए सीन अपडेट करना

सीन शुरू होने पर ऐप्लिकेशन खोलने पर दिखने वाला विज्ञापन लोड करने के लिए, MainScene क्लास में Start() तरीके को अपडेट करें.

ऐप्लिकेशन के फ़ोरग्राउंडिंग इवेंट की सूचना पाने के लिए, हमारा सुझाव है कि आप AppStateEventNotifier सिंग्लेटन को सुनें. AppStateEventNotifier.AppStateChanged डेलिगेट को लागू करने पर, आपके ऐप्लिकेशन को ऐप्लिकेशन लॉन्च और फ़ोरग्राउंडिंग इवेंट के बारे में सूचना मिलेगी. साथ ही, वह विज्ञापन दिखा पाएगा.

MainScene.cs

using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine;

public class MainScene : MonoBehaviour
{
    public void Start()
    {
        // TODO: Request an app open ad.
        MobileAds.Initialize((initStatus) =>
        {
            AppOpenAdManager.Instance.LoadAd();
            AppStateEventNotifier.AppStateChanged += OnAppStateChanged;
        });
    }

    public void OnAppStateChanged(AppState state)
    {
        if (state == AppState.Foreground)
        {
            // TODO: Show an app open ad if available.
            AppOpenAdManager.Instance.ShowAdIfAvailable();
        }
    }
}

हो गया! किसी डिवाइस या एम्युलेटर पर प्रोजेक्ट बनाएं और उसे चलाएं. ऐप्लिकेशन लॉन्च होने के बाद, विज्ञापन को पूरी तरह लोड होने के लिए कुछ सेकंड इंतज़ार करें.

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

6338548c3f73e7cf.gif

7. सब हो गया!

आपने कोडलैब पूरा कर लिया है. इस कोडलैब का पूरा कोड, android_studio_folder.pngcomplete फ़ोल्डर में देखा जा सकता है.