השילוב של Google Mobile Ads SDK באפליקציה הוא השלב הראשון לקראת הצגת מודעות וייצור הכנסות. אחרי שמבצעים את השילוב של ה-SDK, אפשר להמשיך להטמעה של אחד או יותר מהפורמטים הנתמכים של המודעות.
דרישות מוקדמות
- שימוש ב-Xcode מגרסה 16.0 ואילך
- יעד iOS 13.0 ומעלה
ייבוא של Google Mobile Ads SDK
אפשר להשתמש באחת מהשיטות הבאות כדי לייבא את Google Mobile Ads SDK.
Swift Package Manager
כדי להוסיף תלות בחבילה לפרויקט, פועלים לפי השלבים הבאים:
ב-Xcode, מתקינים את חבילת Google Mobile Ads Swift על ידי מעבר אל File > Add Package Dependencies... (קובץ > הוספת תלות בחבילה...).
בהנחיה שמופיעה, מחפשים את מאגר Google Mobile Ads Swift Package GitHub:
https://github.com/googleads/swift-package-manager-google-mobile-ads.gitבוחרים את הגרסה של חבילת Google Mobile Ads Swift שרוצים להשתמש בה. לפרויקטים חדשים, מומלץ להשתמש באפשרות עד הגרסה הראשית הבאה.
CocoaPods
לפני שממשיכים, כדאי לעיין במאמר שימוש ב-CocoaPods כדי לקבל מידע על יצירה ושימוש בקובצי Podfile.
כדי להשתמש ב-CocoaPods, פועלים לפי השלבים הבאים:
פותחים את ה-Podfile של הפרויקט ומוסיפים את השורה הזו להגדרת ה-build של האפליקציה
target:pod 'Google-Mobile-Ads-SDK'
בטרמינל, מריצים את הפקודה:
pod install --repo-update
הורדה ידנית
מורידים Google Mobile Ads SDK ואת המסגרות הבאות לפרויקט Xcode:
Embed & SignGoogleMobileAds.xcframeworkUserMessagingPlatform.xcframework
בהגדרות הבנייה של הפרויקט:
- מוסיפים את הנתיב
/usr/lib/swiftאל Runpath Search Paths. - מוסיפים את הדגל
-ObjCשל הכלי Linker אל Other Linker Flags (דגלים אחרים של הכלי Linker).
- מוסיפים את הנתיב
עדכון הקובץ Info.plist
מעדכנים את קובץ Info.plist של האפליקציה כדי להוסיף שני מפתחות:
מפתח
GADApplicationIdentifierעם ערך מחרוזת של מזהה האפליקציה ב-Ad Manager שמופיע בממשק המשתמש של Ad Manager ובפורמטca-app-pub-################~##########.מפתח
SKAdNetworkItemsעם ערכים שלSKAdNetworkIdentifierעבור Google (cstr6suwn9.skadnetwork) וקונים נבחרים מצד שלישי שסיפקו את הערכים האלה ל-Google.
קטע קוד מלא
<key>GADApplicationIdentifier</key>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</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>2fnua5tdw4.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>ydx93a7ass.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>wg4vff78zm.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>mlmmfzh3r3.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>su67r6k2v3.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>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>a2p9lx4jpn.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>22mmun2rn5.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>44jx6755aq.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>k674qkevps.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>kbmxgpxpgc.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>uw77j35x4d.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>tl55sbb4fm.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>c3frkrj4fj.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>3rd42ekr43.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>97r2b46745.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>3qcr597p9d.skadnetwork</string>
</dict>
</array>מחליפים את SAMPLE_APP_ID במזהה האפליקציה שלכם ב-Ad Manager. במהלך הבדיקה, אפשר להשתמש במזהה האפליקציה לדוגמה שמופיע בדוגמה הקודמת.
כדי להשיג ביצועים אופטימליים של אתחול, חשוב לשייך את קבוצות התנועה שמניבות הכנסות לאפליקציות הספציפיות שבהן הן נמצאות בשימוש. הגדרות של קבוצות להגדלת נפח תנועה שמטרגטות את iOS ולא משויכות לאפליקציה ספציפית כלשהי יישלחו לכל האפליקציות ל-iOS בחשבון שלכם, מה שעלול להאריך את הזמן שנדרש לאתחול.
אתחול Google Mobile Ads SDK
לפני טעינת מודעות, קוראים לשיטה start() ב-GADMobileAds.sharedInstance, שמפעילה את ה-SDK ומחזירה קריאה ל-handler של השלמת הפעולה אחרי שההפעלה מסתיימת (או אחרי פסק זמן של 30 שניות). מומלץ לקרוא ל-start() בהקדם האפשרי.
Swift
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
SwiftUI
// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()
Objective-C
// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];
בחירת פורמט מודעה
הקובץ Google Mobile Ads SDK עבר ייבוא ואתחול, ועכשיו אפשר להטמיע מודעה. ב-Ad Manager יש מספר פורמטים שונים של מודעות, כך שאתם יכולים לבחור את הפורמט שהכי מתאים לחוויית המשתמש באפליקציה שלכם.
מודעת באנר
יחידות של מודעות באנר מוצגות כמלבן שתופס חלק מהפריסה של האפליקציה. יכול להיות שיתבצע רענון אוטומטי של המודעות אחרי פרק זמן מסוים. הרענון האוטומטי יגרום לכך שתוצג למשתמשים מודעה חדשה במרווחי זמן קבועים, גם אם הם יישארו באותו מסך באפליקציה. כמו כן, מודעות באנר הן פורמט המודעה הפשוט ביותר להטמעה.
מעברון
יחידות של מודעות מעברון משמשות להצגה של מודעות במסך מלא באפליקציה. צריך למקם אותן בנקודות עצירה ומעבר טבעיות בממשק של האפליקציה, כמו אחרי השלמת שלב באפליקציית משחקים.
מותאם
מודעות מותאמות הן מודעות שבהן אפשר להתאים אישית את האופן שבו נכסים כמו כותרות וקריאות לפעולה מוצגים באפליקציות. כשמעצבים את המודעה בעצמכם, אפשר ליצור מודעות שמשתלבות בצורה טבעית באפליקציה ולא מפריעות לחוויית המשתמש.
ב-Google Ad Manager יש שתי דרכים להטמיע מודעות מותאמות: סגנונות מותאמים ומודעות מותאמות רגילות באמצעות עיבוד בהתאמה אישית.
התכונה 'סגנונות מותאמים' נועדה לפשט את ההטמעה של מודעות מותאמות, והיא בחירה מצוינת אם אתם חדשים בפורמט הזה. העיצוב של עיבוד מותאם אישית נועד למקסם את החופש שלכם ביצירת מצגות.
הטמעה של סגנונות מותאמים הטמעה של מודעות מותאמות (רינדור מותאם אישית)
ההטבה הופעלה
יחידות של מודעות מתגמלות מאפשרות למשתמשים לשחק במשחקים, להשתתף בסקרים או לצפות בסרטונים כדי לזכות בתגמולים בתוך האפליקציה, כמו מטבעות, עוד חיים או נקודות. אפשר להגדיר תגמולים שונים ליחידות מודעות שונות ולציין את ערכי התגמול ואת הפריטים שהמשתמש קיבל.
מודעת מעברון מתגמלת
מודעת מעברון מתגמלת היא מודעה מסוג חדש שמופיעה באופן אוטומטי בנקודות מעבר טבעיות באפליקציה ומאפשרת לכם להציע תגמולים, כמו מטבעות או תוספת חיים.
בשונה ממודעות מתגמלות רגילות, המשתמשים לא צריכים להביע הסכמה לצפייה במודעות מעברון מתגמלות.
במקום ההנחיה להצטרפות במודעות מתגמלות, מעברונים מתגמלים דורשים מסך פתיחה שמודיע על התגמול ונותן למשתמשים הזדמנות לסרב אם הם רוצים לעשות זאת.
הטמעה של מודעות מעברון מתגמלות
מודעה בפתיחת אפליקציה
מודעה בפתיחת אפליקציה היא פורמט מודעה שמופיע כשמשתמשים פותחים את האפליקציה או חוזרים אליה. המודעה מוצגת כשכבת-על במסך הטעינה של האפליקציה.
הטמעה של מודעות בפתיחת אפליקציה