إعلانات البانر

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

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

إعلان بانر تكيُّفي ثابت

إعلانات البانر التكيُّفية الثابتة هي إعلانات بنسبة عرض إلى ارتفاع ثابتة وليست إعلانات عادية إعلانات ذات حجم ثابت. نسبة العرض إلى الارتفاع مماثلة للمعيار المتّبع في المجال 320*50. مرة واحدة تحدّد العرض الكامل المتاح، فسيعرض لك إعلانًا بالخيار الأمثل الارتفاع لهذا العرض. لا يتغير الارتفاع الأمثل بين الطلبات الواردة من الجهاز نفسه، ولا يلزم تحرك المشاهد المحيطة عندما تحديث.

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

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

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

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

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

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

إنشاء GADBannerView

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

آليًا

ويمكن أيضًا إنشاء مثيل GADBannerView مباشرةً. إليك مثال على كيفية إنشاء GADBannerView مع محاذاته مع الجزء السفلي الأوسط من المنطقة الآمنة على الشاشة:

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    
    let viewWidth = view.frame.inset(by: view.safeAreaInsets).width

    // Here the current interface orientation is used. Use
    // GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth or
    // GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth if you prefer to load an ad of a
    // particular orientation,
    let adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)
    bannerView = GADBannerView(adSize: adaptiveSize)

    addBannerViewToView(bannerView)
  }

  func addBannerViewToView(_ bannerView: GADBannerView) {
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bannerView)
    view.addConstraints(
      [NSLayoutConstraint(item: bannerView,
                          attribute: .bottom,
                          relatedBy: .equal,
                          toItem: view.safeAreaLayoutGuide,
                          attribute: .bottom,
                          multiplier: 1,
                          constant: 0),
       NSLayoutConstraint(item: bannerView,
                          attribute: .centerX,
                          relatedBy: .equal,
                          toItem: view,
                          attribute: .centerX,
                          multiplier: 1,
                          constant: 0)
      ])
   }
   
}

Objective-C

@import GoogleMobileAds;

@interface ViewController ()

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  
  // Here safe area is taken into account, hence the view frame is used after the
  // view has been laid out.
  CGRect frame = UIEdgeInsetsInsetRect(self.view.frame, self.view.safeAreaInsets);
  CGFloat viewWidth = frame.size.width;

  // Here the current interface orientation is used. If the ad is being preloaded
  // for a future orientation change or different orientation, the function for the
  // relevant orientation should be used.
  GADAdSize adaptiveSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);
  // In this case, we instantiate the banner with desired ad size.
  self.bannerView = [[GADBannerView alloc] initWithAdSize:adaptiveSize];

  [self addBannerViewToView:self.bannerView];
}

- (void)addBannerViewToView:(UIView *)bannerView {
  bannerView.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview:bannerView];
  [self.view addConstraints:@[
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeBottom
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view.safeAreaLayoutGuide
                               attribute:NSLayoutAttributeBottom
                              multiplier:1
                                constant:0],
    [NSLayoutConstraint constraintWithItem:bannerView
                               attribute:NSLayoutAttributeCenterX
                               relatedBy:NSLayoutRelationEqual
                                  toItem:self.view
                               attribute:NSLayoutAttributeCenterX
                              multiplier:1
                                constant:0]
                                ]];
}
  
@end

لاحظ أننا في هذه الحالة لا نضع قيودًا على العرض أو الارتفاع، حيث إن وفقًا لحجم الإعلان، سيُمنح البانر حجم محتوى أساسيًا لتحديد حجم مشاهدة.

أداة إنشاء الواجهات

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

لا يزال حجم إعلان البانر يتم ضبطه آليًا:

Swift

  bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth)

Objective-C

  self.bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);

تحميل إعلان

بعد وضع GADBannerView وخصائصها. مهيأ، يحين وقت تحميل إعلان. ويتم ذلك من خلال الاتصال بـ loadRequest: على GADRequest الكائن:

Swift

override func viewDidLoad() {
  super.viewDidLoad()
  ...
  
  //  Set the ad unit ID and view controller that contains the GADBannerView.
  bannerView.adUnitID = "ca-app-pub-3940256099942544/2435281174"
  bannerView.rootViewController = self

  bannerView.load(GADRequest())
}

Objective-C

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  
  //  Set the ad unit ID and view controller that contains the GADBannerView.
  self.bannerView.adUnitID = @"ca-app-pub-3940256099942544/2435281174";
  self.bannerView.rootViewController = self;

  [self.bannerView loadRequest:[GADRequest request]];
}

تمثل كائنات GADRequest طلب إعلان واحدًا، سيحتوي على خصائص لأشياء مثل معلومات الاستهداف.

وإذا تعذّر تحميل إعلانك، لن تكون بحاجة إلى طلب إعلان آخر صراحةً طالما ضبطت الوحدة الإعلانية على إعادة التحميل حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" تحترم أي معدل إعادة تحميل حدّدته في حساب واجهة مستخدم في حال عدم تفعيل عملية إعادة التحميل، عليك إصدار طلب جديد.

أحداث الإعلانات

وتتيح لكم "GADBannerViewDelegate" الاطّلاع على الأحداث في مراحل مختلفة من النشاط، مثلاً، عندما يتم إغلاق إعلان أو عندما يغادر المستخدم التطبيق

التسجيل في أحداث إعلانات البانر

للتسجيل في أحداث إعلانات البانر، اضبط السمة delegate على GADBannerView إلى كائن ينفّذ بروتوكول GADBannerViewDelegate. بشكل عام، الفئة التي تنفّذ إعلانات البانر تؤدي الإعلانات أيضًا صفة المفوَّض، وفي هذه الحالة، يمكن للسمة delegate على self.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADBannerViewDelegate {

  var bannerView: GADBannerView!

  override func viewDidLoad() {
    super.viewDidLoad()
    ...
    bannerView.delegate = self
  }
}

Objective-C

@import GoogleMobileAds;

@interface ViewController () <GADBannerViewDelegate>

@property(nonatomic, strong) GADBannerView *bannerView;

@end

@implementation ViewController

-   (void)viewDidLoad {
  [super viewDidLoad];
  ...
  self.bannerView.delegate = self;
}

تنفيذ أحداث البانر

يتم تصنيف كل طريقة من الطرق في GADBannerViewDelegate على أنّها اختيارية، وبالتالي يمكنك فقط إلى تنفيذ الطرق التي تريدها. ينفذ هذا المثال كل طريقة وتسجّل رسالة إلى وحدة التحكم:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  print("bannerViewDidReceiveAd")
}

func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) {
  print("bannerView:didFailToReceiveAdWithError: \(error.localizedDescription)")
}

func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
  print("bannerViewDidRecordImpression")
}

func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillPresentScreen")
}

func bannerViewWillDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewWillDIsmissScreen")
}

func bannerViewDidDismissScreen(_ bannerView: GADBannerView) {
  print("bannerViewDidDismissScreen")
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidReceiveAd");
}

-   (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error {
  NSLog(@"bannerView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}

-   (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidRecordImpression");
}

-   (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillPresentScreen");
}

-   (void)bannerViewWillDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillDismissScreen");
}

-   (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidDismissScreen");
}

الاطّلاع على مثال "مفوَّض الإعلانات" لمعرفة كيفية تنفيذ طرق تفويض إعلانات البانر في التطبيق التجريبي لواجهة برمجة تطبيقات iOS.

سريع الهدف-ج

حالات الاستخدام

في ما يلي بعض الأمثلة على حالات الاستخدام لطرق أحداث الإعلانات هذه.

إضافة بانر إلى العرض الهرمي للعرض بعد تلقّي إعلان

يمكنك تأخير إضافة GADBannerView إلى التسلسل الهرمي للعرض إلى أن يتم عرض الإعلان يمكنك إجراء ذلك من خلال الاستماع إلى لحدث bannerViewDidReceiveAd::

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  // Add banner to view and add constraints as above.
  addBannerViewToView(bannerView)
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  // Add bannerView to view and add constraints as above.
  [self addBannerViewToView:self.bannerView];
}

تحريك إعلان بانر

يمكنك أيضًا استخدام حدث "bannerViewDidReceiveAd:" لتحريك إعلان بانر مرة واحدة. ثم إرجاعه، كما هو موضح في المثال التالي:

Swift

func bannerViewDidReceiveAd(_ bannerView: GADBannerView) {
  bannerView.alpha = 0
  UIView.animate(withDuration: 1, animations: {
    bannerView.alpha = 1
  })
}

Objective-C

-   (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  bannerView.alpha = 0;
  [UIView animateWithDuration:1.0 animations:^{
    bannerView.alpha = 1;
  }];
}

إيقاف التطبيق مؤقتًا واستئنافه

يتضمن بروتوكول GADBannerViewDelegate طُرقًا لإشعارك بالأحداث، مثل: مثلاً عندما تؤدي نقرة إلى عرض تراكب أو رفضه. إذا كنت ترغب في تتبُّع ما إذا كانت هذه الأحداث ناتجة عن إعلانات، والتسجيل GADBannerViewDelegate طريقة

لتسجيل جميع أنواع العروض التقديمية المركّبة أو استدعاءات المتصفح الخارجية، لا فقط تلك التي تأتي من النقرات على الإعلانات، يكون من الأفضل لتطبيقك أن يستمع طرق مماثلة في UIViewController أو UIApplication. إليك جدول طرق iOS المكافئة التي يتم استدعاؤها في الوقت نفسه طريقتان (GADBannerViewDelegate):

طريقة GADBannerViewDelegate طريقة iOS
bannerViewWillPresentScreen: viewWillDisappear: من UIViewController
bannerViewWillDismissScreen: viewWillAppear: من UIViewController
bannerViewDidDismissScreen: viewDidAppear: من UIViewController

مراجع إضافية

أمثلة على GitHub

  • مثال على إعلانات البانر التكيُّفية الثابتة: Swift | الهدف-ج

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

إعلانات البانر القابلة للتصغير

إعلانات البانر القابلة للتصغير هي إعلانات بانر يتم عرضها في البداية كإعلانات بحجم أكبر مع زر لتصغير الإعلان إلى حجم أصغر. ننصحك باستخدامه لتحسين أدائك بشكلٍ أكبر اطّلِع على إعلانات البانر القابلة للتصغير للحصول على مزيد من التفاصيل.

إعلانات البانر التكيُّفية المضمّنة

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

الاطّلاع على مواضيع أخرى