شروع کنید

این راهنما برای ناشرانی است که می‌خواهند از برنامه iOS با AdMob کسب درآمد کنند و از Firebase استفاده نمی‌کنند. اگر قصد دارید Firebase را در برنامه خود قرار دهید (یا در نظر دارید)، به جای آن به نسخه AdMob با Firebase این راهنما مراجعه کنید.

ادغام Google Mobile Ads SDK در یک برنامه اولین قدم برای نمایش تبلیغات و کسب درآمد است. هنگامی که SDK را ادغام کردید، می توانید یک یا چند فرمت تبلیغاتی پشتیبانی شده را پیاده سازی کنید.

پیش نیازها
  • از Xcode 15.3 یا بالاتر استفاده کنید
  • iOS 12.0 یا بالاتر را هدف قرار دهید
SDK تبلیغات موبایل را وارد کنید

از یکی از روش های زیر برای وارد کردن Google Mobile Ads SDK استفاده کنید.

CocoaPods (ترجیحا)

ساده ترین راه برای وارد کردن SDK به پروژه iOS استفاده از CocoaPods است. Podfile پروژه خود را باز کنید و این خط را به هدف برنامه خود اضافه کنید:

pod 'Google-Mobile-Ads-SDK'

سپس از خط فرمان اجرا کنید:

pod install --repo-update

اگر با CocoaPods تازه کار هستید، برای اطلاعات در مورد نحوه ایجاد و استفاده از Podfiles به اسناد رسمی آنها مراجعه کنید.

مدیر بسته سوئیفت

Google Mobile Ads SDK از Swift Package Manager با شروع نسخه 9.0.0 پشتیبانی می کند. برای وارد کردن بسته سوئیفت مراحل زیر را دنبال کنید:

  1. در Xcode، بسته Swift Google Mobile Ads را با رفتن به File > Add Packages... نصب کنید.

  2. در درخواستی که ظاهر می شود، مخزن GitHub Swift Package Ads Google Mobile را جستجو کنید:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. نسخه بسته Swift Ads Google Mobile را که می‌خواهید استفاده کنید، انتخاب کنید. برای پروژه‌های جدید، توصیه می‌کنیم از نسخه اصلی تا بعدی استفاده کنید.

پس از اتمام کار، Xcode شروع به رفع وابستگی های بسته شما و دانلود آنها در پس زمینه می کند. برای جزئیات بیشتر در مورد نحوه افزودن وابستگی های بسته، به مقاله اپل مراجعه کنید.

دانلود دستی
  1. Google Mobile Ads SDK را دانلود کنید و چارچوب‌های زیر را در پروژه Xcode خود Embed & Sign :

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. در تنظیمات ساخت پروژه خود، پرچم پیوند دهنده -ObjC را به سایر پرچم‌های پیوند دهنده اضافه کنید:

Info.plist خود را به روز کنید

فایل Info.plist برنامه خود را برای اضافه کردن دو کلید به روز کنید:

  1. یک کلید GADApplicationIdentifier با مقدار رشته ایAdMob app ID found in the AdMob UIشما.

  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>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 هستید، می توانید از شناسه نمونه استفاده کنید.

SDK تبلیغات موبایل را راه اندازی کنید

قبل از بارگیری تبلیغات، متد startWithCompletionHandler: را در GADMobileAds.sharedInstance فراخوانی کنید، که SDK را مقداردهی اولیه می‌کند و پس از تکمیل اولیه (یا پس از مهلت زمانی 30 ثانیه‌ای)، یک کنترل‌کننده تکمیل را فراخوانی می‌کند. این کار فقط باید یک بار انجام شود، ایده آل در هنگام راه اندازی برنامه. باید هر چه زودتر با startWithCompletionHandler: تماس بگیرید.

در اینجا مثالی از نحوه فراخوانی متد startWithCompletionHandler: در AppDelegate آورده شده است:

نمونه AppDelegate (گزیده)
سریع
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()
      }
    }
  }
}
هدف-C
@import GoogleMobileAds;

@implementation AppDelegate

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

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

@end
یک قالب تبلیغاتی را انتخاب کنید

اکنون SDK تبلیغات موبایل وارد و مقداردهی اولیه شده است و شما آماده اجرای یک تبلیغ هستید. AdMob قالب‌های تبلیغاتی مختلفی را ارائه می‌دهد، بنابراین می‌توانید یکی را انتخاب کنید که به بهترین وجه با تجربه کاربری برنامه‌تان مطابقت دارد.

برای توسعه دهندگان SwiftUI، راهنمای SwiftUI ما را دنبال کنید.