Mulai

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

Langkah pertama untuk menayangkan iklan dan memperoleh pendapatan adalah dengan mengintegrasikan Google Mobile Ads SDK ke dalam aplikasi. Setelah SDK diintegrasikan, 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 termudah untuk mengimpor SDK ke dalam project iOS adalah dengan menggunakan CocoaPods. Buka Podfile project Anda dan tambahkan baris ini ke target aplikasi:

pod 'Google-Mobile-Ads-SDK'

Kemudian dari command line, jalankan:

pod install --repo-update

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

Swift Package Manager

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

  1. Di Xcode, instal Paket Swift Google Mobile Ads dengan membuka File > Add Packages....

  2. Pada perintah yang muncul, telusuri repositori GitHub Paket Swift Google Mobile Ads:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Pilih versi Paket Swift Google Mobile Ads yang ingin Anda gunakan. Untuk project baru, sebaiknya gunakan Up to Next Major Version.

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

Download manual

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

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

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

Memperbarui Info.plist

Perbarui 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 pembeli pihak ketiga tertentu yang telah memberikan nilai ini ke Google.

Menyelesaikan cuplikan

<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 akun AdMob dan mendaftarkan aplikasi, sekarang adalah saat yang tepat untuk melakukannya.

Di aplikasi sungguhan, ganti ID aplikasi contoh dengan ID aplikasi AdMob yang sebenarnya. Anda dapat menggunakan ID contoh jika hanya bereksperimen dengan SDK di aplikasi Hello World.

Melakukan inisialisasi Mobile Ads SDK

Sebelum memuat iklan, panggil metode startWithCompletionHandler: pada 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. Anda harus memanggil startWithCompletionHandler: sedini mungkin.

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

Contoh AppDelegate (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 kini telah diimpor dan diinisialisasi, dan Anda siap untuk menerapkan iklan. AdMob menawarkan sejumlah format iklan yang berbeda, sehingga Anda dapat memilih format yang paling sesuai dengan pengalaman pengguna aplikasi Anda.

Untuk developer SwiftUI, ikuti panduan SwiftUI kami.

Unit iklan banner menampilkan iklan persegi panjang yang menempati sebagian tata letak aplikasi. Iklan ini dapat otomatis diperbarui setelah jangka waktu tertentu. Artinya, pengguna melihat iklan baru secara berkala, meskipun mereka tetap berada di layar yang sama di aplikasi Anda. Unit iklan banner juga merupakan format iklan yang paling mudah untuk diterapkan.

Menerapkan iklan banner

Interstisial

Unit iklan interstisial menampilkan iklan satu halaman penuh di aplikasi. Tempatkan iklan ini pada jeda dan transisi yang alami di antarmuka aplikasi Anda, seperti setelah menyelesaikan level di aplikasi game.

Menerapkan iklan interstisial

Native

Iklan native adalah iklan yang memungkinkan Anda menyesuaikan cara aset seperti judul dan panggilan untuk bertindak ditampilkan 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 menetapkan reward yang berbeda untuk unit iklan yang berbeda, serta menentukan nilai reward dan item yang diterima pengguna.

Menerapkan iklan reward

Interstisial reward

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

Berbeda dengan iklan reward, pengguna tidak diwajibkan untuk memilih melihat interstisial reward.

Sebagai ganti permintaan keikutsertaan pada iklan reward, interstisial reward memerlukan layar pengantar yang mengumumkan reward dan memberikan pengguna kesempatan untuk memilih tidak ikut jika mereka menginginkannya.

Menerapkan iklan interstisial reward

Pembukaan aplikasi

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

Menerapkan iklan layar pembuka aplikasi