تنفيذ إعلانات AdSense المدمجة مع المحتوى لنظام التشغيل iOS

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

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

  • استخدام Xcode 8.0 أو إصدار أحدث
  • استهداف إصدار iOS 8.0 أو الإصدارات الأحدث
  • رمز موقع إلكتروني صالح للناشر (مثل vert-ppa-test1-srp)
  • CocoaPods

استيراد حزمة تطوير البرامج (SDK) للإعلانات المدمجة مع المحتوى في "AdSense للبحث"

CocoaPods

استيراد حزمة تطوير البرامج (SDK) الخاصة بخدمة "AdSense لإعلانات Shopping" من Google إلى مشروع iOS باستخدام CocoaPods. افتح قائمة مشروعاتك Podfile وإضافة هذا السطر إلى هدف تطبيقك:

pod 'Google-AFSNative'

ثم من تشغيل سطر الأوامر:

pod install --repo-update

إذا كنت مستخدمًا جديدًا لـ CocoaPods، يُرجى الاطّلاع على مستندات رسمية للحصول على معلومات حول كيفية إنشاء ملفات Podfiles واستخدامها.

نظرة عامة

إذا كنت بصدد الترقية إلى الإصدار 4.0 أو إصدار أحدث من 2.0.8 أو أي إصدار سابق، يُرجى مراجعة دليل نقل البيانات

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

GANSearchAdController

  • يجب توفير الدالة الإنشائية GANSearchAdController رمز الموقع الإلكتروني للناشر، ومعرّف الإعدادات المطلوبة، والمرتبطة كائن GANSearchAdControllerOptions.
  • تشير كل استدعاء إلى loadAds() إلى عملية بحث جديدة، وسينتج عن ذلك إجراء مجموعة من الإعلانات التي سيتم تجاهلها وإبطال صلاحيتها.
  • يتم تخزين تصاميم الإعلانات في GANAdView.
  • يتم إدراج الإعلانات في الإعلان GANAdView باستخدام الطريقة populateAdView. ضِمن بالإضافة إلى GANAdView التي ستتم تعبئتها، سيقدّم المتصل adIdentifier، وهي سلسلة عشوائية يجب أن تحدّد الإعلان بشكل فريد. داخل واجهة برمجة التطبيقات، يتمّ تخصيص إعلان معيّن لكلّ سمة adIdentifier يتم تمريره بوصة وعند إعادة تمرير مفتاح الإعلان هذا في المستقبل، سيتم عرض الإعلان نفسه عاد. على سبيل المثال، إذا تم استدعاء populateAdView لأول مرة مع adIdentifier "keyA"، كل استدعاء لاحق إلى populateAdView أثناء التمرير "keyA" لأنّ adIdentifier سيؤدي إلى عرض الإعلان نفسه.

GANAdView

  • هذا هو UIView الذي يحتوي على تصميم الإعلان.
  • تعبئة طريقة العرض هذه بإعلان باستخدام الطريقة populateAdView على GANSearchAdController

GANSearchAdControllerOptions

  • نقْل هذا الكائن إلى الدالة الإنشائية GANSearchAdController لتحديد السلوك المتعلقة بطريقة طلب الإعلانات وعرضها

GANSearchAdRequest

  • يجب استدعاء الطريقة loadAds على المثيل GANSearchAdController باستخدام ما يلي: الاعتراض على تقديم طلب إعلان.

GANSearchAdControllerDelegate

  • نفِّذ هذه الواجهة وقدِّمها إلى "GANSearchAdController" من أجل تسجيل عمليات معاودة الاتصال لعدة ولايات.

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

يوضّح المثال التالي إنشاء GANSearchAdController وGANView لعرض إعلان في نموذج ViewController.

// SampleAppViewController.m implementation

#import <AFSNative/AFSNative.h>

@interface GBannerViewController () {
  // The Ad Controller used by the sample application.
  GANSearchAdController *_adController;

  // The Ad View to display the loaded ad.
  GANAdView *_adView;
}
// scrollView will be where we place our ads in this example.
@property(nonatomic, strong) UIScrollView *scrollView;
@end
...

- (void)viewDidLoad {
  [super viewDidLoad];

  // Create the scroll view.
  ...
  [self.view addSubview:scrollView];

  // Create a test button and link the ad request to its action.
  UIButton *loadBannerButton = [UIButton buttonWithType:UIButtonTypeCustom];
  ...
  [loadBannerButton addTarget:self
                       action:@selector(loadAd:)
             forControlEvents:UIControlEventTouchUpInside];
  [self.scrollView addSubview:loadBannerButton];

  // Construct the Ad Controller.
  GANSearchAdControllerOptions *options = [[GANSearchAdControllerOptions alloc] init];
  options.prefetchEnabled = YES;
  options.adType = GANSearchAdTypeSPA;
  options.adFetchCount = 3;

  _adController = [[GANSearchAdController alloc]
                     initWithPublisherID: @"your-client-id"
                                 styleID: @"your-settings-id"
                                 options: options
                                delegate: self];

  _adView = [_adController adView];
  [self.scrollView addSubview:_adView];
}

// Request ads when the test button is pressed.
- (void)loadAd:(id)sender {
  // Construct the Ad Request.
  GANSearchAdRequest *adRequest = [[GANSearchAdRequest alloc] init];
  adRequest.query =  @"some-query";
  // Start loading ads. Note that the loading is asynchronous.
  [_adController loadAds: adRequest];
}

// Insert ads into GANAdView if the request returns successfully.
- (void)searchAdController:(GANSearchAdController *)adController  
                didLoadAds:(NSInteger)numberOfAds {
  if (numberOfAds <= 0) {
    NSLog(@"No ads found on the server");
  } else {
    [_adController populateAdView:_adView identifier:@"demoAd"];
  }
}
...