تتيح لك Audience Network إمكانية تحقيق أرباح من تطبيقاتك على أنظمة Android وiOS من خلال إعلانات فيسبوك. الإعلانات الخلالية هي تجربة إعلان بوضع ملء الشاشة يمكن استخدامها عند نقاط الانتقال في دفق التطبيق، على سبيل المثال بين الأنشطة أو أثناء الإيقاف المؤقت بين المستويات داخل لعبة. يمكن أن يكون محتوى التصميم عبارة عن صور أو مقاطع فيديو أو إعلانات دوّارة. يوضح هذا الدليل كيفية إضافة الإعلانات الخلالية إلى تطبيقك.
احرص على قراءة دلائل بدء استخدام Audience Network وبدء استخدام تطبيق Unity قبل المتابعة.
تتمثل الخطوة الأولى لعرض إعلان خلالي في إنشاء كائن InterstitialAd
في برنامج C# النصي المرفق في GameObject
.
... using AudienceNetwork; ... public class InterstitialAdTest : MonoBehaviour { ... private InterstitialAd interstitialAd; private bool isLoaded; ... public void LoadInterstitial() { this.interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID"); this.interstitialAd.Register(this.gameObject); // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); // Initiate the request to load the ad. this.interstitialAd.LoadAd(); } ... }
تتضمن جهة إنشاء InterstitialAd
المعلمات التالية:
placementId
- معرف موضع Audience Network لوحدة الإعلان الخلالي هذه.بعد ذلك، يمكنك تنفيذ بضعة استدعاءات للاشتراك في أحداث دورة الحياة الخاصة بالإعلان. يمكنك تتبع هذه الأحداث من خلال تسجيل تفويض للحدث كما هو موضح في المثال أدناه:
... // Set delegates to get notified on changes or when the user interacts with the ad. this.interstitialAd.InterstitialAdDidLoad = (delegate() { Debug.Log("Interstitial ad loaded."); this.isLoaded = true; }); interstitialAd.InterstitialAdDidFailWithError = (delegate(string error) { Debug.Log("Interstitial ad failed to load with error: " + error); }); interstitialAd.InterstitialAdWillLogImpression = (delegate() { Debug.Log("Interstitial ad logged impression."); }); interstitialAd.InterstitialAdDidClick = (delegate() { Debug.Log("Interstitial ad clicked."); }); this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); ...
لا يتعلق ذلك سوى بنظام Android.
لا تدعم ألعاب Unity الحالية الخاصة بنظام Android سوى Activity
الرئيسي في Unity للحصول على launchMode
من singleTask
. اعرض مستند Unity لملف بيانات Android ومستند Android للنشاط.
نظرًا لأننا نستخدم Activity
لعرض إعلانات Interstitial
وRewarded Video
، قد يكون نشاط الإعلان تالفًا دون إغلاقه بشكل صحيح عندما يستعين المستخدم بأحد التطبيقات كخلفية، ثم يعيد تشغيله باستخدام الأيقونة وليس من مبدل التطبيقات. يمكنك استخدام الاستدعاءات التالية، والتحقق مما إذا أغلق المستخدم الإعلان أم لا:
بالنسبة للإعلانات الخلالية:
this.interstitialAd.interstitialAdDidClose = (delegate() { Debug.Log("Interstitial ad did close."); this.didClose = true; if (this.interstitialAd != null) { this.interstitialAd.Dispose(); } }); #if UNITY_ANDROID /* *لا يتعلق سوى بنظام Android. * لن يتم تشغيل هذا الاستدعاء إلا في حالة تلف نشاط الإعلان الخلالي * دون إغلاقه بشكل صحيح. لا يحدث ذلك إلا في حالة * استخدام تطبيق يتضمن launchMode:singleTask (مثل لعبة تطبيق Unity) * كخلفية، ثم إعادة تشغيله من خلال النقر على الأيقونة. */ this.interstitialAd.interstitialAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Interstitial activity destroyed without being closed first."); Debug.Log("Game should resume."); } }); #endif
بالنسبة لإعلانات الفيديو بمكافأة:
this.rewardedVideoAd.rewardedVideoAdDidClose = (delegate() { Debug.Log("Rewarded video ad did close."); this.didClose = true; if (this.rewardedVideoAd != null) { this.rewardedVideoAd.Dispose(); } }); #if UNITY_ANDROID /* *لا يتعلق سوى بنظام Android. * لن يتم تشغيل هذا الاستدعاء إلا في حالة تلف نشاط الفيديو بمكافأة * دون إغلاقه بشكل صحيح. لا يحدث ذلك إلا في حالة * استخدام تطبيق يتضمن launchMode:singleTask (مثل لعبة تطبيق Unity) * كخلفية، ثم إعادة تشغيله من خلال النقر على الأيقونة. */ this.rewardedVideoAd.rewardedVideoAdActivityDestroyed = (delegate() { if (!this.didClose) { Debug.Log("Rewarded video activity destroyed without being closed first."); Debug.Log("Game should resume. User should not get a reward."); } }); #endif
بمجرد إنشاء مثيل لـ InterstitialAd
، تكون الخطوة التالية هي تحميل إعلان. ويتم إجراء ذلك من خلال الأسلوب loadAd() في الفئة InterstitialAd
.
في المثال الموضح أعلاه، إليك كيفية تحميل الإعلان:
... this.interstitialAd.LoadAd(); ...
وأخيرًا، بعد تحميل الإعلان الخلالي، يمكنك استدعاء الأسلوب Show
لعرض الإعلان الخلالي على الشاشة. على سبيل المثال، يمكنك توفير وظيفة ShowInterstitial
، واستدعاء هذه الوظيفة عندما يأتي وقت عرض الإعلان الخلالي:
// Show button public void ShowInterstitial() { if (this.isLoaded) { this.interstitialAd.Show(); this.isLoaded = false; } else { Debug.Log("Interstitial Ad not loaded!"); } }
اتبع الدلائل التي نوفرها لدمج مختلف تنسيقات الإعلانات في تطبيق Unity لديك:
بمجرد أن تكون مستعدًا لعرض البث المباشر باستخدام تطبيقك وتحقيق الأرباح، يجب تقديم تطبيقك للمراجعة بعد التأكد من التزامه بسياسات Audience Network ومعايير مجتمع فيسبوك.