Geçiş reklamları

Geçiş reklamları, kullanıcı tarafından kapatılana kadar uygulamanın arayüzünü kaplayan tam ekran reklamlardır. Genellikle bir uygulamanın akışındaki doğal geçiş noktalarında (ör. etkinlikler veya bir oyundaki seviyeler arasındaki duraklama sırasında) gösterilir. Bir uygulama geçiş reklamı gösterdiğinde kullanıcı, reklama dokunup hedefine gitmeyi veya reklamı kapatıp uygulamaya dönmeyi seçebilir. Örnek olay

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

Ön koşullar

Devam etmeden önce Google Mobile Ads SDK ayarlarını yapın.

Her zaman test reklamlarıyla test edin

Uygulamalarınızı oluştururken ve test ederken yayındaki üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Bu koşula uymamanız halinde 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. Kodlama, test ve hata ayıklama sırasında bu kimliği kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirmeyi unutmayın.

Google Mobile Ads SDK test reklamları hakkında ayrıntılı bilgi için Test reklamlarını etkinleştirme başlıklı makaleyi inceleyin.

Uygulama

Geçiş reklamlarını entegre etmenin temel adımları şunlardır:

  1. Reklam yükleyin.
  2. Geri aramalar için kaydolun.
  3. Reklamı görüntüleme

Reklam yükleme

Reklam yükleme işlemi, GADInterstitialAd sınıfındaki 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 çağırmalar için kaydolma

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

Swift

interstitial?.fullScreenContentDelegate = self

SwiftUI

interstitialAd?.fullScreenContentDelegate = self

Objective-C

self.interstitial.fullScreenContentDelegate = self;

GADFullScreenContentDelegate protokolü, reklam başarıyla veya başarısız bir şekilde sunulduğunda ve kapatıldığında 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ının gösterildikten sonra tekrar gösterilemeyeceği anlamına gelir. En iyi uygulama, GADFullScreenContentDelegate üzerindeki adDidDismissFullScreenContent: yönteminde başka bir geçiş reklamı yüklemektir. Böylece, bir önceki geçiş reklamı kapatılır kapatılmaz bir sonraki geçiş reklamı yüklenmeye başlar.

Reklamı gösterme

Geçiş reklamları, uygulamanın akışındaki doğal duraklamalar sırasında gösterilmelidir. Oyun seviyeleri arasındaki geçişler veya kullanıcının bir görevi tamamlamasından sonraki anlar buna iyi birer örnektir.

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()
        }))

Geçiş reklamını görünüm modelinden 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 sonucu verir. 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 kesinti beklediğinden, deneyimini kesintiye uğratmadan geçiş reklamı sunmak kolaydır. Uygulamanızın iş akışının hangi noktalarında geçiş reklamları göstereceğinizi ve kullanıcının nasıl yanıt verebileceğini göz önünde bulundurun.
Geçiş reklamı gösterirken işlemi duraklatmayı unutmayın.
Metin, resim, video ve daha fazlası gibi çeşitli geçiş reklamı türleri vardır. Uygulamanız bir geçiş reklamı gösterdiğinde, reklamın bazı kaynaklardan yararlanabilmesi için uygulamanın bu kaynakları kullanmayı askıya alması önemlidir. Örneğin, geçiş reklamı göstermek için çağrı 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şleyicide sesleri çalmaya devam edebilirsiniz. Ayrıca, reklam gösterilirken yoğun hesaplama gerektiren görevleri (ör. oyun döngüsü) geçici olarak durdurmayı düşünebilirsiniz. Bu sayede kullanıcı, yavaş veya yanıt vermeyen grafikler ya da kesintili videolarla karşılaşmaz.
Yükleme için yeterli süre tanıyın.
Geçiş reklamlarını uygun bir zamanda göstermek kadar, kullanıcıların bu reklamların yüklenmesini beklemek zorunda kalmamasını sağlamak da önemlidir. Reklamı göstermeyi planladığınız zamandan önce yüklemek, uygulamanızın reklam gösterme zamanı geldiğinde tamamen yüklenmiş bir geçiş reklamına sahip olmasını sağlayabilir.
Kullanıcıyı reklama boğmayın.
Uygulamanızdaki geçiş reklamlarının sıklığını artırmak gelirinizi artırmanın muhteşem bir yolu gibi görünse de kullanıcı deneyimini kötüleştirebilir ve tıklama oranlarını düşürebilir. Kullanıcıların, uygulamanızı kullanmaktan keyif alamayacakları kadar sık kesintiye uğramadığından emin olun.
Geçiş reklamını göstermek için yükleme tamamlama geri çağırma işlevini kullanmayın.
Bu durum, kullanıcı deneyimini olumsuz etkileyebilir. 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

Geçiş reklamı örneklerinin tamamını tercih ettiğiniz dilde görüntüleyin:

Mobil Reklamlar Atölyesi eğitim videoları

Başarı öyküleri

Sonraki adımlar