Geçiş reklamları, bir uygulamanın arayüzünü kaplayana kadar görünen tam ekran reklamlardır. kullanıcı tarafından kapatıldı. Genellikle doğal geçiş noktalarında gösterilir. Örneğin, etkinlikler arasında veya aradaki duraklama sırasında bir oyunda hangi seviyelerde. Uygulamada geçiş reklamı gösterildiğinde seçim kullanıcıya sahiptir reklama dokunup hedefine devam etmesini veya reklamı kapatıp geri dönmesini uygulamaya geri dönelim. Örnek olay.
Bu kılavuzda, geçiş reklamlarını bir iOS uygulamasına nasıl entegre edeceğiniz gösterilmektedir.
Ön koşullar
- Google Mobile Ads SDK'sı 8.0.0 veya üzeri.
- Başlangıç kılavuzunu tamamlayın.
Her zaman test reklamlarıyla test etme
Uygulamalarınızı oluştururken ve test ederken, uygulamalarınızın yanı sıra üretim reklamlarıdır. Aksi takdirde hesabınız askıya alınabilir.
Test reklamlarını yüklemenin en kolay yolu, özel test reklam birimi kimliğimizi kullanmaktır
iOS geçiş reklamları için:
/21775744923/example/interstitial
Her istek için test reklamları döndürecek şekilde özel olarak yapılandırılmıştır. kod yazma, test etme ve hata ayıklama sırasında kendi uygulamalarınızda kullanabileceğiniz ücretsiz bir araçtır. Sadece uygulamanızı yayınlamadan önce bunu kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.
Mobile Ads SDK'sının test reklamlarının işleyiş şekli hakkında daha fazla bilgi için Test Reklamları.
Uygulama
Geçiş reklamlarını entegre etmek için başlıca adımlar şunlardır:
- Bir reklam yükleyin.
- Geri çağırma işlevleri için kaydolun.
- Reklamı gösterin ve ödül etkinliğini gerçekleştirin.
Reklam yükle
Reklamın yüklenmesi,
load(adUnitID:request)
yöntemini
GAMInterstitialAd
sınıf.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GAMInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
interstitial = try await GAMInterstitialAd.load(
withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
Hızlı Kullanıcı Arayüzü
import GoogleMobileAds
class InterstitialViewModel: NSObject, GADFullScreenContentDelegate {
private var interstitialAd: GADInterstitialAd?
func loadAd() async {
do {
interstitialAd = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
interstitialAd?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) GAMInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GAMRequest *request = [GAMRequest request];
[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
request:request
completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
return;
}
self.interstitial = ad;
}];
}
Geri çağırma işlevleri için kaydolun
Sunum etkinlikleriyle ilgili bildirim almak için şunu uygulamanız gerekir:
GADFullScreenContentDelegate
protokolünü ve bunu
Döndürülen reklamın fullScreenContentDelegate
özelliği. İlgili içeriği oluşturmak için kullanılan
GADFullScreenContentDelegate
protokolü, reklamın şu durumlar için geri çağırmaları işler:
ne zaman sunum yaptığını ve ne zaman reddedildiğini belirler. Aşağıdakiler
kodu, protokolün nasıl uygulanacağını ve reklama nasıl atanacağını gösterir:
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController, GADFullScreenContentDelegate {
private var interstitial: GAMInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
interstitial = try await GAMInterstitialAd.load(
withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
interstitial?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
/// Tells the delegate that the ad failed to present full screen content.
func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
print("Ad did fail to present full screen content.")
}
/// Tells the delegate that the ad will present full screen content.
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("Ad will present full screen content.")
}
/// Tells the delegate that the ad dismissed full screen content.
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("Ad did dismiss full screen content.")
}
}
Hızlı Kullanıcı Arayüzü
Döndürülen reklama fullScreenContentDelegate
özelliğini atayın:
interstitialAd?.fullScreenContentDelegate = self
Protokolü uygulayın:
func adDidRecordImpression(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func ad(
_ ad: GADFullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called")
}
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
// Clear the interstitial ad.
interstitialAd = nil
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController () <GADFullScreenContentDelegate>
@property(nonatomic, strong) GAMInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GAMRequest *request = [GAMRequest request];
[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
request:request
completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
return;
}
self.interstitial = ad;
self.interstitial.fullScreenContentDelegate = self;
}];
}
/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
NSLog(@"Ad did fail to present full screen content.");
}
/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
NSLog(@"Ad will present full screen content.");
}
/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
NSLog(@"Ad did dismiss full screen content.");
}
GAMInterstitialAd
tek kullanımlık bir nesnedir. Bu
bir geçiş reklamı gösterildikten sonra tekrar gösterilemez. En iyi
başka bir geçiş reklamı yüklemektir.
GADFullScreenContentDelegate
üzerinde adDidDismissFullScreenContent:
yöntemi.
diğer geçiş reklamının hemen yüklenmeye başlaması için
kapatıldı.
Reklamı görüntüleme
Geçiş reklamları, bir uygulamanın akışındaki doğal duraklamalar sırasında görüntülenmelidir. Bir oyunun seviyeleri arasında veya kullanıcının bir görevi tamamladıktan sonra geçmesi iyi bir örnektir.
Swift
guard let interstitial = interstitial else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)
Hızlı Kullanıcı Arayüzü
Reklamın ne zaman gösterileceğini belirlemek için görünümdeki kullanıcı arayüzü etkinliklerini dinleyin.
var body: some View {
// ...
}
.onChange(of: countdownTimer.isComplete) { newValue in
showGameOverAlert = newValue
}
.alert(isPresented: $showGameOverAlert) {
Alert(
title: Text("Game Over"),
message: Text("You lasted \(countdownTimer.countdownTime) seconds"),
dismissButton: .cancel(
Text("OK"),
action: {
viewModel.showAd()
}))
Görüntüleme modelinden geçiş reklamını sunun:
func showAd() {
guard let interstitialAd = interstitialAd else {
return print("Ad wasn't ready.")
}
interstitialAd.present(fromRootViewController: nil)
}
Objective-C
if (self.interstitial) {
// The UIViewController parameter is nullable.
[self.interstitial presentFromRootViewController:nil];
} else {
NSLog(@"Ad wasn't ready");
}
En iyi uygulamalar
- Geçiş reklamlarının uygulamanız için doğru reklam türü olup olmadığını düşünün.
- Geçiş reklamları, doğal geçiş noktalarına sahip uygulamalarda en iyi sonucu verir. Uygulamada bir görevin tamamlanması (ör. resim paylaşma veya bir bir puan oluşturuyor. Çünkü kullanıcı çalışmasını kesintiye uğratmadan bir geçiş reklamı sahip olacaksınız. Uygulamanızın iş akışının hangi noktalarında dönüşüm gerçekleştireceğinizi Görüntülü geçiş reklamlarını ve kullanıcının nasıl yanıt verebileceğini gösterir.
- Bir geçiş reklamı görüntülerken işlemi duraklatmayı unutmayın.
- Birkaç farklı geçiş reklamı türü vardır: metin, resim,
video ve daha fazlası. Uygulamanızda bir
aynı zamanda reklamın kullanıcıya uygun şekilde yayınlanmasını sağlamak için bazı kaynakları
bunlardan yararlanabilirsiniz. Örneğin, bir
geçiş reklamında, uygulamanız tarafından üretilen tüm ses çıkışlarını duraklattığınızdan emin olun.
Sesleri çalmaya devam etmek için:
adDidDismissFullScreenContent:
etkinlik işleyici; kullanıcı etkileşimi bitirdiğinde çağrılır gösterilecek. Ayrıca, yoğun hesaplama işlemi varsa bunları geçici olarak durdurun. görevleri (oyun döngüsü gibi) yapmayın. Bu sayede kullanıcının yavaş veya yanıt vermeyen grafik ya da takılma sorunu yaşamaması videosunu izleyin. - Yükleme süresi için yeterli süre tanıyın.
- Geçiş reklamlarını doğru zamanda uygun bir zamanda, kullanıcının web sitenizi ziyaret etmek için bunların yüklenmesini bekleyin. Gösterimi planlamadan önce reklamı önceden yükleme hazır olduğunda uygulamanızın tam olarak yüklenmiş bir geçiş reklamının olmasını sağlayabilir. sıra geldi.
- Kullanıcıyı reklama boğmayın.
- Uygulamanızda geçiş reklamlarının sıklığını artırmak çok iyi bir yol gibi görünse de, kullanıcı deneyimini ve daha düşük tıklama oranları sağlar. Kullanıcıların sürekli olarak uygulamanızdan artık keyif alamamasına neden olan durumlarla karşılaşabilirsiniz.
- Geçiş reklamını göstermek için yükleme tamamlama geri çağırmasını kullanmayın.
- Bu durum, kötü bir kullanıcı deneyimine yol açabilir. Bunun yerine, reklamı yüklemeden önce
göstermeniz gerekir. Ardından
canPresentFromRootViewController:error:
yöntemini kontrol edin hazır olup olmadığını öğrenmek içinGAMInterstitialAd
üzerinde gösteriliyor.
GitHub'daki örnekler
Tercih ettiğiniz dilde geçiş reklamı örneklerinin tamamını görüntüleyin:
Sonraki adımlar
- Reklam hedefleme ve geçiş reklamı yönergelerine uyun.
- Kullanıcı gizliliği hakkında daha fazla bilgi edinin.