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:
- Tambahkan metode ke
AppDelegate
untuk memuat dan menampilkanGADAppOpenAd
. - Mendeteksi peristiwa latar depan aplikasi.
- Menangani callback presentasi.
Prasyarat
- Ikuti petunjuk penyiapan di panduan Memulai.
- Mengetahui cara mengonfigurasi perangkat sebagai perangkat pengujian.
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
Langkah berikutnya
Pelajari privasi pengguna lebih lanjut.