Mulai

Panduan ini ditujukan bagi penayang yang ingin memonetisasi aplikasi iOS dengan AdMob dan tidak menggunakan Firebase. Jika Anda berencana untuk menyertakan Firebase dalam aplikasi (atau yang Anda pertimbangkan), lihat AdMob dengan Firebase dari panduan ini.

Mengintegrasikan Google Mobile Ads SDK ke dalam aplikasi adalah langkah pertama untuk menampilkan iklan dan memperoleh penghasilan. Setelah mengintegrasikan SDK, Anda dapat melanjutkan untuk menerapkan satu atau beberapa format iklan yang didukung.

Prasyarat

  • Menggunakan Xcode 15.3 atau yang lebih baru
  • Menargetkan iOS 12.0 atau yang lebih tinggi

Mengimpor Mobile Ads SDK

Gunakan salah satu metode berikut untuk mengimpor Google Mobile Ads SDK.

CocoaPods (lebih disukai)

Cara paling sederhana untuk mengimpor SDK ke dalam proyek iOS adalah dengan menggunakan CocoaPods. Buka Podfile project Anda dan tambahkan baris ini ke target aplikasi Anda:

pod 'Google-Mobile-Ads-SDK'

Kemudian dari command line, jalankan:

pod install --repo-update

Jika Anda baru menggunakan CocoaPods, lihat dokumentasi resmi untuk info tentang cara membuat dan menggunakan Podfile.

Swift Package Manager

Google Mobile Ads SDK mendukung Swift Package Manager mulai versi 9.0.0. Ikuti ini langkah-langkah untuk mengimpor paket Swift:

  1. Di Xcode, instal Google Mobile Ads Swift Package dengan membuka File > Tambahkan Paket....

  2. Pada perintah yang muncul, telusuri Google Mobile Ads Swift Package Repositori GitHub:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Pilih versi Swift Package Google Mobile Ads yang ingin Anda gunakan. Untuk project baru, sebaiknya gunakan Versi Utama Berikutnya.

Setelah Anda selesai, Xcode akan mulai menyelesaikan dependensi paket Anda dan mengunduhnya di latar belakang. Untuk detail selengkapnya tentang cara menambahkan paket dependensi, lihat artikel Apple.

Download manual

  1. Download Google Mobile Ads SDK dan Embed & Sign framework berikut ke dalam project Xcode Anda:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. Dalam setelan build project Anda:

    • Tambahkan jalur /usr/lib/swift ke Jalur Penelusuran Runpath.
    • Tambahkan flag penaut -ObjC ke Other Linker Flags.

Mengupdate Info.plist Anda

Update file Info.plist aplikasi Anda untuk menambahkan dua kunci:

  1. Kunci GADApplicationIdentifier dengan nilai string AdMob app ID found in the AdMob UIAnda.

  2. Kunci SKAdNetworkItems dengan nilai SKAdNetworkIdentifier untuk Google (cstr6suwn9.skadnetwork) dan pilih pembeli pihak ketiga yang telah memberikan nilai-nilai tersebut kepada Google.

Cuplikan lengkap

<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>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>3qy4746246.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>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>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>ppxm28t8ap.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>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>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>3qcr597p9d.skadnetwork</string>
  </dict>
</array>

Jika Anda belum membuat AdMob akun Anda dan mendaftarkan aplikasi sekarang, ini adalah saat yang tepat untuk melakukannya.

Dalam aplikasi yang sebenarnya, ganti ID aplikasi contoh dengan yang sebenarnya AdMob ID aplikasi. Anda dapat menggunakan ID contoh jika Anda hanya bereksperimen dengan SDK dalam aplikasi Hello World.

Melakukan inisialisasi Mobile Ads SDK

Sebelum memuat iklan, panggil metode startWithCompletionHandler: di GADMobileAds.sharedInstance, yang menginisialisasi SDK dan memanggil kembali pengendali penyelesaian setelah inisialisasi selesai (atau setelah waktu tunggu 30 detik). Langkah ini hanya perlu dilakukan sekali, idealnya saat aplikasi diluncurkan. Sebaiknya hubungi startWithCompletionHandler: sedini mungkin.

Berikut adalah contoh cara memanggil metode startWithCompletionHandler: di AppDelegate Anda:

Contoh Tailwind (kutipan)

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

Memilih format iklan

Mobile Ads SDK sekarang telah diimpor dan diinisialisasi, dan Anda siap menerapkan iklan. AdMob menawarkan sejumlah berbagai format iklan, sehingga Anda dapat memilih salah satu yang paling sesuai dengan pengguna aplikasi pengalaman yang lancar bagi developer.

Untuk developer SwiftUI, ikuti panduan SwiftUI kami.

Unit iklan banner menampilkan iklan persegi panjang yang menempati sebagian tata letak aplikasi. Iklan dapat dimuat ulang secara otomatis setelah jangka waktu tertentu. Artinya pengguna melihat iklan baru secara berkala, meskipun iklan tersebut tetap berdurasi sama di aplikasi Anda. Format iklan ini juga merupakan format iklan yang paling mudah diterapkan.

Menerapkan iklan banner

Interstisial

Unit iklan interstisial menampilkan iklan satu halaman penuh di aplikasi. Tempatkan mereka di posisi alami jeda dan transisi di antarmuka aplikasi Anda, seperti setelah penyelesaian level dalam aplikasi game.

Menerapkan iklan interstisial

Native

Iklan native adalah iklan yang memungkinkan Anda menyesuaikan aset seperti judul dan pesan ajakan yang ada di aplikasi Anda. Dengan menata gaya iklan sendiri, Anda dapat membuat tampilan iklan yang tampak alami dan tidak mengganggu untuk memperkaya pengalaman pengguna.

Menerapkan iklan native

Reward

Unit iklan reward memungkinkan pengguna bermain game, mengikuti survei, atau menonton video untuk mendapatkan reward dalam aplikasi, seperti koin, nyawa tambahan, atau poin. Anda dapat mengatur reward berbeda untuk berbagai unit iklan, dan tentukan nilai reward dan item yang diterima pengguna.

Menerapkan iklan reward

Interstisial reward

Interstisial reward adalah jenis baru format iklan berinsentif yang memungkinkan Anda menawarkan reward, seperti koin atau nyawa tambahan, untuk iklan yang muncul secara otomatis selama transisi aplikasi yang alami.

Tidak seperti iklan reward, pengguna tidak diwajibkan memilih untuk melihat reward interstisial.

Sebagai ganti dialog keikutsertaan di iklan reward, interstisial reward memerlukan layar pengantar yang mengumumkan reward dan memberi pengguna kesempatan memilih tidak ikut jika mereka ingin melakukannya.

Menerapkan iklan interstisial reward

Iklan di layar pembuka aplikasi

Iklan di layar pembuka aplikasi adalah format iklan yang muncul saat pengguna membuka atau beralih kembali ke . Iklan ditempatkan di atas layar pemuatan.

Menerapkan iklan di layar pembuka aplikasi