يوضّح لك هذا الدليل كيفية استخدام إضافة "الإعلانات المدمجة مع المحتوى" لتنفيذ "الإعلانات المدمجة مع المحتوى" في تطبيق Unity، بالإضافة إلى بعض النقاط المهمة التي يجب مراعاتها أثناء ذلك.
تتوافق "الإعلانات المدمجة مع المحتوى" مع تجربة المستخدم في الموضع الذي تظهر فيه من حيث الشكل والوظيفة. وتتوافق أيضًا مع التصميم المرئي للتطبيق الذي تظهر فيه. يسمح شكل "الإعلانات المدمجة مع المحتوى" في "إدارة إعلانات Google" للناشرين بعرض إعلانات تندمج بسلاسة مع المحتوى. ويمكنك استخدام هذه التكنولوجيا لعرض إعلانات مخصّصة بشكل كبير تستفيد إلى أقصى حد من الرموز البرمجية الأصلية في تطبيقات Unity.
يتم عرض "الإعلانات المدمجة مع المحتوى" باستخدام الأنواع نفسها من GameObjects التي تستخدمها حاليًا لإنشاء تطبيقاتك، ويمكن تنسيقها لتتطابق مع التصميم المرئي لتجربة المستخدم التي تظهر فيها. عند تحميل "إعلان مدمج مع المحتوى"، يتلقّى تطبيقك عنصرًا مدمجًا مع المحتوى يتضمّن مواد العرض الخاصة به، ويعرضها تطبيق Unity بدلاً من حزمة SDK.
المتطلبات الأساسية
- الإصدار 7.0.0 أو إصدار أحدث من المكوّن الإضافي Unity لـ "SDK لإعلانات Google على الأجهزة الجوّالة"
- أكمِل دليل البدء.
- نزِّل الإضافة الخاصة بـ "الإعلانات المدمجة مع المحتوى" وثبِّتها.
تحميل أشكال "الإعلانات المدمجة مع المحتوى"
يتم تحميل "الإعلانات المدمجة مع المحتوى" من خلال الفئة 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>. يمكن استرداد الإعلان، المغلَّف في عنصر 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 لاستخدامه في عرض مادة العرض. يجب تكرار عملية استرداد مادة عرض الإعلان وتسجيلها في فئة الإعلان المدمج مع المحتوى لكل مادة عرض يعرضها التطبيق.
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;
}