تنفيذ "AdSense للبحث" في التطبيقات المتوافقة مع الأجهزة الجوّالة (AFSMA) على أجهزة iOS

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

يفترض دليل التنفيذ هذا أنك على دراية بما يلي:

نظرة عامة

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

GADSearchBannerView

  • يتم اكتساب هذه الفئة من فئة UIView على iOS وتعرض إعلانات AdSense for Education. يعمل GADSearchBannerView على طلب الإعلان الذي يتضمّن GADDynamicHeightSearchRequest ويعرض الإعلانات التي تم عرضها. يجب إضافة GADSearchBannerView إلى أيّ من الملفات الشخصية الحالية للتطبيق، وعادةً ما تكون وحدة التحكّم في الملفات الشخصية الرئيسية هي التي تملك طريقة العرض التي تتم إضافة GADSearchBannerView إليها. يجب تحديد المفوَّضين المناسبين على "GADSearchBannerView".
  • يجب إنشاء مثيل GADSearchBannerView باستخدام initWithAdSize:kGADAdSizeFluid لطلب إعلانات AFSMA. يتم إنشاء مثيل GADSearchBannerView باستخدام initWithAdSize:kGADAdSizeBanner في طلبات إعلانات AFSMA القديمة.
  • يجب ضبط السمة adUnitID في هذا العنصر على رمز الموقع.

GADDynamicHeightSearchRequest

  • ويضم هذا العنصر معلَمات طلبات الإعلان. ويشبه هذا إعداد المعلمات في كائنات طلبات إعلانات JavaScript (خيارات الصفحة، خيارات الوحدة) في "AdSense للبحث" لأجهزة الكمبيوتر المكتبي والويب على الأجهزة الجوّالة.

(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size

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

مثال على عملية التنفيذ

يوضح المثال أدناه استخدام GBannerViewController لإنشاء GADSearchBannerView كعرض فرعي لـ UIScrollView. لطلب إعلانات AFSMA بشكل صحيح، يجب إنشاء مثيل للكائن GADSearchBannerView باستخدام initWithAdSize:kGADAdSizeFluid.

// GBannerViewController.m implementation

@interface GBannerViewController () <GADAdSizeDelegate,
                                     GADBannerViewDelegate>

@property(nonatomic, strong) GADSearchBannerView *searchBannerView;

@property(nonatomic, strong) UIScrollView *scrollView;

@end

@implementation GBannerViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  // Create the scroll view.
  ....
  ....

  // Create the banner.
  self.searchBannerView = [[GADSearchBannerView alloc] initWithAdSize:kGADAdSizeFluid];

  // Replace with your pub ID (e.g. ms-app-pub-9616389000213823).
  self.searchBannerView.adUnitID = @"ms-app-pub-################";

  // Set the initial location and size of the banner. The initial height
  // is set to 0 since we might not get an ad back.
  self.searchBannerView.frame = CGRectMake(0,
                                           0,
                                           CGRectGetWidth(self.view.bounds),
                                           0);
  self.searchBannerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

  // Set the delegate properties.
  self.searchBannerView.adSizeDelegate = self;
  self.searchBannerView.delegate = self;

  // Add the new search banner into the parent scrollView.
  [self.scrollView addSubview:self.searchBannerView];
  }

ضمن GBannerViewController نفسها، أنشئ GADDynamicHeightSearchRequest تحدّد معلَمات الإعلان الذي سيتم عرضه في GADSearchView.

// Create a search request and load the banner.
GADDynamicHeightSearchRequest *searchRequest = [[GADDynamicHeightSearchRequest alloc] init];

// Ad request options (set using GADDynamicHeightSearchRequest properties).
searchRequest.query = @"flowers";
searchRequest.numberOfAds = 2;

// Replace with the ID of a style from your custom search styles
[searchRequest setAdvancedOptionValue:@"0000000001"
                               forKey:@"styleId"];

يمكن خيارات تخصيص أخرى من خلال ضبط خصائص إضافية على الكائن GADDynamicHeightSearchRequest.

لتقديم طلب إعلان، عليك استدعاء loadRequest باستخدام الكائن GADDynamicHeightSearchRequest من الكائن GADSearchBannerView:

[self.searchBannerView loadRequest:searchRequest];

لكي تستوعب طريقة العرض الرئيسية GADSearchBannerView بشكلٍ سليم بعد عرض الإعلانات، يجب تنفيذ معاودة الاتصال التالية.

// Callback to update the parent view height.
- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size {
  // Update the banner view based on the ad size.
  CGRect newFrame = self.searchBannerView.frame;
  newFrame.size.height = size.size.height;
  self.searchBannerView.frame = newFrame;

  // Perform any additional logic needed due to banner view size change.
  ...
}

الخيارات المتقدمة

يمكن ضبط معظم مَعلمات طلبات الإعلان من خلال سمات في عنصر GADDynamicHeightSearchRequest (searchRequest أعلاه). يجب ضبط المعلمات الأخرى باستخدام أزواج المفتاح/القيمة باستخدام الطريقة setAdvancedOptionValue:

// Advanced customization options (set using key-value pair).

// Set a parameter (parameter_name) and its value (parameter_value).
[searchRequest setAdvancedOptionValue:@"parameter_value"
                               forKey:@"parameter_name"];

// Example: Show visible URL below description (domainLinkAboveDescription: false).
[searchRequest setAdvancedOptionValue:@"false"
                               forKey:@"domainLinkAboveDescription"];

اطّلِع على القائمة الكاملة للمَعلمات المتاحة.

التحقيق في الأخطاء

يحتوي GADBannerViewDelegate على معاودة الاتصال لمساعدتك في التحقيق في الأخطاء:

- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {

  // This callback is triggered when the ad request fails.
  // Add code here to debug the error object to discover causes of failure
  NSLog(@"Ad call failed due to %@", error.userInfo[@"NSUnderlyingError"]);
}

في حال فشل أحد طلبات الإعلانات، يمكنك استخدام معاودة الاتصال هذه للتعامل مع الخطأ بشكلٍ صحيح والتحقيق في الخطأ من خلال كائن الخطأ.