ב-Google Mobile Ads SDK יש תמיכה גם בסגנונות מותאמים אישית של המודעות בחיפוש. אם האפליקציה כבר משתמש ב-Google Mobile Ads SDK, אנחנו ממליצים להשתמש גרסת AFSMA SDK במקום זאת.
דרישות מוקדמות
- צריך להשתמש ב-Xcode מגרסה 8.0 ואילך
- יעד iOS 8.0 ומעלה
- קוד חוקי של נכס אינטרנט של בעל תוכן דיגיטלי (למשל, vert-ppa-test1-srp)
- CocoaPods
מייבאים את ה-SDK המקורי של AFS
CocoaPods
איך מייבאים את ה-SDK של Google-AFS Native לפרויקט iOS באמצעות CocoaPods. פותחים את הפרויקט Podfile ולהוסיף את השורה הזו ליעד של האפליקציה:
pod 'Google-AFSNative'
לאחר מכן, מריצים את שורת הפקודה:
pod install --repo-update
אם עדיין לא השתמשת ב-CocoaPods, מומלץ לעיין ב מסמכים רשמיים למידע שמסבירה איך ליצור קובצי Podfiles ולהשתמש בהם.
סקירה כללית
אם אתם משדרגים לגרסה 4.0 ואילך מ-2.0.8 או מגרסה קודמת, כדאי לעיין במאמר הבא: המדריך להעברת נתונים (מיגרציה).
במסמך הזה מפורט תהליך השילוב של מודעות מותאמות של AdSense לחיפוש (AFS) באפליקציה לנייד של iOS.
- צריך לספק את ה-constructor של
GANSearchAdController
קוד נכס האינטרנט של בעל האתר, מזהה ההגדרות הרצוי אובייקטGANSearchAdControllerOptions
. - כל קריאה אל
loadAds()
מציינת חיפוש חדש, והיא תגרום קבוצת מודעות למחיקה ולביטול התוקף. - נכסי הקריאייטיב של המודעות נשמרים בדומיין
GANAdView
. - מודעות מתווספות למודעה
GANAdView
באמצעות השיטהpopulateAdView
. לחשבון בנוסף ל-GANAdView
שאמור להתמלא, מבצע הקריאה החוזרת יספקadIdentifier
, שהיא מחרוזת שרירותית שאמורה לזהות את המודעה באופן ייחודי. בתוך ה-API, מודעה ספציפית מוקצית לכל מזהה מודעה שמועבר אינץ' לאחר מכן, בכל פעם שאותו מפתח מודעה יועבר שוב בעתיד, אותה מודעה הוחזרו. לדוגמה, אם בוצעה קריאה אלpopulateAdView
בפעם הראשונה עם adIdentifier "keyA", כל קריאה נוספת ל-populateAdView
במהלך העברה 'keyA' כי המאפייןadIdentifier
יוביל להצגה של אותה מודעה.
- זוהי ה-UIView שבו נמצאת הקריאייטיב של המודעה.
- אכלס את התצוגה הזו במודעה באמצעות השיטה
populateAdView
בGANSearchAdController
.
- מעבירים את האובייקט הזה ל-constructor של
GANSearchAdController
כדי לציין את ההתנהגות של אופן הבקשה וההצגה של מודעות.
- קוראים ל-method
loadAds
במכונהGANSearchAdController
באמצעות כדי לשלוח בקשה להצגת מודעה.
- להטמיע את הממשק הזה ולספק אותו ל-
GANSearchAdController
כדי רישום קריאות חוזרות (callback) במספר מדינות.
הטמעה לדוגמה
הדוגמה הבאה ממחישה איך ליצור 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"];
}
}
...