Iklan di Layar Pembuka Aplikasi

Panduan ini ditujukan bagi penayang yang mengintegrasikan iklan di layar pembuka aplikasi.

Iklan di layar pembuka aplikasi adalah format iklan khusus yang ditujukan bagi penayang yang ingin memonetisasi layar pemuatan aplikasi mereka. Iklan di layar pembuka aplikasi dapat ditutup oleh pengguna Anda kapan saja. Iklan di layar pembuka aplikasi dapat ditampilkan saat pengguna menampilkan aplikasi Anda di latar depan.

Iklan di layar pembuka aplikasi otomatis menampilkan area branding kecil sehingga pengguna tahu bahwa mereka berada di aplikasi Anda. Berikut adalah contoh tampilan iklan di layar pembuka aplikasi:

Pada tingkat tinggi, berikut adalah langkah-langkah yang diperlukan untuk menerapkan iklan di layar pembuka aplikasi:

  1. Tambahkan metode ke AppDelegate untuk memuat dan menampilkan GADAppOpenAd.
  2. Mendeteksi peristiwa latar depan aplikasi.
  3. Menangani callback presentasi.

Prasyarat

Selalu uji dengan iklan percobaan

Saat membuat dan menguji aplikasi, pastikan Anda menggunakan iklan pengujian, bukan iklan produksi aktif. Jika Anda tidak melakukannya, akun Anda dapat ditangguhkan.

Cara termudah untuk memuat iklan pengujian adalah menggunakan ID unit iklan pengujian khusus kami untuk iklan di layar pembuka aplikasi:

ca-app-pub-3940256099942544/5662855259

Konfigurasi ini telah dikonfigurasi secara khusus untuk menampilkan iklan pengujian untuk setiap permintaan, dan Anda bebas untuk menggunakannya di aplikasi Anda sendiri saat melakukan coding, menguji, dan men-debug. Cukup pastikan Anda menggantinya dengan ID unit iklan Anda sendiri sebelum memublikasikan aplikasi.

Untuk informasi selengkapnya tentang cara kerja iklan pengujian SDK Iklan Seluler, lihat Iklan Pengujian.

Mengubah delegasi aplikasi

Iklan di layar pembuka aplikasi ditampilkan saat aplikasi diluncurkan atau saat pengguna membawa aplikasi Anda ke latar depan. Untuk memastikan iklan siap ditampilkan saat pengguna membuka aplikasi, Anda perlu memiliki referensi ke iklan yang siap digunakan.

Artinya, Anda harus melakukan pramuat GADAppOpenAd sebelum perlu menampilkan iklan. Dengan demikian, iklan di layar pembuka aplikasi Anda siap ditampilkan saat aplikasi dibuka lagi. Untuk memfasilitasi memiliki satu referensi ke iklan, tambahkan properti dan metode berikut ke AppDelegate.h:

#import <GoogleMobileAds/GoogleMobileAds.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property(strong, nonatomic) UIWindow* window;
@property(strong, nonatomic) GADAppOpenAd* appOpenAd;

- (void)requestAppOpenAd;
- (void)tryToPresentAd;

@end

Perlu diperhatikan bahwa Anda harus membuat permintaan dan menampilkan metode di luar class AppDelegate, sehingga Anda dapat memanggilnya dari UISceneDelegate untuk perangkat yang menjalankan iOS 13 dan yang lebih baru. Hal ini akan dibahas secara lebih mendetail nanti.

Di AppDelegate.m, tambahkan metode requestAppOpenAd:

- (void)requestAppOpenAd {
  self.appOpenAd = nil;
  [GADAppOpenAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/5662855259"
                         request:[GADRequest request]
                     orientation:UIInterfaceOrientationPortrait
               completionHandler:^(GADAppOpenAd *_Nullable appOpenAd, NSError *_Nullable error) {
                 if (error) {
                   NSLog(@"Failed to load app open ad: %@", error);
                   return;
                 }
                 self.appOpenAd = appOpenAd;
               }];
}

Metode ini membuat permintaan untuk memuat GADAppOpenAd baru. Jika berhasil, properti akan ditetapkan pada AppDelegate sehingga iklan siap digunakan saat pengguna mengalihkan aplikasi ke latar depan.

Pengaturan orientasi wajib diisi. Jika orientasi ditetapkan ke UIInterfaceOrientationUnknown, GADAppOpenAd akan mengasumsikan orientasi potret. Jika ingin mendesain tata letak lanskap, pastikan Anda menentukan bahwa Anda memerlukan orientasi lanskap dengan meneruskan UIInterfaceOrientationLandscapeLeft atau UIInterfaceOrientationLandscapeRight ke metode permintaan.

Selanjutnya, tambahkan metode untuk menampilkan iklan dari AppDelegate.

- (void)tryToPresentAd {
  if (self.appOpenAd) {
    UIViewController *rootController = self.window.rootViewController;
    [self.appOpenAd presentFromRootViewController:rootController];
  } else {
    // If you don't have an ad ready, request one.
    [self requestAppOpenAd];
  }
}

Metode ini memeriksa keberadaan iklan, dan jika ada dan dapat ditampilkan dari pengontrol tampilan root, metode ini akan menampilkan iklan di atas konten yang ada. Jika tidak ada iklan yang tersedia, metode ini akan membuat permintaan baru.

Mendeteksi peristiwa latar depan aplikasi

Saat pengguna memasuki aplikasi Anda untuk pertama kalinya, kecil kemungkinan Anda akan memiliki referensi iklan yang siap digunakan. Sebagai gantinya, Anda harus mengandalkan metode tryToPresentAd yang ditentukan di atas yang akan menampilkan iklan jika tersedia, atau meminta iklan baru. Metode ini harus dipanggil setiap kali aplikasi Anda muncul di latar depan. Hal ini dapat dilakukan dengan mengganti metode applicationDidBecomeActive: di AppDelegate Anda:

- (void)applicationDidBecomeActive:(UIApplication *)application {
  [self tryToPresentAd];
}

Menangani callback presentasi

Saat aplikasi menampilkan iklan di layar pembuka aplikasi, Anda harus mengandalkan GADFullScreenContentDelegate untuk menangani peristiwa presentasi tertentu. Secara khusus, Anda dapat meminta iklan di layar pembuka aplikasi berikutnya setelah iklan pertama diselesaikan.

Lakukan perubahan berikut pada file AppDelegate.h Anda:

#import <GoogleMobileAds/GoogleMobileAds.h>
#import <UIKit/UIKit.h>
@interface AppDelegate
    : UIResponder <UIApplicationDelegate, GADFullScreenContentDelegate>

@property(strong, nonatomic) UIWindow* window;
@property(strong, nonatomic) GADAppOpenAd* appOpenAd;

- (void)requestAppOpenAd;
- (void)tryToPresentAd;

@end

Kemudian, di file AppDelegate.m, tambahkan baris berikut:

- (void)requestAppOpenAd {
  self.appOpenAd = nil;
  [GADAppOpenAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/5662855259"
                         request:[GADRequest request]
                     orientation:UIInterfaceOrientationPortrait
               completionHandler:^(GADAppOpenAd *_Nullable appOpenAd, NSError *_Nullable error) {
                 if (error) {
                   NSLog(@"Failed to load app open ad: %@", error);
                   return;
                 }
                 self.appOpenAd = appOpenAd;
                 self.appOpenAd.fullScreenContentDelegate = self;
               }];
}

#pragma mark - GADFullScreenContentDelegate

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
    didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
  NSLog(@"didFailToPresentFullScreenContentWithError");
  [self requestAppOpenAd];

}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
  NSLog(@"adWillPresentFullScreenContent");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
  NSLog(@"adDidDismissFullScreenContent");
  [self requestAppOpenAd];
}
...

Callback ini menangani berbagai peristiwa dalam siklus proses iklan di Layar Pembuka Aplikasi.

Pertimbangkan masa berlaku iklan

Untuk memastikan Anda tidak menampilkan iklan yang masa berlakunya sudah habis, Anda dapat menambahkan metode ke delegasi aplikasi yang memeriksa waktu berlalu sejak referensi iklan Anda dimuat.

Di AppDelegate.h, tambahkan properti NSDate:

#import <GoogleMobileAds/GoogleMobileAds.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property(strong, nonatomic) UIWindow* window;
@property(strong, nonatomic) GADAppOpenAd* appOpenAd;
@property(weak, nonatomic) NSDate *loadTime;

- (void)requestAppOpenAd;
- (void)tryToPresentAd;

@end

Anda kemudian dapat menambahkan metode yang menampilkan true jika kurang dari jumlah jam tertentu telah berlalu sejak iklan dimuat.

Di AppDelegate.m, tambahkan metode berikut:

- (BOOL)wasLoadTimeLessThanNHoursAgo:(int)n {
  NSDate *now = [NSDate date];
  NSTimeInterval timeIntervalBetweenNowAndLoadTime = [now timeIntervalSinceDate:self.loadTime];
  double secondsPerHour = 3600.0;
  double intervalInHours = timeIntervalBetweenNowAndLoadTime / secondsPerHour;
  return intervalInHours < n;
}

Langkah berikutnya adalah menetapkan properti loadTime saat iklan dimuat:

- (void)requestAppOpenAd {
  self.appOpenAd = nil;
  [GADAppOpenAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/5662855259"
                         request:[GADRequest request]
                     orientation:UIInterfaceOrientationPortrait
               completionHandler:^(GADAppOpenAd *_Nullable appOpenAd, NSError *_Nullable error) {
                 if (error) {
                   NSLog(@"Failed to load app open ad: %@", error);
                   return;
                 }
                 self.appOpenAd = appOpenAd;
                 self.appOpenAd.fullScreenContentDelegate = self;
                 self.loadTime = [NSDate date];
               }];
}

Terakhir, pastikan Anda memeriksa validitas referensi iklan Anda sebelum mencoba menampilkan iklan:

- (void)tryToPresentAd {
  if (self.appOpenAd && [self wasLoadTimeLessThanNHoursAgo:4]) {
    UIViewController *rootController = self.window.rootViewController;
    [self.appOpenAd presentFromRootViewController:rootController];
  } else {
    // If you don't have an ad ready, request one.
    [self requestAppOpenAd];
  }
}

Cold start dan layar pemuatan

Dokumentasi di atas mengasumsikan bahwa Anda hanya menampilkan iklan di layar pembuka aplikasi saat pengguna latar depan aplikasi Anda saat aplikasi ditangguhkan di memori. "Cold start" terjadi saat aplikasi Anda diluncurkan, tetapi sebelumnya tidak ditangguhkan di memori.

Contoh cold start adalah saat pengguna membuka aplikasi Anda untuk pertama kalinya. Dengan cold start, Anda tidak akan memiliki iklan di layar pembuka aplikasi yang sebelumnya dimuat, yang siap langsung ditampilkan. Penundaan antara saat Anda meminta iklan dan menerima iklan kembali dapat menciptakan situasi ketika pengguna dapat menggunakan aplikasi Anda secara singkat sebelum dikejutkan dengan iklan di luar konteks. Hal ini harus dihindari karena merupakan pengalaman pengguna yang buruk.

Cara yang lebih disukai untuk menggunakan iklan di layar pembuka aplikasi saat cold start adalah dengan menggunakan layar pemuatan untuk memuat aset game atau aplikasi, dan hanya menampilkan iklan dari layar pemuatan. Jika aplikasi Anda telah selesai dimuat dan telah mengarahkan pengguna ke konten utama aplikasi, jangan tampilkan iklan.

Praktik terbaik

Google membuat iklan di layar pembuka aplikasi untuk membantu Anda memonetisasi layar pemuatan aplikasi, tetapi penting untuk selalu mengingat praktik terbaik agar pengguna senang menggunakan aplikasi Anda. Pastikan untuk:

  • Tunggu untuk menampilkan iklan di layar pembuka aplikasi pertama hingga pengguna menggunakan aplikasi beberapa kali.
  • Tampilkan iklan di layar pembuka aplikasi selama pengguna tidak menunggu aplikasi Anda dimuat.
  • Jika Anda memiliki layar pemuatan di bawah iklan di layar pembuka aplikasi, dan layar pemuatan Anda selesai dimuat sebelum iklan ditutup, sebaiknya tutup layar pemuatan Anda di metode adDidDismissFullScreenContent.

Contoh lengkap di GitHub

Swift Objective-C

Langkah berikutnya

Pelajari privasi pengguna lebih lanjut.