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

1. परिचय

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

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

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

6338548c3f73e7cf.gif

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

आपको इनके बारे में जानकारी मिलेगी

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

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

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

AdMob के साथ आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

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

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

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

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

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

डेटा स्टोर करने की जगह में दो फ़ोल्डर होते हैं:

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

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

Unity कई प्लैटफ़ॉर्म पर काम करने वाला SDK टूल है. इसलिए, आपको 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 मोबाइल विज्ञापन Unity प्लगिन जोड़ें

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

मोबाइल विज्ञापन Unity प्लगिन को डाउनलोड करें

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

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

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

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

मोबाइल विज्ञापन Unity प्लगिन को इंपोर्ट करें

  1. Unity एडिटर में, ऐसेट > पैकेज इंपोर्ट करें > कस्टम पैकेज पर क्लिक करें.
  2. पिछले चरण में डाउनलोड किया गया GoogleMobileAds-{VERSION}.unitypackage चुनें.
  3. पक्का करें कि सभी फ़ाइलें चुनी गई हैं और फिर इंपोर्ट करें पर क्लिक करें.

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

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

8890521e199b1090.png

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

Scripts फ़ोल्डर में, 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.pngपूरा करें फ़ोल्डर देखें.