يوضّح لك هذا الدليل كيفية استخدام إضافة الإعلانات المدمجة مع المحتوى لتنفيذ إعلانات AdMob المدمجة في تطبيق Unity، بالإضافة إلى بعض النقاط المهمة التي يجب مراعاتها أثناء التنفيذ.
تتطابق الإعلانات المدمجة مع المحتوى من حيث الشكل والوظيفة مع تجربة المستخدم التي تظهر فيها. وتتوافق أيضًا مع التصميم المرئي للتطبيق الذي تظهر فيه. يسمح شكل الإعلانات المدمجة مع المحتوى في AdMob للناشرِين بعرض إعلانات تندمج بسلاسة مع المحتوى. يمكنك استخدام هذه التكنولوجيا لتنفيذ عروض على قدرٍ كبيرٍ من التخصيص تستفيد بشكلٍ كامل من الرمز البرمجي الأصلي في تطبيقات Unity.
يتم عرض الإعلانات المدمجة مع المحتوى باستخدام أنواع GameObjects
نفسها التي يتم استخدامها لإنشاء تطبيقاتك، ويمكن تنسيقها لتتطابق مع التصميم المرئي لتجربة المستخدم التي تظهر فيها. عند تحميل إعلان مضمّن مع المحتوى، يتلقّى تطبيقك
عنصرًا مضمّنًا مع المحتوى يحتوي على مواد العرض، ويعرضه تطبيق Unity (بدلاً من
حزمة SDK).
المتطلبات الأساسية
- الإصدار 7.0.0 أو إصدار أحدث من مكوّن إعلانات Google على الأجهزة الجوّالة في Unity
- أكمِل دليل البدء.
- نزِّل وثبِّت إضافة الإعلانات المدمجة مع المحتوى.
تحميل أشكال الإعلانات المدمجة مع المحتوى
يتم تحميل الإعلانات المدمجة مع المحتوى من خلال فئة AdLoader
التي تحتوي على فئة
AdLoader.Builder
لتخصيصها أثناء الإنشاء. تعمل الطريقة ForNativeAd()
على ضبط AdLoader لمعالجة الإعلانات المدمجة مع المحتوى.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
التسجيل في أحداث إعلانات AdLoader
لتلقّي إشعار عند تحميل إعلان مدمج مع المحتوى بنجاح أو تعذُّر تحميله، أضِف
المفوّضين إلى فئة AdLoader
للأحداث المُدرَجة أدناه.
OnNativeAdLoaded
يتمّ استدعاؤها عند تحميل إعلان مضمّن بنجاح. يجب توفُّر مثيل مفوَّض لهذا الحدث للوصول إلى الإعلان الذي تم تحميله.
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>
. يمكن استرجاع
ad، المُضمّنة في عنصر 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()
في نص Unity. يُرجى العلم أيضًا أنّه لا يمكن ضمان توفّر مواد العرض التالية في كلّ الأوقات، ويجب التحقّق منها قبل عرضها:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
مادة عرض خيارات الإعلان
يجب عرض مادة عرض الإعلانات في ميزة "خيارات الإعلان" كجزء من الإعلان المدمج مع المحتوى. من المهم أيضًا أن يتمكّن المستخدم من رؤية مادة عرض الإعلانات في ميزة "خيارات الإعلان" بسهولة، لذا يجب اختيار ألوان الخلفية والصور بشكل مناسب.
تسجيل GameObjects لمادة عرض الإعلان
يجب تسجيل GameObject
لعرض مادة عرض الإعلان في
تطبيق Unity. وفي حال اكتمال عملية التسجيل، تُعرِض الطريقة المستخدَمة لتسجيل
GameObject
bool
. بالنسبة إلى List<GameObject>
، تُعرِض الطريقة int
يشير إلى عدد GameObject
المسجَّلة بنجاح.
إذا تعذّر تسجيل مادة عرض إعلان، لن يتمّ التعرّف على مرّات الظهور والنقرات على الإعلان المدمَج المقابل.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
يجب أن يتضمّن GameObject
المسجَّل لمادة عرض إعلان عنصر Collider
محدب يمثّل حجم 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
لاستخدامه في عرض مادة العرض. يجب تكرار عملية retrieving retrieving ad asset and registering it with the native ad class
لكل مادة عرض يعرضها التطبيق.
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;
}