שיתוף המשוב שלכם ועזרה בתכנון מפת הדרכים של Google Mobile Ads SDK. כדאי למלא את הסקר השנתי של Google Mobile Ads SDK לשנת 2023 לפני שהוא ייסגר ב-5 במאי 2023.

שנתחיל?

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

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

  • צריך להשתמש ב-Xcode 13.2.1 ואילך
  • טירגוט ל-iOS מגרסה 10.0 ואילך

ייבוא של 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.

  1. ב-Xcode, מתקינים את חבילת ה-Swip Ads של Google לנייד על ידי ניווט אל קובץ > הוספת חבילות....

  2. בהודעה שמופיעה, מחפשים את המאגר של Google Mobile Ads Swift Package: GitHub:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. עליך לבחור את הגרסה של חבילת Google Mobile Ads Swift שבה ברצונך להשתמש. לפרויקטים חדשים, מומלץ להשתמש בגרסה הראשית הבאה.

בסיום, Xcode יתחיל לפתור את התלות בחבילה ולהוריד אותם ברקע. למידע נוסף על הוספת יחסי תלות של חבילות, קראו את המאמר של Apple.

הורדה ידנית

  1. מורידים את ה-SDK של ה-SDK ומחלצים אותו ישירות, ומייבאים את המסגרות הבאות לפרויקט Xcode:

    • GoogleAppMeasurement.xcframework
    • GoogleAppMeasurementIdentitySupport.xcframework
    • GoogleMobileAds.xcframework
    • GoogleUtilities.xcframework
    • nanopb.xcframework
    • PromisesObjC.xcframework
    • UserMessagingPlatform.xcframework
  2. הוסיפו את הסימונים של המקשר -ObjC אל Flags Linker Flags נוספים בהגדרות ה-build של הפרויקט:

עדכון Info.plist

צריך לעדכן את קובץ Info.plist של האפליקציה כדי להוסיף שני מפתחות:

  1. מפתח GADApplicationIdentifier עם ערך מחרוזת שלAd Manager app ID found in the Ad Manager UI and of the form ca-app-pub-################~##########.

  2. מפתח 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>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>3sh42y64q3.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>prcb7njmu6.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>9rd848q2bz.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>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>av6w8kgt66.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>424m5254lk.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>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>gta9lk7p23.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>

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

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

לפני טעינת המודעות, קראו לשיטה startWithCompletionHandler: ב-GADMobileAds.sharedInstance, שמפעילה את ה-SDK ומקריאה ל-handler של השלמה לאחר שהאתחול הושלם (או לאחר זמן קצוב של 30 שניות). צריך לעשות זאת רק פעם אחת, ובאופן אידיאלי בהשקת האפליקציה. מומלץ להתקשר אל startWithCompletionHandler: בהקדם האפשרי.

הנה דוגמה לקריאת השיטה של startWithCompletionHandler: ב-AppDelegate:

דוגמה ל-AppDelegate.m (דוגמאות)

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.sharedInstance().start(completionHandler: nil)

    return true
  }

}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds.sharedInstance startWithCompletionHandler:nil];
  return YES;
}

@end

אם אתם משתמשים בתהליך בחירת הרשת, מומלץ להמתין עד לטיפול במודעות לפני השלמת הטעינה, כדי להבטיח שכל המתאמים לתהליך בחירת הרשת יאופסו.

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

ה-SDK של מודעות לנייד מיובא ומאתחל, ועכשיו אתם יכולים להטמיע מודעה. Ad Manager יש כמה פורמטים שונים של מודעות, כך שאתם יכולים לבחור את הפורמט שהכי מתאים לחוויית המשתמש באפליקציה שלכם.

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

הטמעת מודעת באנר

פרסומת מרווח ביניים

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

הטמעת מעברון

מותאמת

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

ב-Google Ad Manager קיימות שתי דרכים להטמעת מודעות מותאמות: סגנונות מותאמים ורינדור מותאם אישית.

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

הטמעת סגנונות מותאמים הטמעת רינדור מותאם אישית

ההטבה הופעלה

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

הטמעה של מודעות מתגמלות הטמעה של מודעות מתגמלות (ממשקי API חדשים)