המדריך הזה מיועד לבעלי אפליקציות שרוצים לייצר הכנסות (מונטיזציה) מאפליקציה ל-iOS באמצעות AdMob ולא משתמשים ב-Firebase. אם אתם מתכננים לכלול את Firebase באפליקציה (או אתה מתעניין בזה), כדאי לעיין AdMob עם Firebase של המדריך הזה.
שילוב של Google Mobile Ads SDK באפליקציה הוא הצעד הראשון לקראת הצגת מודעות וייצור הכנסות. אחרי השילוב של ה-SDK, אפשר להמשיך בהטמעה של אחד או יותר פורמטים נתמכים של מודעות.
דרישות מוקדמות
- צריך להשתמש ב-Xcode מגרסה 15.3 ואילך
- יעד iOS מגרסה 12.0 ואילך
- מומלץ: יצירת חשבון AdMob ולרשום אפליקציה.
ייבוא של Mobile Ads SDK
אפשר לייבא את Google Mobile Ads SDK באחת מהשיטות הבאות:
CocoaPods (מועדף)
הדרך הפשוטה ביותר לייבא את ה-SDK לפרויקט iOS היא להשתמש CocoaPods. גישה חופשית ה-Podfile של הפרויקט ולהוסיף את השורה הבאה ליעד של האפליקציה:
pod 'Google-Mobile-Ads-SDK'
לאחר מכן, מריצים את שורת הפקודה:
pod install --repo-update
אם עדיין לא השתמשת ב-CocoaPods, מומלץ לעיין ב מסמכים רשמיים למידע שמסבירה איך ליצור קובצי Podfiles ולהשתמש בהם.
מנהל חבילות SWIFT
Google Mobile Ads SDK תומך ב-Swift Package חשבון ניהול החל מגרסה 9.0.0. מעקב השלבים לייבוא חבילת Swift:
ב-Xcode, מתקינים את חבילת Swift של Google Mobile Ads. לשם כך, עוברים אל קובץ > Add Packs... (הוספת חבילות).
בהודעה שמופיעה, מחפשים את Google Mobile Ads SWIFT Package מאגר של GitHub:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
בוחרים את הגרסה של חבילת Swift של מודעות Google לנייד שבה רוצים להשתמש. לפרויקטים חדשים, מומלץ להשתמש ב-Up to Next Major Version.
בסיום התהליך, מערכת Xcode תתחיל לפתור את יחסי התלות של החבילות מורידים אותם ברקע. לפרטים נוספים על הוספת חבילה של יחסי התלות, ראו מאמר של Apple.
הורדה ידנית
להורדה של Google Mobile Ads SDK ו-
Embed & Sign
את ה-frameworks הבאות בפרויקט Xcode שלכם:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
מוסיפים את דגל המנגנון לקישור
-ObjC
לסימונים של קישור אחר בפרויקט הגדרות build:
עדכון Info.plist
צריך לעדכן את הקובץ Info.plist
של האפליקציה כדי להוסיף שני מפתחות:
מפתח
GADApplicationIdentifier
עם ערך מחרוזת של AdMob app ID found in the AdMob UI.מפתח
SKAdNetworkItems
עם ערכיSKAdNetworkIdentifier
ל-Google (cstr6suwn9.skadnetwork
) וגם בחירת קונים של צד שלישי שסיפקו את הערכים האלה ל-Google.
קטע קוד מלא
<key>GADApplicationIdentifier</key> <string>ca-app-pub-3940256099942544~1458002511</string> <key>SKAdNetworkItems</key> <array> <dict> <key>SKAdNetworkIdentifier</key> <string>cstr6suwn9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4fzdc2evr5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4pfyvq9l8r.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2fnua5tdw4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ydx93a7ass.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>5a6flpkh64.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>p78axxw29g.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v72qych5uu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ludvb6z3bs.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>cp8zw746q7.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3sh42y64q3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>c6k4g5qg8m.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>s39g8k73mm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qy4746246.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>f38h382jlk.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>hs6bdukanm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v4nxqhlyqp.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>wzmmz9fp6w.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>yclnxrl5pm.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>t38b2kh725.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>7ug5zh24hu.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>gta9lk7p23.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>vutu7akeur.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>y5ghdn5j9k.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n6fk4nfna4.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>v9wttpbfk9.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>n38lu8286q.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>47vhws6wlr.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>kbd757ywx3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>9t245vhmpl.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>eh6m2bh4zr.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>a2p9lx4jpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>22mmun2rn5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4468km3ulz.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>2u9pt9hc89.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8s468mfl3y.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>klf5c3l5u5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ppxm28t8ap.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>ecpz2srf59.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>uw77j35x4d.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>pwa73g5rt2.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>mlmmfzh3r3.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>578prtvx9j.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>4dzt52r2t5.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>e5fvkxwrpn.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>8c4e2ghe7u.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>zq492l623r.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3rd42ekr43.skadnetwork</string> </dict> <dict> <key>SKAdNetworkIdentifier</key> <string>3qcr597p9d.skadnetwork</string> </dict> </array>
אם עדיין לא יצרתם חשבון AdMob חשבון ורשם עדיין, עכשיו זה זמן מצוין לעשות זאת.
באפליקציה אמיתית, יש להחליף את מזהה האפליקציה לדוגמה באמת AdMob מזהה האפליקציה. תוכלו להשתמש במזהה לדוגמה אם בחרת להתנסות ב-SDK באפליקציה Hello World.
הפעלה של Mobile Ads SDK
לפני טעינת מודעות, יש להפעיל את השיטה startWithCompletionHandler:
ב
GADMobileAds.sharedInstance
,
שמאתחל את ה-SDK וקורא חזרה ל-handler של השלמה פעם אחת
האתחול הושלם (או לאחר זמן קצוב של 30 שניות). זה צריך רק להיות
פעם אחת, רצוי בזמן השקת האפליקציה. עליך להתקשר אל startWithCompletionHandler:
בהקדם האפשרי.
בדוגמה הבאה אפשר לקרוא ל-method startWithCompletionHandler:
ב:
AppDelegate
שלך:
דוגמה ל-AppDelegate (פרט)
Swift
import GoogleMobileAds
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
SwiftUI
import GoogleMobileAds
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
}
}
@main
struct YourApp: App {
// To handle app delegate callbacks in an app that uses the SwiftUI lifecycle,
// you must create an application delegate and attach it to your `App` struct
// using `UIApplicationDelegateAdaptor`.
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
}
}
}
}
Objective-C
@import GoogleMobileAds;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
return YES;
}
@end
בחירה של פורמט מודעה
ה-Mobile Ads SDK מיובא ומאתחל עכשיו, ואתם מוכנים להטמיע מודעה. AdMob כולל כמה פורמטים שונים של מודעות, כך שאפשר לבחור את הפורמט שהכי מתאים למשתמש באפליקציה חוויה אישית.
למפתחים של SwiftUI, אפשר לעקוב אחר SwiftUI שלנו guide.
כרזה
יחידות של מודעות באנר מוצגות כמלבן שתופס חלק משטח האפליקציה הפריסה שלו. יכול להיות שיתבצע רענון אוטומטי שלהם אחרי פרק זמן מסוים. כלומר משתמשים צופים במודעה חדשה במרווחי זמן קבועים, גם אם הם נשארים ללא שינוי מסך באפליקציה. בנוסף, זהו הפורמט הפשוט ביותר להטמעה.
מעברון
יחידות של מודעות מעברון משמשות להצגה של מודעות במסך מלא באפליקציה. למקם אותן במיקום הטבעי הפסקות ומעברים בממשק של האפליקציה, למשל לאחר השלמת שלב באפליקציית משחקים.
מותאם
מודעות מותאמות הן מודעות שבהן אפשר להתאים אישית את הדרך שבה נכסים דיגיטליים, כמו כותרות קריאות לפעולה מוצגות באפליקציות שלכם. אם תעצבו את המודעה בעצמכם, תוכלו ליצור הצגת מודעות טבעית ולא פולשנית, שיכולה להוסיף למשתמש עשיר חוויה אישית.
ההטבה הופעלה
יחידות של מודעות מתגמלות מאפשרות למשתמשים לשחק במשחקים, להשתתף בסקרים או לצפות בסרטונים כדי להרוויח פרסים מתוך האפליקציה, כמו מטבעות, תוספת חיים או נקודות. אפשר להגדיר תגמולים שונים ליחידות מודעות שונות, ולציין את ערכי התגמול פריטים שהמשתמש קיבל.
מודעות מעברון מתגמלות
מודעת מעברון מתגמלת היא סוג חדש של פורמט מודעה שמבוסס על תמריצים, שמאפשר לכם להציע תגמולים, כמו מטבעות או תוספת חיים, על מודעות שמופיעות באופן אוטומטי. במהלך מעברים טבעיים בין אפליקציות.
בניגוד למודעות מתגמלות, המשתמשים לא נדרשים להביע הסכמה כדי לצפות במודעות מתגמלות מעברון.
במקום להציג את בקשת ההסכמה במודעות מתגמלות, מודעות מעברון מתגמלות צריכות מסך פתיחה שמכריז על התגמול ומאפשר למשתמשים לבטל את ההסכמה אם הם רוצים לעשות את זה.
הטמעה של מודעות מעברון מתגמלות
מודעות בפתיחת אפליקציה
מודעה בפתיחת אפליקציה היא פורמט מודעה שמופיע כשמשתמשים פותחים את חשבון אפליקציה. המודעה מציגה שכבת-על במסך הטעינה.