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

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

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

نظرة عامة

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

GADSearchBannerView

  • تكتسب هذه الفئة من فئة UIView في iOS وتعرض إعلانات AFSMA. تشير رسالة الأشكال البيانية يطلب GADSearchBannerView عرض إعلان يحتوي على GADDynamicHeightSearchRequest وتعرض الإعلانات التي تم إرجاعها. تشير رسالة الأشكال البيانية يجب إضافة GADSearchBannerView إلى أي من الملفات الشخصية الحالية للتطبيق، فعادةً ما يكون استخدام وحدة التحكم في العرض الأصل هو عرض أن تمت إضافة GADSearchBannerView إلى. يجب تعيين المفوَّضين المناسبين على GADSearchBannerView.
  • يجب إنشاء مثيل للسمة GADSearchBannerView باستخدام initWithAdSize:kGADAdSizeFluid لطلب إعلانات AFSMA. جارٍ إنشاء مثيل طلب "GADSearchBannerView" الذي يتضمّن initWithAdSize:kGADAdSizeBanner طلب "AdSense لإعلانات Shopping" قديم الإعلانات.
  • يجب ضبط السمة 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"]);
}

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