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