Başla

Bu kılavuz, iOS uygulamasından AdMob ile para kazanmak isteyen ve Firebase kullanmayan yayıncılara yöneliktir. Uygulamanıza Firebase'i dahil etmeyi planlıyorsanız (veya bunu düşünüyorsanız) bu kılavuzun Firebase ile AdMob sürümüne bakın.

Google Mobile Ads SDK'sını uygulamaya entegre etmek, reklam göstermenin ve gelir elde etmenin ilk adımıdır. SDK'yı entegre ettikten sonra desteklenen reklam biçimlerinden birini veya daha fazlasını uygulamaya başlayabilirsiniz.

Ön koşullar

  • Xcode 15.3 veya sonraki bir sürümü kullanın
  • iOS 12.0 veya sonraki sürümleri hedefleyin

Mobile Ads SDK'sını içe aktarma

Google Mobile Ads SDK'sını içe aktarmak için aşağıdaki yöntemlerden birini kullanın.

CocoaPods (tercih edilir)

SDK'yı iOS projesine içe aktarmanın en kolay yolu CocoaPods'u kullanmaktır. Projenizin Podfile dosyasını açın ve aşağıdaki satırı uygulamanızın hedefine ekleyin:

pod 'Google-Mobile-Ads-SDK'

Ardından komut satırından şunu çalıştırın:

pod install --repo-update

CocoaPods'u yeni kullanmaya başladıysanız Pod dosyalarını oluşturma ve kullanma hakkında bilgi edinmek için resmi belgelerine bakın.

Swift Package Manager

Google Mobile Ads SDK'sı, 9.0.0 sürümünden itibaren Swift Package Manager'ı destekler. Swift paketini içe aktarmak için aşağıdaki adımları uygulayın:

  1. Xcode'da Dosya > Paket Ekle...'ye giderek Google Mobil Reklamlar Swift paketini yükleyin.

  2. Görünen istemde, Google Mobile Ads Swift Paketi GitHub deposunu arayın:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  3. Kullanmak istediğiniz Google Mobile Ads Swift paketinin sürümünü seçin. Yeni projeler için Sonraki Büyük Sürüme Kadar seçeneğini kullanmanızı öneririz.

İşlemi tamamladığınızda Xcode, paket bağımlılıklarınıza çözüm bulmaya ve bunları arka planda indirmeye başlar. Paket bağımlılıkları ekleme hakkında daha fazla bilgi için Apple'ın makalesine göz atın.

Manuel indirme

  1. Google Mobile Ads SDK'sını ve Embed & Sign aşağıdaki çerçeveleri Xcode projenize indirin:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  2. Projenizin derleme ayarlarında:

    • /usr/lib/swift yolunu Çalışma Yolu Arama Yolları'na ekleyin.
    • -ObjC bağlayıcı işaretini Diğer Bağlayıcı İşaretleri'ne ekleyin.

Info.plist dosyanızı güncelleme

Uygulamanızın Info.plist dosyasını iki anahtar eklemek için güncelleyin:

  1. AdMob app ID found in the AdMob UIdeğerine sahip bir dize değeri içeren GADApplicationIdentifier anahtarı.

  2. Google (cstr6suwn9.skadnetwork) ve bu değerleri Google'a sağlayan belirli üçüncü taraf alıcılar için SKAdNetworkIdentifier değerleri içeren bir SKAdNetworkItems anahtarı.

Snippet'i tamamlama

<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>

Henüz AdMob hesabı oluşturmadıysanız ve uygulama kaydettirmediyseniz bunu yapmanın tam zamanı.

Gerçek bir uygulamada örnek uygulama kimliğini gerçekAdMob uygulama kimliğinizle değiştirin. SDK'yı yalnızca Merhaba Dünya uygulamasında denemek istiyorsanız örnek kimliği kullanabilirsiniz.

Mobile Ads SDK'sını ilk kullanıma hazırlayın

Reklamları yüklemeden önce GADMobileAds.sharedInstance üzerinde startWithCompletionHandler: yöntemini çağırın. Bu yöntem, SDK'yı başlatır ve ilk kullanıma hazırlama işlemi tamamlandıktan sonra (veya 30 saniyelik zaman aşımının ardından) bir tamamlama işleyicisi çağırır. Bu işlemin ideal olarak uygulamanın lansmanında bir kez yapılması gerekir. startWithCompletionHandler: numaralı telefonu en kısa sürede aramanız gerekir.

AppDelegate'unuzda startWithCompletionHandler: yönteminin nasıl çağrılacağına dair bir örnek aşağıda verilmiştir:

Örnek AppDelegate (alıntı)

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

Reklam biçimi seçme

Mobile Ads SDK'sı içe aktarılıp başlatıldı. Artık reklam uygulamaya hazırsınız. AdMob , uygulamanızın kullanıcı deneyimine en uygun olanı seçebilmeniz için çeşitli reklam biçimleri sunar.

SwiftUI geliştiricileri için SwiftUI kılavuzumuzu inceleyin.

Banner reklam birimleri, uygulama düzeninin bir kısmını kaplayan dikdörtgen reklamlar gösterir. Belirli bir süre sonra otomatik olarak yenilenebilirler. Bu, uygulamanızda aynı ekranda kalsalar bile kullanıcıların düzenli aralıklarla yeni bir reklam görecekleri anlamına gelir. Ayrıca, uygulanması en basit reklam biçimidir.

Banner reklamları uygulama

Geçiş reklamı

Geçiş reklamı birimleri, uygulamanızda tam sayfa reklamlar gösterir. Bu reklam birimlerini uygulamanızın arayüzündeki doğal bekleme ve geçiş alanlarına yerleştirin (ör. bir oyun uygulamasında seviye atlanmasından sonra).

Geçiş reklamları uygulama

Yerel biçim

Yerel reklamlar, başlık ve harekete geçirici mesaj gibi öğelerin uygulamalarınızda sunulma şeklini özelleştirebileceğiniz reklamlardır. Reklamı kendiniz biçimlendirerek zengin bir kullanıcı deneyimine katkıda bulunabilecek doğal ve rahatsız edici olmayan reklam sunumları oluşturabilirsiniz.

Doğal reklamları uygulama

Ödüllü

Ödüllü reklam birimlerinde kullanıcılar jeton, ek can veya puan toplamak için oyun oynayabilir, anket yapabilir veya video izleyebilir. Farklı reklam birimleri için farklı ödüller belirleyebilir ve kullanıcının alacağı ödül değerlerini ve öğeleri belirtebilirsiniz.

Ödüllü reklamları uygulama

Ödüllü geçiş reklamı

Ödüllü geçiş reklamı, doğal uygulama geçişleri sırasında otomatik olarak görünen reklamlar için para veya ek can gibi ödüller sunmanızı sağlayan yeni ve teşvik edici bir reklam biçimidir.

Ödüllü reklamların aksine kullanıcıların ödüllü geçiş reklamı görüntülemeyi etkinleştirmesi gerekmez.

Ödüllü reklamlardaki etkinleştirme istemi yerine ödüllü geçiş reklamlarında ödülü bildiren ve kullanıcılara dilediklerinde bu seçeneği devre dışı bırakma şansı sunan bir tanıtım ekranı gerekir.

Ödüllü geçiş reklamlarını uygulama

Uygulama açılışı

Uygulama açılışı, kullanıcılar uygulamanızı açtığında veya uygulamanıza geri döndüğünde görünen bir reklam biçimidir. Reklam, yükleme ekranının üzerinde çıkar.

Uygulama açılış reklamlarını uygulama