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

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

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

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

استيراد حزمة تطوير البرامج (SDK) الأصلية لخدمة "AdSense للبحث"

CocoaPods

استورِد حزمة تطوير البرامج (SDK) لإعلانات Google AdSense المحلية إلى مشروع 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، وهي سلسلة عشوائية يجب أن تعرِّف الإعلان بشكلٍ فريد. داخل واجهة برمجة التطبيقات، يتم تعيين إعلان محدد لكل معرّف إعلان يتم تمريره. وبعد ذلك، عندما يتم تمرير مفتاح الإعلان هذا مرة أخرى في المستقبل، سيتم عرض الإعلان نفسه. على سبيل المثال، إذا تم استدعاء 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"];
  }
}
...