המדריך הזה מיועד לבעלי אפליקציות שרוצים לייצר הכנסות (מונטיזציה) מאפליקציה ל-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 Manager החל מגרסה 9.0.0. כדי לייבא את חבילת Swift, מבצעים את השלבים הבאים:
ב-Xcode, מתקינים את Google Mobile Ads SWIFT Package על ידי מעבר אל File > Add Packages....
בהודעה שמופיעה, מחפשים את מאגר GitHub של Google Mobile Ads Swift Package:
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
מוסיפים את דגל ה-linker
-ObjC
ל-Other Linker flags בהגדרות ה-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
לפני שטוענים את המודעות, כדאי לקרוא ל-method 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.
כרזה
יחידות של מודעות באנר מוצגות כמלבן שתופס חלק מהפריסה של האפליקציה. יכול להיות שיתבצע רענון אוטומטי שלהם אחרי פרק זמן מסוים. כלומר, משתמשים רואים מודעה חדשה במרווחי זמן קבועים, גם אם הם נשארים באותו מסך באפליקציה. בנוסף, זהו הפורמט הפשוט ביותר להטמעה.
פרסומת מרווח ביניים
יחידות של מודעות מעברון משמשות להצגה של מודעות במסך מלא באפליקציה. צריך למקם אותן בנקודות עצירה ומעבר טבעיות בממשק של האפליקציה, כמו אחרי השלמת שלב באפליקציית משחקים.
מותאם
מודעות מותאמות הן מודעות שבהן אפשר להתאים אישית את האופן שבו נכסים, כמו כותרות וקריאות לפעולה, מוצגים באפליקציות. אם תעצבו את המודעה בעצמכם, תוכלו ליצור מצגת טבעית ולא פולשנית, שיכולה להוסיף חוויית משתמש עשירה.
ההטבה הופעלה
יחידות של מודעות מתגמלות מאפשרות למשתמשים לשחק במשחקים, להשתתף בסקרים או לצפות בסרטונים כדי לזכות בפרסים בתוך האפליקציה, כמו מטבעות, תוספת חיים או נקודות. אפשר להגדיר תגמולים שונים ליחידות מודעות שונות ולציין את ערכי התגמולים ואת הפריטים שהמשתמש קיבל.
מודעות מעברון מתגמלות
מודעות מעברון מתגמלות הן סוג חדש של פורמט מודעה שמבוסס על תמריצים. הוא מאפשר להציע תגמולים, כמו מטבעות או תוספת חיים, על מודעות שמופיעות אוטומטית בנקודות מעבר טבעיות באפליקציה.
בניגוד למודעות מתגמלות, המשתמשים לא צריכים להביע הסכמה כדי לראות מעברון מתגמל.
במקום בקשת ההסכמה במודעות מתגמלות, מודעות מעברון מתגמלות צריכות לכלול מסך פתיחה עם הודעה על התגמול, ולאפשר למשתמשים לבטל את ההסכמה אם הם רוצים לעשות זאת.
הטמעה של מודעות מעברון מתגמלות
מודעות בפתיחת אפליקציה
מודעה בפתיחת אפליקציה היא פורמט מודעה שמופיע כשמשתמשים פותחים את האפליקציה או חוזרים אליה. המודעה מוצגת כשכבת-על במסך הטעינה.