Geçiş reklamları

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

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

Ön koşullar

Her zaman test reklamlarıyla test etme

Uygulamalarınızı oluştururken ve test ederken canlı, üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Aksi takdirde hesabınız askıya alınabilir.

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

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

Mobile Ads SDK'sının test reklamlarının nasıl çalıştığı hakkında daha fazla bilgi için Test Reklamları bölümüne bakın.

Uygulama

Geçiş reklamlarını entegre etmek için ana adımlar şunlardır:

  1. Reklam yükleyin.
  2. Geri çağırmalara kaydolun.
  3. Reklamı göstermek ve ödül etkinliğini yönetmek.

Reklam yükle

Reklam yükleme işlemi, GADInterstitialAd sınıfındaki statik loadWithAdUnitID:request:completionHandler: yöntemi kullanılarak tamamlanır. Yükleme yöntemi için reklam birimi kimliğiniz, bir GADRequest nesnesi ve reklam yükleme başarılı veya başarısız olduğunda çağrılan bir tamamlama işleyicisi gerekir. Yüklenen GADInterstitialAd nesnesi, tamamlama işleyicide bir parametre olarak sağlanır. Aşağıdaki örnekte, ViewController sınıfınızda bir GADInterstitialAd öğesinin nasıl yükleneceği gösterilmektedir.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID: "ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                      }
    )
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController

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

Geri çağırmalara kaydol

Sunu etkinlikleriyle ilgili bildirim almak için GADFullScreenContentDelegate protokolünü uygulamanız ve döndürülen reklamın fullScreenContentDelegate özelliğine atamanız gerekir. GADFullScreenContentDelegate protokolü, reklam başarılı veya başarısız bir şekilde sunulduğunda ve kapatıldığında geri çağırmaları işler. Aşağıdaki kod, protokolün nasıl uygulanacağını ve reklama nasıl atanacağını gösterir:

Swift

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()
    let request = GADRequest()
    GADInterstitialAd.load(withAdUnitID: "ca-app-pub-3940256099942544/4411468910",
                                request: request,
                      completionHandler: { [self] ad, error in
                        if let error = error {
                          print("Failed to load interstitial ad with error: \(error.localizedDescription)")
                          return
                        }
                        interstitial = ad
                        interstitial?.fullScreenContentDelegate = self
                      }
    )
  }

  /// 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.")
  }
}

Objective-C

@interface ViewController ()<GADFullScreenContentDelegate>

@property(nonatomic, strong) GADInterstitialAd *interstitial;

@end

@implementation ViewController
- (void)viewDidLoad {
  [super viewDidLoad];
  GADRequest *request = [GADRequest request];
  [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
                              request: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;
  }];
}

/// 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.");
}

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

Reklamı görüntüleme

Geçiş reklamları, uygulama akışındaki doğal duraklamalar sırasında gösterilmelidir. Oyunun seviyeleri arasındakiler veya kullanıcı bir görevi tamamladıktan sonra gösterilen geçiş reklamları. Bunu UIViewController işlemindeki işlem yöntemlerinden birini kullanarak nasıl yapacağınızı gösteren bir örneği aşağıda bulabilirsiniz:

Swift

@IBAction func doSomething(_ sender: Any) {
  if interstitial != nil {
    interstitial.present(fromRootViewController: self)
  } else {
    print("Ad wasn't ready")
  }
}

Objective-C

- (IBAction)doSomething:(id)sender {
  ...
  if (self.interstitial) {
    [self.interstitial presentFromRootViewController:self];
  } 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 olan uygulamalarda en iyi sonucu verir. Uygulama içinde bir görev tamamlamak (ör. resim paylaşmak veya oyundaki bir seviyeyi tamamlamak) böyle bir nokta oluşturur. Kullanıcı işlemde ara 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ını görüntüleyeceğinizi ve kullanıcının ne tür tepki verebileceğini göz önünde bulundurmaya dikkat edin.
Geçiş reklamı görüntülerken işlemi duraklatmayı unutmayın.
Metin, resim, video ve daha birçok farklı türde geçiş reklamı bulunur. Uygulamanız geçiş reklamı görüntülediğinde bazı kaynakların kullanımını askıya alarak reklamın bunlardan yararlanabilmesini sağlar. Örneğin, geçiş reklamı görüntüleme çağrısı yaptığınızda uygulamanız tarafından üretilen tüm ses çıkışlarını duraklattığınızdan emin olun. Sesleri, kullanıcı reklamla etkileşimi bitirdiğinde çağrılacak olan adDidDismissFullScreenContent: etkinlik işleyicide oynatmaya devam edebilirsiniz. Ayrıca, reklam gösterilirken yoğun hesaplama görevlerini (oyun döngüsü gibi) geçici olarak durdurabilirsiniz. Bu, kullanıcının yavaş veya yanıt vermeyen grafikler ya da takılma sorunu yaşamamasını sağlar.
Yeterli yükleme süresi tanıyın.
Geçiş reklamlarını uygun zamanda gösterdiğinizden emin olmanın yanı sıra kullanıcının bu reklamların yüklenmesini beklemek zorunda kalmamasını sağlamanız da önemlidir. Reklamı, göstermek istemediğiniz zaman önceden yüklemeniz, gösterim zamanı geldiğinde uygulamanızın tam olarak yüklenmiş bir geçiş reklamının olmasını sağlar.
Kullanıcıyı reklamlarla doldurmayın.
Uygulamanızda geçiş reklamlarının sıklığını artırmak geliri artırmanın iyi bir yolu gibi görünse de kullanıcı deneyimini ve tıklama oranlarını düşürebilir. Kullanıcıların uygulama deneyiminizin keyfini çıkaramayacak kadar sık kesinti yaşamadığı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 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

Mobile Ads Garage eğitim videoları

Başarı öyküleri

Sonraki adımlar