إضافة الإعلانات الخلالية إلى تطبيق iOS

تتيح لك Audience Network إمكانية تحقيق أرباح من تطبيقات iOS من خلال إعلانات فيسبوك. ويُعد الإعلان الخلالي إعلانًا بملء الشاشة يمكنك عرضه في تطبيقك. اتبع هذا الدليل لعرض هذا النوع من الوحدات الإعلانية. وإذا كنت مهتمًا بالأنواع الأخرى للوحدات الإعلانية، فاطلع على قائمة الأنواع المتوفرة.

لننفذ موضع الإعلان الخلالي التالي.



الخطوة الأولى: تحميل معاينة الإعلان الخلالي وعرضها

الخطوة الثانية: التحقق من صحة تسجيل مرات الظهور والنقرات

الخطوة الخامسة: كيفية تصحيح الأخطاء في حالة عدم عرض الإعلان

الخطوة السابعة: اختبار دمج الإعلانات

الخطوة الأولى: تحميل معاينة الإعلان الخلالي وعرضها

احرص على قراءة دليل بدء استخدام Audience Network ودليل بدء استخدام iOS حتى يمكنك المتابعة.

  1. بعد إنشاء مشروع جديد من دليل بدء الاستخدام على نظام iOS، قم باستيراد FBAudienceNetwork، وأعلن أن ViewController ينفذ بروتوكول FBInterstitialAdDelegate، وأضف متغير مثيل لوحدة الإعلان الخلالي
    import UIKit
    import FBAudienceNetwork
    
    class ViewController: UIViewController, FBInterstitialAdDelegate {
      private var interstitialAd: FBInterstitialAd?
    }
    #import <UIKit/UIKit.h>
    @import FBAudienceNetwork;
    
    @interface ViewController : UIViewController <FBInterstitialAdDelegate>
    @property (nonatomic, strong) FBInterstitialAd *interstitialAd;
    @end

  2. بعد ذلك، قم بتثبيت كائن الإعلان في طريقة التحكم في العرض viewDidLoad وتنفيذ interstitialAdDidLoad
    override func viewDidLoad() {
      super.viewDidLoad()
    
      // Instantiate an InterstitialAd object.
      // NOTE: the placement ID will eventually identify this as your app. You can ignore it while you are testing
      // and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
      let interstitialAd = FBInterstitialAd(placementID: "YOUR_PLACEMENT_ID")
      interstitialAd.delegate = self
    
      // For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
      interstitialAd.load()
      
      self.interstitialAd = interstitialAd
    }
    
    func interstitialAdDidLoad(_ interstitialAd: FBInterstitialAd) {
      guard interstitialAd.isAdValid else {
        return
      }
      print("Ad is loaded and ready to be displayed")
      interstitialAd.show(fromRootViewController: self)
    }
    - (void)viewDidLoad 
    {
      [super viewDidLoad];
    
      // Instantiate an InterstitialAd object. 
      // NOTE: the placement ID will eventually identify this as your app. You can ignore it while you are testing 
      // and replace it later when you have signed up.
      // While you are using this temporary code you will only get test ads and if you release
      // your code like this to the App Store your users will not receive ads (you will get a 'No Fill' error).
      self.interstitialAd = [[FBInterstitialAd alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID"];
    
      self.interstitialAd.delegate = self;
    
      // For auto play video ads, it's recommended to load the ad at least 30 seconds before it is shown
      [self.interstitialAd loadAd];
    }
    
    - (void)interstitialAdDidLoad:(FBInterstitialAd *)interstitialAd
    {
      NSLog(@"Ad is loaded and ready to be displayed");
    
      if (interstitialAd && interstitialAd.isAdValid) {
        // You can now display the full screen ad using this code:
        [interstitialAd showAdFromRootViewController:self];
      }
    }

  3. المعرف الذي يظهر في YOUR_PLACEMENT_ID هو معرف مؤقت لأغراض الاختبار فقط.

    إذا كنت تستخدم هذا المعرف المؤقت في رمز مباشر، فلن يتلقى المستخدمون إعلانات (ستصلهم رسالة خطأ بلا محتوى). يجب العودة هنا بعد الاختبار واستبدال هذا المعرف المؤقت بمعرف موضع مباشر.

    لمعرفة كيفية إنشاء معرف موضع مباشر، ارجع إلى إعداد شبكة الجمهور

    بعد اختيار الجهاز كهدف للإنشاء وتشغيل الرمز أعلاه، يجب أن يظهر لك إعلان كما يلي:

عند تشغيل الإعلانات في المحاكي، يجب تغيير الإعداد إلى وضع الاختبار لعرض إعلانات اختبارية. لمزيد من المعلومات، يرجى الرجوع إلى كيفية استخدام وضع الاختبار.

لا تحاول استدعاء loadAd في FBInterstitialAd أثناء عرض الإعلان على الشاشة. إذا كنت بحاجة إلى تحميل FBInterstitialAd آخر للاستخدام المستقبلي، فيمكنك القيام بذلك بعد إغلاق المستخدم للإعلان الحالي، على سبيل المثال في استدعاء interstitialAdDidClose.

الخطوة الثانية: التحقق من صحة تسجيل مرات الظهور والنقرات

اختياريًا، يمكنك إضافة الوظائف التالية للتعامل مع الحالات التي يتم فيها عرض الإعلان أو النقر عليه أو إغلاقه من قبل المستخدمين

func interstitialAdWillLogImpression(_ interstitialAd: FBInterstitialAd) {
  print("The user sees the ad")
  // Use this function as indication for a user's impression on the ad.
}

func interstitialAdDidClick(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the ad and will be taken to its destination")
  // Use this function as indication for a user's click on the ad.
}

func interstitialAdWillClose(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the close button, the ad is just about to close")
  // Consider to add code here to resume your app's flow
}

func interstitialAdDidClose(_ interstitialAd: FBInterstitialAd) {
  print("The user clicked on the close button, the ad is just about to close")
  // Consider to add code here to resume your app's flow
}
- (void)interstitialAdWillLogImpression:(FBInterstitialAd *)interstitialAd 
{
  NSLog(@"The user sees the ad");
  // Use this function as indication for a user's impression on the ad.
}

- (void)interstitialAdDidClick:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"The user clicked on the ad and will be taken to its destination");
  // Use this function as indication for a user's click on the ad.
}

- (void)interstitialAdWillClose:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"The user clicked on the close button, the ad is just about to close");
  // Consider to add code here to resume your app's flow
}

- (void)interstitialAdDidClose:(FBInterstitialAd *)interstitialAd
{
  NSLog(@"Interstitial had been closed");
  // Consider to add code here to resume your app's flow
}

الخطوة الثالثة: تصحيح الأخطاء عندما لا يتم عرض الإعلان

قم بإضافة الوظيفة التالية وتنفيذها في ملف تنفيذ وحدة التحكم في العرض لمعالجة حالات فشل تحميل الإعلانات

func interstitialAd(_ interstitialAd: FBInterstitialAd, didFailWithError error: Error) {
  print("Interstitial ad failed to load with error: \(error.localizedDescription)")
}
- (void)interstitialAd:(FBInterstitialAd *)interstitialAd didFailWithError:(NSError *)error
{
  NSLog(@"Interstitial ad failed to load with error: %@", error);
}

عندما لا يوجد أي إعلان للعرض، سيتم استدعاء interstitialAd:didFailWithError: مع تعيين error.code على 1001. إذا كنت تستخدم تقارير مخصصة أو طبقة خدمة وسيطة خاصة بك، فقد يلزمك التحقق من قيمة الرمز واكتشاف هذه الحالة. في هذه الحالة، يمكنك الرجوع إلى شبكة إعلانية أخرى ولكن لا ترسل طلبًا مرة أخرى بشأن الإعلان على الفور بعد ذلك.

الخطوات التالية

  • تعرف على نماذج الرموز البرمجية التي توضح كيفية استخدام الإعلانات الأصلية. يتوفر NativeAdSample كجزء من مجموعة SDK ويمكن العثور عليه داخل المجلد FBAudienceNetwork/samples. قم باستيراد المشروع إلى Xcode وقم بتشغيله على جهاز أو على المحاكي.