الإعلانات البينية

الإعلانات البينية هي إعلانات بملء الشاشة تغطي واجهة أحد التطبيقات حتى تم إغلاقه من قبل المستخدم. ويتم عرضها عادةً عند نقاط انتقال عادية في تدفق التطبيق، مثل بين الأنشطة أو أثناء التوقف المؤقت بين المستويات في لعبة ما. عندما يعرض التطبيق إعلانًا بينيًا، يحصل المستخدم على حرية الاختيار. النقر على الإعلان والانتقال إلى وجهته أو إغلاقه والعودة بالتطبيق. دراسة الحالة:

يوضح لك هذا الدليل كيفية دمج الإعلانات البينية في تطبيق iOS.

المتطلبات الأساسية

  • الإصدار 8.0.0 أو إصدار أحدث من حزمة "SDK لإعلانات Google على الأجهزة الجوّالة".
  • أكمِل دليل البدء.

الاختبار دائمًا باستخدام الإعلانات الاختبارية

عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات تجريبية بدلاً من إعلانات بث مباشر وقد يؤدي عدم الالتزام بذلك إلى تعليق حسابك.

أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام رقم تعريف الوحدة الإعلانية الاختبارية المخصص للإعلانات البينية على نظام التشغيل iOS:
ca-app-pub-3940256099942544/4411468910

لقد تم إعدادها خصيصًا لعرض إعلانات اختبارية لكل طلب، يمكنك استخدامها مجانًا في تطبيقاتك الخاصة أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى إجراء واحرص على استبداله بمعرّف وحدتك الإعلانية قبل نشر تطبيقك.

لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية لحزمة تطوير البرامج (SDK) لعرض الإعلانات للأجهزة الجوّالة، يُرجى الاطّلاع على اختبار الإعلانات:

التنفيذ

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

  1. حمِّل إعلانًا.
  2. التسجيل لتلقّي طلبات معاودة الاتصال
  3. يمكنك عرض الإعلان والتعامل مع حدث المكافأة.

تحميل إعلان

يتم الانتهاء من تحميل إعلان باستخدام الثابت طريقة "loadWithAdUnitID:request:completionHandler:" على صف واحد (GADInterstitialAd). تتطلب طريقة التحميل رقم تعريف وحدتك الإعلانية وعنصر GADRequest معالج الإكمال الذي يتم طلبه عند نجاح تحميل الإعلان أو تعذُّر تحميله. تشير رسالة الأشكال البيانية يتم توفير كائن GADInterstitialAd الذي تم تحميله على أنّه في معالِج الإكمال. يوضح المثال أدناه كيفية تحميل GADInterstitialAd في صفك الدراسي ViewController

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GADInterstitialAd.load(
        withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
      request:request
      completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
  }];
}

التسجيل لتلقّي طلبات معاودة الاتصال

لتلقي إشعارات لأحداث العرض التقديمي، يجب تنفيذ بروتوكول GADFullScreenContentDelegate وتعيينه إلى السمة fullScreenContentDelegate للإعلان الذي تم عرضه. تشير رسالة الأشكال البيانية يتعامل بروتوكول GADFullScreenContentDelegate مع عمليات معاودة الاتصال عند ظهور الإعلان نجاحه أو عدم نجاحه وعندما يتم رفضه. ما يلي: طريقة تنفيذ البروتوكول وتعيينه للإعلان:

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GADInterstitialAd.load(
        withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
      interstitial?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController () <GADFullScreenContentDelegate>

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
      request:request
      completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
      return;
    }
    self.interstitial = ad;
    self.interstitial.fullScreenContentDelegate = self;
  }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
    NSLog(@"Ad will present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
  NSLog(@"Ad did dismiss full screen content.");
}

GADInterstitialAd هو عنصر يُستخدم لمرة واحدة. هذا النمط يعني أنه بعد عرض إعلان بيني، لا يمكن عرضه مرة أخرى. الأفضل التدريب هي تحميل إعلان بيني آخر في طريقة adDidDismissFullScreenContent: على GADFullScreenContentDelegate، لذا بدء تحميل الإعلان البيني التالي فور الانتهاء من تحميل الإعلان السابق رفضت.

عرض الإعلان

يجب عرض الإعلانات البينية أثناء فترات التوقف المؤقت الطبيعية أثناء تدفق التطبيق. يعد الربط بين مستويات اللعبة مثالاً جيدًا، أو بعد إكمال المستخدم لمهمة ما. في ما يلي مثال على كيفية إجراء ذلك بإحدى طرق الإجراءات في UIViewController:

Swift

guard let interstitial = interstitial else {
  return print("Ad wasn't ready.")
}

// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)

Objective-C

if (self.interstitial) {
  // The UIViewController parameter is nullable.
  [self.interstitial presentFromRootViewController:nil];
} else {
  NSLog(@"Ad wasn't ready");
}

أفضل الممارسات

فكِّر في ما إذا كانت الإعلانات البينية هي نوع الإعلانات المناسب لتطبيقك.
تعمل الإعلانات البينية بشكل أفضل في التطبيقات التي تتضمّن نقاط انتقال طبيعية. خاتمة مهمة داخل تطبيق ما، مثل مشاركة صورة أو إكمال مستوى اللعبة، ينشئ مثل هذه النقطة. ولأن المستخدم يتوقع استراحة في إجراء، سيكون من السهل تقديم إعلان بيني دون التأثير سلبًا على المستخدم. تأكّد من مراعاة النقاط التي ستتطلّبها من سير عمل تطبيقك عرض الإعلانات البينية وكيفية استجابة المستخدم المحتمَلة.
احرص على إيقاف الإجراء مؤقتًا عند عرض إعلان بيني.
هناك عدد من الأنواع المختلفة للإعلانات البينية: النصية والمصوّرة والفيديو وغير ذلك. من المهم التأكد من أنه عند عرض تطبيقك إعلان بيني، فإنه يعلق أيضًا استخدامه لبعض الموارد للسماح للإعلان الاستفادة منها. على سبيل المثال، عند إجراء مكالمة لعرض إعلان بيني، احرص على إيقاف أي إخراج صوتي ينتجه تطبيقك مؤقتًا. يمكنك استئناف تشغيل الأصوات من خلال adDidDismissFullScreenContent: معالج الحدث، الذي سيتم استدعاؤه عند انتهاء المستخدم من التفاعل مع الإعلان. بالإضافة إلى ذلك، فكِّر في إيقاف أي عمليات حسابية مكثفة مؤقتًا المهام (مثل حلقة الألعاب) أثناء عرض الإعلان. سيضمن ذلك بحيث لا يواجه المستخدم رسومات بطيئة أو غير مستجيبة أو متعثر الفيديو
.
يجب السماح بمرور الوقت الكافي للتحميل.
كما هو من المهم التأكد من عرض الإعلانات البينية في الوقت المناسب، فمن المهم أيضًا التأكد من أن المستخدم لا يضطر إلى الانتظار حتى يتم تحميلها. تحميل الإعلان مسبقًا قبل أن تنوي عرضه التأكد من احتواء تطبيقك على إعلان بيني تم تحميله بالكامل، حان الوقت لعرض واحد.
لا تملأ المستخدم بالإعلانات.
على الرغم من أن زيادة تكرار الإعلانات البينية في تطبيقك قد تبدو طريقة رائعة لزيادة الإيرادات، فقد يؤدي أيضًا إلى انخفاض مستوى تجربة المستخدم ونسب نقر إلى ظهور منخفضة تأكد من أن المستخدمين ليسوا كثيرًا الأشخاص الذين لم يعد بإمكانهم الاستمتاع باستخدام تطبيقك.
لا تستخدم استدعاء إكمال التحميل لعرض الإعلان البيني.
قد يترك ذلك انطباعًا سيئًا لدى المستخدم. يمكنك بدلاً من ذلك تحميل الإعلان مسبقًا قبل التي تحتاج إليها لعرضها. بعد ذلك، راجِع طريقة canPresentFromRootViewController:error:. على GADInterstitialAd لمعرفة ما إذا كانت جاهزة كما هو موضح.

مراجع إضافية

أمثلة على GitHub

فيديوهات تعليمية حول "منصة Google للتسويق"

قصص النجاح

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