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
- Önerilen: AdMob hesabı oluşturun ve uygulama kaydedin.
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:
Xcode'da Dosya > Paket Ekle...'ye giderek Google Mobil Reklamlar Swift paketini yükleyin.
Görünen istemde, Google Mobile Ads Swift Paketi GitHub deposunu arayın:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
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
Google Mobile Ads SDK'sını ve
Embed & Sign
aşağıdaki çerçeveleri Xcode projenize indirin:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
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:
AdMob app ID found in the AdMob UIdeğerine sahip bir dize değeri içeren
GADApplicationIdentifier
anahtarı.Google (
cstr6suwn9.skadnetwork
) ve bu değerleri Google'a sağlayan belirli üçüncü taraf alıcılar içinSKAdNetworkIdentifier
değerleri içeren birSKAdNetworkItems
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
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.
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).
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.
Ö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ü 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.