Bu kılavuz, AdMob ile bir iOS uygulamasından para kazanmak isteyen ve Firebase kullanmayan yayıncılara yöneliktir. Uygulamanıza Firebase'i dahil etmeyi planlıyorsanız (veya kullanmayı düşünüyorsanız) bu kılavuzun Firebase ile AdMob sürümünü inceleyin.
Google Mobile Ads SDK'sını bir uygulamaya entegre etmek, reklam görüntüleme ve gelir elde etmenin ilk adımıdır. SDK'yı entegre ettikten sonra desteklenen reklam biçimlerinden birini veya daha fazlasını uygulamaya devam edebilirsiniz.
Ön koşullar
- Xcode 15.3 veya sonraki bir sürümü kullanın
- iOS 12.0 veya sonraki sürümleri hedefleme
- Önerilen: Bir AdMob hesabı oluşturun ve bir 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 edilen)
SDK'yı bir iOS projesine aktarmanın en basit yolu CocoaPods'u kullanmaktır. Projenizin Podfile'ını açın ve bu satırı uygulamanızın hedefine ekleyin:
pod 'Google-Mobile-Ads-SDK'
Ardından komut satırında şu komutu çalıştırın:
pod install --repo-update
CocoaPods'u kullanmaya yeni başladıysanız Podfiles oluşturma ve kullanma hakkında bilgi için resmi belgelerini inceleyin.
Swift Paket Yöneticisi
Google Mobile Ads SDK'sı, 9.0.0 sürümünden itibaren Swift Package Manager'ı destekler. Swift paketini içe aktarmak için şu adımları uygulayın:
Xcode'da Dosya > Paket Ekle... seçeneğine giderek Google Mobile Ads Swift Paketini yükleyin.
Görüntülenen istemde Google Mobile Ads Swift Package GitHub deposunu arayın:
https://github.com/googleads/swift-package-manager-google-mobile-ads.git
Kullanmak istediğiniz Google Mobile Ads Swift Paketi sürümünü seçin. Yeni projeler için Bir Sonraki Ana Sürüm'ü kullanmanızı öneririz.
İşiniz bittiğinde Xcode, paket bağımlılıklarınızı çözümlemeye ve bunları arka planda indirmeye başlar. Paket bağımlılıklarının nasıl ekleneceği hakkında daha fazla bilgi için Apple'ın makalesine bakın.
Manuel indirme
Google Mobile Ads SDK'sını ve aşağıdaki çerçeveleri
Embed & Sign
Xcode projenize indirin:GoogleMobileAds.xcframework
UserMessagingPlatform.xcframework
Projenizin derleme ayarlarında Diğer Bağlayıcı İşaretleri'ne
-ObjC
bağlayıcı işaretini ekleyin:
Info.plist dosyanızı güncelleyin
İki anahtar eklemek için uygulamanızın Info.plist
dosyasını güncelleyin:
AdMob app ID found in the AdMob UIdize değerine sahip bir
GADApplicationIdentifier
anahtarı.Google (
cstr6suwn9.skadnetwork
) içinSKAdNetworkIdentifier
değerlerine sahip birSKAdNetworkItems
anahtarı ve bu değerleri Google'a sağlayan belirli üçüncü taraf alıcılar.
Snippet'i tamamla
<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>
Henüz AdMob hesabı oluşturmadıysanız ve uygulama kaydetmediyseniz şimdi tam zamanı.
Gerçek bir uygulamada, örnek uygulama kimliğini gerçekAdMob uygulama kimliğinizle değiştirin. Hello World uygulamasında SDK ile yalnızca deneme yapıyorsanız örnek kimliği kullanabilirsiniz.
Mobile Ads SDK'sını başlatma
Reklamları yüklemeden önce, GADMobileAds.sharedInstance
üzerinde startWithCompletionHandler:
yöntemini çağırın. Bu yöntem SDK'yı başlatır ve başlatma tamamlandığında (veya 30 saniyelik zaman aşımından sonra) bir tamamlama işleyicisi geri çağırır. Bu işlemin yalnızca bir kez yapılması
gerekir. İdeal olarak uygulama lansmanı sırasında. startWithCompletionHandler:
numaralı telefonu en kısa sürede aramalısınız.
Aşağıda, AppDelegate
öğenizde startWithCompletionHandler:
yöntemini nasıl çağıracağınıza ilişkin bir örnek 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çin
Mobile Ads SDK'sı içe aktarılıp başlatıldı. Artık bir reklam uygulamaya hazırsınız. AdMob , bir dizi farklı reklam biçimi sunar. Böylece uygulamanızın kullanıcı deneyimine en uygun olanı seçebilirsiniz.
SwiftUI geliştiricileri için SwiftUI kılavuzumuzu izleyin.
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. Diğer bir deyişle, kullanıcılar uygulamanızda aynı ekranda kalsalar bile düzenli aralıklarla yeni bir reklamı görürler. Aynı zamanda, uygulanması en basit reklam biçimidir.
Geçişli
Geçiş reklam birimleri, uygulamanızda tam sayfa reklamlar gösterir. Bu reklamları, bir oyun uygulamasında seviye atlanması gibi doğal aralara ve geçişlere yerleştirin.
Yerel biçim
Yerel reklamlar, başlıklar ve harekete geçirici mesajlar gibi öğelerin uygulamalarınızda sunulma şeklini özelleştirebileceğiniz reklamlardır. Reklamın stilini kendiniz belirleyerek, zengin bir kullanıcı deneyimine katkıda bulunabilecek doğal ve rahatsız edici olmayan reklam sunumları oluşturabilirsiniz.
Ödül olarak verildi
Ödüllü reklam birimleri, kullanıcıların jeton, ek can veya puan gibi uygulama içi ödüller kazanmak için oyun oynamasına, anket yanıtlamasına veya video izlemesine olanak tanır. Farklı reklam birimleri için farklı ödüller ayarlayabilir ve kullanıcının aldığı ödül değerlerini ve öğelerini belirtebilirsiniz.
Ödüllü geçiş reklamı
Ödüllü geçiş reklamı, doğal uygulama geçişlerinde otomatik olarak görünen reklamlar için jeton veya ekstra can gibi ödüller sunmanıza olanak tanıyan yeni bir teşvik 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 devre dışı bırakma seçeneği sunan bir giriş 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 üzerindedir.