توفِّر حزمة تطوير البرامج (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
لرمز الموقع الإلكتروني للناشر ومعرّف الإعدادات المطلوبة وكائنGANSearchAdControllerOptions
المرتبط. - يشير كل استدعاء إلى
loadAds()
إلى عملية بحث جديدة، وسيؤدي إلى تجاهل المجموعة الحالية من الإعلانات وإبطالها. - يتم تخزين تصاميم الإعلانات في
GANAdView
. - يتم إدراج الإعلانات في الإعلان
GANAdView
باستخدام طريقةpopulateAdView
. بالإضافة إلىGANAdView
التي تتم تعبئتها، يقدِّم المتصل السمةadIdentifier
، وهي سلسلة عشوائية يجب أن تعرِّف الإعلان بشكلٍ فريد. داخل واجهة برمجة التطبيقات، يتم تعيين إعلان محدد لكل معرّف إعلان يتم تمريره. وبعد ذلك، عندما يتم تمرير مفتاح الإعلان هذا مرة أخرى في المستقبل، سيتم عرض الإعلان نفسه. على سبيل المثال، إذا تم استدعاءpopulateAdView
لأول مرة مع adidentifier "keyA"، سيؤدي كل استدعاء لاحق إلىpopulateAdView
مع تمرير "keyA" على أنهadIdentifier
إلى عرض الإعلان نفسه.
- هذا هو UIView الذي يحتوي على تصميم الإعلان.
- تعبئة طريقة العرض هذه بإعلان يستخدم طريقة
populateAdView
فيGANSearchAdController
.
- نقْل هذا الكائن إلى الدالة الإنشائية
GANSearchAdController
لتحديد سلوك طلب الإعلانات وعرضها.
- استدعِ الطريقة
loadAds
على مثيلGANSearchAdController
مع هذا الكائن لتقديم طلب إعلان.
- يمكنك تنفيذ هذه الواجهة وتوفيرها إلى
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"];
}
}
...