הגדרה של Google Mobile Ads SDK

כדי להציג מודעות ולהרוויח מהן, צריך לשלב את Google Mobile Ads SDK באפליקציה ל-iOS. כדי להכין את הפרויקט, צריך לייבא ולהפעיל את Google Mobile Ads SDK לפני ששולחים בקשות להצגת מודעות.

אם אתם כוללים את Firebase באפליקציה ל-iOS, עיינו במאמר תחילת העבודה עם AdMob בפרויקט ל-iOS.

במדריך הזה נסביר איך לייבא ולהפעיל את Google Mobile Ads SDK, ואיך לבחור פורמט מודעה.

דרישות מוקדמות

לפני שממשיכים, חשוב לוודא שהתנאים הבאים מתקיימים:

  • צריך להשתמש ב-Xcode מגרסה 16.0 ואילך.
  • יעד iOS מגרסה 13.0 ואילך.

ייבוא של Google Mobile Ads SDK

כדי לייבא את Google Mobile Ads SDK, צריך לבצע את הפעולות באחד מהסעיפים הבאים:

‫Swift Package Manager (מומלץ)

כדי להוסיף תלות בחבילה לפרויקט:

  1. פותחים את Xcode.
  2. עוברים אל File > Add Package Dependencies...‎ (קובץ > הוספת יחסי תלות של חבילות...‎).
  3. מתקינים את חבילת Swift של Google Mobile Ads SDK.

  4. בהודעה שמופיעה, מחפשים את מאגר GitHub של חבילת Swift של מודעות Google לנייד:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  5. בוחרים את הגרסה של חבילת Swift של Google Mobile Ads SDK שבה רוצים להשתמש. בפרויקטים חדשים, מומלץ להשתמש באפשרות Up to Next Major Version.

CocoaPods

כדי להשתמש ב-CocoaPods, פועלים לפי השלבים הבאים:

  1. פותחים את ה-Podfile של הפרויקט ומוסיפים את השורה הזו לתצורת ה-build של target באפליקציה:

    pod 'Google-Mobile-Ads-SDK'
    
  2. במסוף, מריצים את הפקודה הבאה:

    pod install --repo-update

הגדרת יעד הפריסה ל-Xcode 27

ב-Xcode 27, יעד הפריסה המינימלי לכל היעדים הוא iOS 15.0. ‫Google Mobile Ads SDK תומך ב-iOS 13.0, ולכן גרסאות build של Xcode 27 נכשלות כשמשתמשים ב-CocoaPods.

כדי לפתור את הבעיה, עליך:

  1. פותחים את הקובץ Podfile של הפרויקט ומוסיפים הוק (hook) מסוג post_install שמגדיר את יעד הפריסה ל-15.0. אם יש לכם בלוק post_install, הוסיפו את הלולאה הפנימית לבלוק הקיים.

    בדוגמה הבאה, המפתח IPHONEOS_DEPLOYMENT_TARGET מוגדר ל-15.0 לכל יעדי ה-Pod:

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
        end
      end
    end
    
  2. כדי להתקין מחדש את ה-pods, מריצים את הפקודה הבאה:

    pod install --repo-update

הורדה ידנית

כדי להוריד את Google Mobile Ads SDK באופן ידני:

  1. הורדה Google Mobile Ads SDK.
  2. מחלצים את החבילה googlemobileadssdkios.zip.
  3. בפרויקט Xcode, מוסיפים את ה-frameworks הבאים:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  4. בהגדרות General של היעד, עוברים אל Frameworks, Libraries, and Embedded Content.

  5. מוודאים שהגדרתם את GoogleMobileAds.xcframework ואת UserMessagingPlatform.xcframework לערך Embed & Sign.

  6. בהגדרות ה-build של הפרויקט:

    • מוסיפים את הנתיב /usr/lib/swift אל Runpath Search Paths.
    • מוסיפים את דגל המקשר -ObjC ל-Other Linker Flags (דגלי מקשר אחרים).

עדכון הקובץ Info.plist

בקובץ Info.plist של האפליקציה, מוסיפים את המפתחות הבאים:

דוגמה פתורה

<key>GADApplicationIdentifier</key>
<!-- Sample AdMob 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 במזהה האפליקציה ב-AdMob. בזמן הבדיקה, השתמשו במזהה האפליקציה לדוגמה שמוצג בדוגמה הקודמת.

אם עדיין לא יצרתם חשבון AdMob ורשמתם אפליקציה, זה הזמן לעשות את זה.

מפעילים את Google Mobile Ads SDK

לפני שטוענים מודעות, צריך להפעיל את Google Mobile Ads SDK באמצעות קריאה ל-method‏ start() מהמאפיין GADMobileAds.sharedInstance. השיטה הזו מפעילה handler להשלמה אחרי ש-Google Mobile Ads SDK ומתאמי תהליך בחירת הרשת מסיימים את העיבוד, או אחרי 30 שניות.

בדוגמה הבאה מאתחלים את Google Mobile Ads SDK:

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 יטען מראש מודעות או יפעיל ערכות SDK של צד שלישי כשמתבצעת קריאה ל-method‏ startWithCompletionHandler:. אם אתם צריכים לקבל הסכמה ממשתמשים באזור הכלכלי האירופי (EEA), בבריטניה או בשווייץ, אתם צריכים להגדיר דגלים ספציפיים לבקשה. אם אתם צריכים להגדיר דגלים ספציפיים לבקשה, הקפידו להגדיר את הדגלים לפני ההפעלה של Google Mobile Ads SDK. פרטים נוספים זמינים במאמר בנושא טירגוט.

בחירת פורמט מודעה

אחרי שמייבאים את Google Mobile Ads SDK, אפשר לבחור פורמט מודעה להטמעה.

ב-AdMob אפשר להשתמש בפורמטים הבאים של מודעות:

פורמט מודעה תיאור מאמרי עזרה
מודעת באנר מודעות מלבניות שמוצגות בחלק מהפריסה של האפליקציה. המודעה הזו מתרעננת באופן אוטומטי במרווחי זמן קבועים. המשתמשים רואים את המודעות האלה מדי פעם כשהם נשארים באותו מסך. הגדרת מודעות באנר
מעברון מודעות במסך מלא שמוצגות באפליקציה. כדאי למקם את המודעות האלה בנקודות עצירה ומעבר טבעיות בממשק של האפליקציה, כמו אחרי השלמת שלב באפליקציית משחקים. מודעות מעברון
מותאמת מאפשרת להתאים אישית נכסים, כמו כותרות וקריאות לפעולה, באפליקציות. כשאתם מתאימים אישית את המודעה, אתם יוצרים מודעות שתואמות לעיצוב החזותי של האפליקציה. טעינה של מודעה מותאמת
ההטבה הופעלה המשתמשים מקבלים תגמולים באפליקציה, כמו מטבעות או נקודות, בתמורה למשחק, למילוי סקרים או לצפייה בסרטונים. אתם יכולים להגדיר תגמולים ליחידות מודעות ולציין אילו פריטים המשתמשים יקבלו ומה ערך התגמולים. מודעות מתגמלות
מודעת מעברון מתגמלת מאפשרים לכם להציע תגמולים, כמו מטבעות או תוספת חיים, בתמורה לצפייה במודעות שמופיעות במהלך מעברים באפליקציה. מודעות מעברון מתגמלות
מודעה בפתיחת אפליקציה המודעה מופיעה כשמשתמשים פותחים את האפליקציה או חוזרים אליה, ומוצגת כשכבת-על במסך הטעינה. מודעות בפתיחת האפליקציה