Geçiş reklamları

Platform seçin: Android iOS Unity Flutter

Geçiş reklamları, kullanıcı tarafından kapatılana kadar bir uygulamanın arayüzünü kaplayan tam ekran reklamlardır. Genellikle bir uygulamanın akışındaki doğal geçiş noktalarında (ör. işlemler arasında veya oyun seviyeleri arasındaki duraklatmalar sırasında) gösterilir. Bir uygulama geçiş reklamı gösterdiğinde kullanıcı, reklama dokunup hedef sayfaya gitmeyi veya reklamı kapatıp uygulamaya dönmeyi seçebilir. Vaka çalışması.

Bu kılavuzda, geçiş reklamlarını iOS uygulamasına nasıl entegre edeceğiniz gösterilmektedir.

Ön koşullar

Her zaman test reklamlarıyla test yapın

Uygulamalarınızı oluşturup test ederken canlı yayınlanan üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bu işlemi yapmazsanız hesabınız askıya alınabilir.

Test reklamlarını yüklemenin en kolay yolu, iOS geçiş reklamları için özel test reklam birimi kimliğimizi kullanmaktır:
ca-app-pub-3940256099942544/4411468910

Bu kimlik, her istek için test reklamları döndürecek şekilde özel olarak yapılandırılmıştır ve kodlama, test etme ve hata ayıklama sırasında kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olun.

Mobile Ads SDK'sının test reklamlarının çalışma şekli hakkında daha fazla bilgi için Test Reklamları başlıklı makaleyi inceleyin.

Uygulama

Geçiş reklamlarını entegre etmenin başlıca adımları şunlardır:

  1. Reklam yükleyin.
  2. Geri arama için kaydolun.
  3. Reklamı gösterin.

Reklam yükleme

Reklam yükleme işlemi, GADInterstitialAd sınıfında load(adUnitID:request) yöntemi kullanılarak gerçekleştirilir.

Swift

fileprivate func loadInterstitial() async {
  do {
    interstitial = try await InterstitialAd.load(
      with: "ca-app-pub-3940256099942544/4411468910", request: Request())
    interstitial?.fullScreenContentDelegate = self
  } catch {
    print("Failed to load interstitial ad with error: \(error.localizedDescription)")
  }
}

SwiftUI

import GoogleMobileAds

class InterstitialViewModel: NSObject, FullScreenContentDelegate {
  private var interstitialAd: InterstitialAd?

  func loadAd() async {
    do {
      interstitialAd = try await InterstitialAd.load(
        with: "ca-app-pub-3940256099942544/4411468910", request: Request())
      interstitialAd?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }

Objective-C

[GADInterstitialAd
     loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
              request:[GADRequest request]
    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
      if (error) {
        NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
        return;
      }
      self.interstitial = ad;
      self.interstitial.fullScreenContentDelegate = self;
    }];

Geri arama için kaydolma

Sunum etkinlikleriyle ilgili bildirim almak için döndürülen reklamın GADFullScreenContentDelegate to thefullScreenContentDelegate özelliğini atamanız gerekir:

Swift

interstitial?.fullScreenContentDelegate = self

SwiftUI

interstitialAd?.fullScreenContentDelegate = self

Objective-C

self.interstitial.fullScreenContentDelegate = self;

GADFullScreenContentDelegate protokolü, reklamın başarıyla veya başarısızlıkla sunulduğu ve kapatıldığı zamanlardaki geri çağırmaları işler. Aşağıdaki kodda, protokolün nasıl uygulanacağı gösterilmektedir:

Swift

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func ad(_ ad: FullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
  print("\(#function) called with error: \(error.localizedDescription)")
  // Clear the interstitial ad.
  interstitial = nil
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
  // Clear the interstitial ad.
  interstitial = nil
}

SwiftUI

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func ad(
  _ ad: FullScreenPresentingAd,
  didFailToPresentFullScreenContentWithError error: Error
) {
  print("\(#function) called")
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
  // Clear the interstitial ad.
  interstitialAd = nil
}

Objective-C

- (void)adDidRecordImpression:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidRecordClick:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)ad:(id<GADFullScreenPresentingAd>)ad
    didFailToPresentFullScreenContentWithError:(NSError *)error {
  NSLog(@"%s called with error: %@", __PRETTY_FUNCTION__, error.localizedDescription);
  // Clear the interstitial ad.
  self.interstitial = nil;
}

- (void)adWillPresentFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adWillDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
  // Clear the interstitial ad.
  self.interstitial = nil;
}

GADInterstitialAd tek kullanımlık bir nesnedir. Bu, bir geçiş reklamı gösterildikten sonra tekrar gösterilemeyeceği anlamına gelir. En iyi uygulama olarak, GADFullScreenContentDelegate üzerinde adDidDismissFullScreenContent: yönteminde başka bir geçiş reklamı yüklemeniz önerilir. Böylece, önceki geçiş reklamı kapatılır kapatılmaz sonraki geçiş reklamı yüklenmeye başlar.

Reklamı görüntüleme

Geçiş reklamları, uygulamanın akışındaki doğal duraklamalar sırasında gösterilmelidir. Bir oyunun seviyeleri arasındaki geçişler veya kullanıcının bir görevi tamamlaması bu duraklamalara örnek olarak verilebilir.

Swift

ad.present(from: self!)

SwiftUI

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ünüm modelinden geçiş reklamını sunun:

func showAd() {
  guard let interstitialAd = interstitialAd else {
    return print("Ad wasn't ready.")
  }

  interstitialAd.present(from: nil)
}

Objective-C

[self.interstitial presentFromRootViewController:self];

En iyi uygulamalar

Geçiş reklamlarının uygulamanız için doğru reklam türü olup olmadığını değerlendirin.
Geçiş reklamları, doğal geçiş noktaları olan uygulamalarda en iyi performansı gösterir. Uygulama içinde resim paylaşma veya oyun seviyesini bitirme gibi bir görevin tamamlanması, bu tür bir nokta oluşturur. Kullanıcı, işlemde bir ara beklediği için deneyimini kesintiye uğratmadan bir geçiş reklamı göstermek kolaydır. Uygulamanızın iş akışında hangi noktalarda geçiş reklamları göstereceğinizi ve kullanıcının nasıl yanıt vereceğini göz önünde bulundurduğunuzdan emin olun.
Geçiş reklamı gösterirken işlemi duraklatmayı unutmayın.
Metin, resim ve video reklamlar gibi birkaç farklı türde geçiş reklamı kullanabilirsiniz. Uygulamanız bir geçiş reklamı gösterdiğinde, reklamın bu kaynaklardan yararlanabilmesi için bazı kaynakların kullanımını da askıya aldığından emin olmanız önemlidir. Örneğin, bir geçiş reklamı gösterme çağrısı yaptığınızda uygulamanız tarafından üretilen tüm ses çıkışlarını duraklattığınızdan emin olun. Kullanıcı reklamla etkileşimi tamamladığında çağrılacak olan adDidDismissFullScreenContent: etkinlik işleyicisinde sesleri çalmaya devam edebilirsiniz. Ayrıca, reklam gösterilirken yoğun hesaplama görevlerini (ör. oyun döngüsü) geçici olarak durdurmayı da düşünebilirsiniz. Bu sayede kullanıcının yavaş veya yanıt vermeyen grafikler ya da kesintili video deneyimi yaşaması önlenir.
Yeterli yükleme süresi tanıyın.
Geçiş reklamlarını uygun bir zamanda gösterdiğinizden emin olmanız gerektiği gibi, kullanıcının bu reklamların yüklenmesini beklememesi de önemlidir. Reklamı göstermeyi planlamadan önce önceden yüklemek, uygulamanızın bir geçiş reklamı gösterme zamanı geldiğinde tamamen yüklenmiş bir geçiş reklamına hazır olmasını sağlayabilir.
Kullanıcıyı reklamlarla boğmayın.
Uygulamanızdaki geçiş reklamlarının sıklığını artırmak geliri artırmak için iyi bir yöntem gibi görünse de kullanıcı deneyimini olumsuz etkileyebilir ve tıklama oranlarını düşürebilir. Kullanıcıların, uygulamanızı kullanmaktan keyif alamayacak kadar sık kesintiye uğramadığından emin olun.
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 neden olabilir. Bunun yerine, reklamı göstermeniz gerekmeden önce önceden yükleyin. Ardından, gösterilmeye hazır olup olmadığını öğrenmek için GADInterstitialAd üzerinde canPresentFromRootViewController:error: yöntemini kontrol edin.

Ek kaynaklar

GitHub'daki örnekler

Tam geçiş reklamı örneklerini tercih ettiğiniz dilde görüntüleyin:

Mobile Ads Garage video eğitimleri

Başarı öyküleri

Sonraki adımlar