इस गाइड से आपको नेटिव विज्ञापनों के ऐड-ऑन का इस्तेमाल करके, Unity ऐप्लिकेशन में AdMob के नेटिव विज्ञापनों को लागू करने का तरीका पता चलेगा. साथ ही, इस दौरान कुछ ज़रूरी बातों का भी ध्यान रखना होगा.
नेटिव विज्ञापन, उस उपयोगकर्ता अनुभव के फ़ॉर्म और फ़ंक्शन, दोनों से मेल खाते हैं जिनमें उन्हें रखा गया है. वे उस ऐप्लिकेशन के विज़ुअल डिज़ाइन से भी मेल खाते हैं जिसमें वे रहते हैं. AdMob के नेटिव विज्ञापन फ़ॉर्मैट की मदद से, पब्लिशर ऐसे कॉन्टेंट को रेंडर कर सकते हैं जो कॉन्टेंट के साथ आसानी से काम करता है. आप इस टेक्नोलॉजी का इस्तेमाल करके, बहुत सारे कस्टम रेंडरिंग लागू कर सकते हैं. ये Unity ऐप्लिकेशन में नेटिव कोड का पूरा फ़ायदा उठाते हैं.
नेटिव विज्ञापन उसी तरह के GameObjects
का इस्तेमाल करके दिखाए जाते हैं जिनके साथ आप पहले से अपने ऐप्लिकेशन बना रहे हैं. साथ ही, उन्हें उपयोगकर्ता के अनुभव के विज़ुअल डिज़ाइन के हिसाब से फ़ॉर्मैट किया जा सकता है. जब कोई नेटिव विज्ञापन लोड होता है, तो आपके ऐप्लिकेशन को एक नेटिव ऑब्जेक्ट मिलता है, जिसमें उसके एसेट और Unity ऐप्लिकेशन (SDK टूल के बजाय) होते हैं.
ज़रूरी शर्तें
- Google मोबाइल विज्ञापन यूनिट प्लग इन का 7.0.0 या उसके बाद का वर्शन.
- शुरुआती निर्देश पूरी करें.
- नेटिव विज्ञापनों को ऐड-ऑन डाउनलोड करें और इंस्टॉल करें.
नेटिव विज्ञापन के फ़ॉर्मैट लोड करें
नेटिव विज्ञापन AdLoader
क्लास से लोड किए जाते हैं. कॉन्टेंट बनाने के दौरान इसे पसंद के मुताबिक बनाने के लिए, नेटिव विज्ञापन की अपनी AdLoader.Builder
क्लास होती है. ForNativeAd()
तरीके में, नेटिव विज्ञापनों को हैंडल करने के लिए AdLoader को कॉन्फ़िगर किया जाता है.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
AdLoader विज्ञापन इवेंट के लिए रजिस्टर करें
जब कोई नेटिव विज्ञापन लोड हो जाए या लोड न हो जाए, तब इसकी सूचना पाने के लिए, नीचे दिए गए इवेंट के लिए, AdLoader
क्लास में डेलिगेट जोड़ें.
OnनेटिवAdकॉन्टेंट
निजी विज्ञापन लोड होने पर शुरू हुआ. लोड होने वाले विज्ञापन को ऐक्सेस करने के लिए, इस इवेंट का प्रतिनिधि होना ज़रूरी है.
OnAdFailedToLoad
जब किसी नेटिव विज्ञापन को लोड न किया जा सके, तो शुरू किया गया.
विज्ञापन लोड करें
जब आप AdLoader
बना लें, तो विज्ञापन का अनुरोध करने के लिए इसके LoadAd()
तरीके पर कॉल करें:
adLoader.LoadAd(new AdRequest.Builder().Build());
विज्ञापन अनुरोध को एक साथ रखना
नीचे दिया गया कोड स्निपेट दिखाता है कि AdLoader
को कैसे बनाया जाता है. इसे नेटिव विज्ञापनों के लिए अनुरोध करने के लिए कॉन्फ़िगर किया जाता है. यह सफल और फ़ेल हो चुके विज्ञापन लोड के लिए, डेलिगेट सेट करता है, और विज्ञापन का अनुरोध करता है.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
जो विज्ञापन लोड नहीं हो पाए उन्हें मैनेज करना
OnAdFailedToLoad
इवेंट EventHandle<AdFailedToLoadEventArgs>
टाइप का है.
इस इवेंट के विज्ञापन लोड न होने की वजह पार्स की जा रही है.
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
नेटिव विज्ञापन दिखाएं
जब कोई नेटिव विज्ञापन लोड होता है, तो उससे जुड़े विज्ञापन फ़ॉर्मैट के लिए विज्ञापन इवेंट को शुरू किया जाता है. इसके बाद, आपका ऐप्लिकेशन विज्ञापन दिखाने के लिए ज़िम्मेदार होता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
विज्ञापन लोड को मैनेज करना
OnNativeAdLoaded
इवेंट EventHandler<NativeAdEventArgs>
टाइप का है. NativeAd
ऑब्जेक्ट में समझाया गया विज्ञापन, NativeAdEventArgs
से लिया गया है, जैसा कि दिखाया गया है:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
नेटिव विज्ञापन एसेट फिर से पाएं
विज्ञापन लोड होने के बाद, उनकी एसेट को नीचे दिखाए गए तरीके से ऐक्सेस किया जा सकता है. ग्राफ़िकल एसेट को Texture2D
ऑब्जेक्ट के तौर पर दिखाया जाता है और टेक्स्ट एसेट को string
ऑब्जेक्ट के तौर पर दिखाया जाता है.
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
ध्यान दें कि विज्ञापन एसेट सिर्फ़ मुख्य थ्रेड पर ऐक्सेस किए जाने चाहिए. उदाहरण के लिए, यूनिटी स्क्रिप्ट के Update()
तरीके से. साथ ही, यह भी ध्यान रखें कि इन एसेट के मौजूद होने की कोई गारंटी नहीं है. साथ ही, दिखाने से पहले इनकी जांच कर लेनी चाहिए:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
AdChoices एसेट
AdChoices विज्ञापन एसेट को नेटिव विज्ञापन के हिस्से के तौर पर दिखाना ज़रूरी है. साथ ही, यह ज़रूरी है कि AdChoices विज्ञापन एसेट को आसानी से देखा जा सके, इसलिए बैकग्राउंड के रंग और इमेज को सही तरीके से चुनें.
विज्ञापन एसेट के लिए GameObjects को रजिस्टर करें
विज्ञापन यूनिट को अपने यूनिट ऐप्लिकेशन में दिखाने के लिए, आपको GameObject
रजिस्टर करना होगा. अगर रजिस्ट्रेशन हो जाता है, तो GameObject
को रजिस्टर करने के लिए इस्तेमाल किया गया तरीका bool
दिखाता है. List<GameObject>
के लिए, यह तरीका
int
दिखाता है. इससे यह पता चलता है कि GameObject
की संख्या रजिस्टर है या नहीं.
अगर किसी विज्ञापन एसेट का रजिस्ट्रेशन नहीं हो पाता है, तो उससे जुड़े नेटिव विज्ञापन के इंप्रेशन और क्लिक नहीं मिलेंगे.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
किसी विज्ञापन एसेट के लिए रजिस्टर किए गए GameObject
में, कोऑर्डिनेट वाला कोलाइडर कॉम्पोनेंट होना चाहिए, जो GameObject
के साइज़ और आकार को दिखाता हो. अगर
GameObject
एसेट के लिए, विज्ञापन एसेट में रजिस्टर किए गए Collider
कॉम्पोनेंट मौजूद नहीं हैं या
गलत तरीके से कॉन्फ़िगर किया गया है, तो नेटिव विज्ञापन ठीक से काम नहीं करेंगे.
नीचे दिए गए कोड स्निपेट में, BoxCollider
को GameObject
में जोड़ा गया है. यह नेटिव विज्ञापन की हेडलाइन के विज्ञापन की एसेट दिखाने के लिए, TextMesh
का इस्तेमाल करता है. जब
BoxCollider
को GameObject
से अटैच कर दिया जाएगा, तब यह TextMesh
कॉम्पोनेंट के टेक्स्ट को अपने-आप स्केल कर देगा.
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
डेमो
इस कोड से पता चलता है कि सही तरीके से लोड किए गए नेटिव विज्ञापन की आइकॉन एसेट को कैसे वापस लाया जा सकता है.
साथ ही, Quad
की बनावट को सेट करके, विज्ञापन एसेट को दिखाने और एसेट को दिखाने के लिए, GameObject
को रजिस्टर करने का तरीका जानें. विज्ञापन एसेट को वापस पाने और उसे नेटिव विज्ञापन क्लास के साथ रजिस्टर करने की प्रोसेस
को हर उस एसेट के लिए दोहराया जाना चाहिए जो ऐप्लिकेशन पर दिखती है.
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}