Ad Placement API berisi dua fungsi: adBreak()
dan adConfig()
,
yang ditentukan di namespace global berikut. Sebagian besar argumen adalah fungsi yang Anda berikan yang memungkinkan Anda menangani langkah-langkah utama dalam mempersiapkan dan menampilkan iklan:
adBreak({
type: '<type>', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and un-mute the sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before completion
adViewed: () => {}, // Ad was viewed and closed
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
adConfig({
preloadAdBreaks: 'on|auto', // Should ads always be preloaded
sound: 'on|off', // Is sound currently enabled within the game
});
Fungsi ini digunakan untuk menempatkan dan mengonfigurasi iklan dalam game Anda. Argumen yang ditampilkan di atas adalah satu-satunya argumen valid yang dapat diteruskan ke fungsi ini. Berbagai jenis iklan memerlukan subset argumen ini yang berbeda seperti yang dijelaskan di bawah.
adBreak()
adalah fungsi utama untuk menempatkan iklan dalam game Anda. Fungsi ini menentukan
penempatan iklan dan menggunakan objek yang disebut konfigurasi penempatan yang menentukan
semua yang diperlukan untuk menampilkan iklan.
Fungsi adBreak()
menentukan penempatan tempat iklan dapat ditampilkan.
Apakah iklan benar-benar ditampilkan atau tidak bergantung pada faktor-faktor seperti berikut:
- Jenis penempatan iklan yang Anda nyatakan
- Apakah iklan ini berada di awal pertandingan? Di antara level? Pada saat pemain telah menjeda game?
- Apakah ada iklan yang sesuai untuk pemain saat ini
- Apakah iklan ini relevan bagi mereka?
- Apakah sesuai dengan setelan izin dan privasi datanya?
- Jumlah iklan yang baru-baru ini dilihat pemutar
- Setelan kontrol—misalnya, frekuensi iklan yang telah Anda konfigurasi untuk game ini
- Baik sebagai petunjuk dalam tag, atau,
- Dalam AdSense—perhatikan bahwa kontrol yang tersedia di AdSense akan berkembang seiring waktu.
Jenis iklan yang ditampilkan juga bergantung pada faktor serupa.
Perhatikan bahwa panggilan ke adBreak()
mungkin tidak menampilkan iklan sama sekali. Tempat ini hanya menyatakan
tempat iklan dapat ditampilkan.
Hal ini berbeda dengan API tradisional yang kodenya selalu mengetahui apakah iklan tersedia, dan Anda memutuskan dalam game apakah akan menayangkannya atau tidak. Pendekatan ini, yaitu membiarkan Ad Placement API memutuskan apakah iklan ditampilkan di penempatan tertentu atau tidak, adalah pola yang terkadang disebut sebagai "inversi kontrol".
Alasan kami mengalihkan Games API ke model ini adalah pertama, model ini memperpendek kode yang harus Anda tulis dalam game. Kedua, hal ini mempermudah penayangan penempatan yang mematuhi kebijakan dengan pengalaman pengguna yang luar biasa, yang pada gilirannya memungkinkan kami menayangkan beberapa format berperforma terbaik kepada penerbit game. Terakhir, proses penempatan iklan di game Anda dipisahkan dengan lebih jelas dari keputusan monetisasi tentang jenis dan jumlah iklan yang akan ditampilkan.
Kami ingin Anda dapat mengubah setelan monetisasi dan mengontrol pengalaman pengguna tanpa harus mengedit dan merilis versi baru game Anda, awalnya dengan menentukan petunjuk dalam tag. Namun, pada rilis mendatang, kami akan dapat menyediakan kontrol langsung di frontend AdSense dan AdMob.
Interstisial
Iklan interstisial adalah iklan layar penuh yang dapat ditampilkan pada momen yang berbeda dalam game Anda, seperti saat pemain memulai game, atau setelah pemain menyelesaikan level. Iklan akan menjeda game, menutupi seluruh dokumen, dan pemain dapat memilih untuk mengklik iklan (dalam hal ini, iklan akan ditampilkan di tab browser yang berbeda) atau menutupnya sehingga mereka dapat melanjutkan game.
Untuk menempatkan iklan interstisial, isi kolom berikut dalam konfigurasi penempatan:
adBreak({
type: 'start', // The type of this placement
name: 'game_started', // A descriptive name for this placement
beforeAd: beforeAd, // Prepare for the ad. Mute and pause the game flow
afterAd: afterAd, // Resume the game and un-mute the sound
adBreakDone: breakDone, // Always called (if provided) even if an ad didn't show
});
Argumen type
diperlukan, dan sebaiknya Anda selalu memberi nama penempatan
Anda. Panggilan balik lainnya bersifat opsional.
Urutan panggilan
Tinjau urutan panggilan untuk iklan interstisial.
Deskripsi
Interstisial – Urutan panggilan mendetail | |
---|---|
Game H5 Anda | Ad Placement API |
Inisialisasi & pemuatan iklan | |
Menjalankan game | |
Peluang yang baik untuk menampilkan iklan...
|
|
Ada iklan yang tersedia dan sekarang adalah waktu yang tepat untuk menayangkannya... ← |
|
Game dijeda, membisukan suara, dan bersiap menampilkan iklan.
|
|
Ad Placement API merender iklan interstisial. Pemutar dapat mengklik iklan (yang ditampilkan di tab baru). Mereka harus menutup iklan untuk melanjutkan bermain game. | |
← afterAd() dipanggil jika iklan telah ditampilkan
|
|
Game akan melanjutkan dan mengaktifkan suara. | |
← adBreakDone() adBreakDone() selalu dipanggil (meskipun iklan tidak ditampilkan) |
|
Game mencatat analisis tentang penempatan ini. |
Catatan
adBreak()
adalah fungsi asinkron yang langsung ditampilkan.- Jika tidak ada iklan yang ditampilkan untuk penempatan, tidak ada callback yang dipanggil—yaitu, tidak ada
beforeAd()
,afterAd()
, yang dipanggil. - Untuk memastikan game Anda tidak terus dieksekusi saat iklan ditampilkan, gunakan callback
beforeAd()
untuk membisukan suara dan menjeda game. beforeAd()
bersifat sinkron, Ad Placement API tidak akan menampilkan iklan hingga ditampilkan.- Mulai ulang game dan aktifkan kembali suara saat Anda menerima panggilan
afterAd()
call. - Jika disediakan,
adBreakDone()
selalu dipanggil meskipun iklan tidak ditampilkan di penempatan ini. - Panggilan
adBreak()
saat iklan lain ditampilkan akan gagal dan peringatan akan ditampilkan di konsol JavaScript.
Pre-roll
Preroll adalah iklan interstisial yang ditampilkan sebelum game memuat UI-nya. Ini adalah hal pertama yang dilihat pemain saat membuka game Anda. Karena iklan pra-putar
terjadi sangat awal saat halaman dimuat, dan game Anda belum ditampilkan—panggilan
biasa untuk menjeda dan membisukan game Anda tidak diperlukan. Sebagai gantinya, Anda menggunakan callback
adBreakDone()
untuk mengurutkan awal game dengan
iklan—yaitu, merender UI dan mulai memutar suara. Hanya satu preroll yang dapat dipicu untuk setiap pemuatan halaman.
Urutan panggilan
Panggilan untuk preroll dilakukan sangat awal saat halaman dimuat. Karena game Anda belum merender UI-nya pada saat ini, Anda tidak boleh meneruskan callback beforeAd()
dan afterAd()
. Sebagai gantinya, gunakan callback adBreakDone()
untuk memulai
game setelah penempatan, karena callback ini dijamin akan dipanggil meskipun tidak ada iklan.
Memanggil kode berikut di awal logika game akan menempatkan iklan pra-putar. UI Anda tidak boleh dirender sebelum kode ini dipanggil.
// Game must not be running.
// Nothing in the game area should be clickable
adBreak({
type: ‘preroll',
adBreakDone: startGame,
})
Preroll – Urutan panggilan mendetail | |
---|---|
Game H5 Anda | Ad Placement API |
Inisialisasi API & pra-peng-cache-an iklan dimulai | |
Sedang berjalan, tetapi belum dimulai dan belum menampilkan UI | |
|
|
Ad Placement API selesai melakukan inisialisasi dan memuat iklan. Jika ada iklan, iklan tersebut akan ditampilkan. Pemutar dapat mengklik iklan (yang ditampilkan di tab baru). Mereka harus menutupnya agar game dapat dimulai. |
|
← |
|
UI game dirender ke layar dan pemain kini dapat berinteraksi dengannya. Game dapat menggunakan objek |
Catatan
- Pre-roll akan selalu mencoba memuat iklan terlebih dahulu:
adConfig(preloadAds: ‘on')
tidak diperlukan dengan prerol.
- Seperti penempatan iklan lainnya, pre-roll dapat menampilkan atau tidak menampilkan iklan.
beforeAd()
danafterAd()
tidak boleh diteruskan ke preroll.- Karena iklan pre-roll berjalan sebelum game Anda dimulai, Anda tidak perlu menjeda atau membisukan suara game.
- Jika Anda meneruskan
beforeAd()
atauafterAd()
dengan preroll, panggilan akan gagal dan error akan dicatat ke konsol JavaScript.
- Preroll otomatis menunggu Ad Placement API diinisialisasi dan
memuat iklan terlebih dahulu:
- Namun, ada waktu tunggu (2 detik) yang mencegah panggilan tertunda
tanpa batas waktu. Hal ini memastikan bahwa
adBreakDone()
dipanggil tepat waktu dan game Anda dimulai. adBreakDone()
selalu dipanggil meskipun tidak ada iklan.
- Namun, ada waktu tunggu (2 detik) yang mencegah panggilan tertunda
tanpa batas waktu. Hal ini memastikan bahwa
- Sebaiknya gunakan iklan pra-putar untuk menempatkan iklan sebelum game Anda dimulai.
- Atau, Anda dapat menggunakan callback
onReady()
keadConfig()
sebagai mekanisme untuk mengurutkan logika game dengan inisialisasi API dan memuat iklan terlebih dahulu.
- Atau, Anda dapat menggunakan callback
Iklan reward
Iklan reward memungkinkan Anda memberikan reward kepada pemain berupa item dalam aplikasi jika mereka memilih untuk menonton iklan. Sementara interstisial bersifat tidak diizinkan, iklan ditampilkan kepada pemain dan pemain dapat memilih untuk menutupnya. Iklan reward bersifat keikutsertaan. Pemain memilih apakah dan kapan mereka ingin menonton iklan untuk menerima reward.
Tidak seperti iklan interstisial, tempat pemain dapat menutup iklan kapan saja, untuk menerima reward, mereka harus menonton iklan selama durasi minimum (yang dapat bervariasi bergantung pada materi iklan yang ditampilkan).
Karena iklan reward bersifat opsional bagi pemain, iklan ini memerlukan integrasi yang lebih mendalam ke dalam alur game Anda. Anda harus menyediakan fungsi untuk merender dialog reward dalam game, dan untuk mengalokasikan reward kepada pemain jika mereka menonton iklan.
Reward tidak boleh memiliki nilai di luar aplikasi Anda, tidak boleh memiliki (atau dapat dengan mudah ditukar dengan) nilai uang, dan tidak boleh dapat dijual atau ditukar dengan barang dan layanan, dan Anda tidak boleh mendorong pemain untuk mengklik iklan. Lihat draf kebijakan untuk iklan interstisial dan iklan reward untuk mengetahui detail selengkapnya.
Karena reward bersifat opsional bagi pemain, Anda dapat menambahkannya di mana pun yang masuk akal dalam game dan dapat menggunakannya selain iklan interstisial. Seperti interstisial, penempatan ini adalah peluang untuk menampilkan iklan reward. Ad Placement API hanya akan memanggil kode Anda jika iklan reward akan benar-benar ditawarkan pada titik tertentu dalam game Anda.
Sekali lagi, tujuannya di sini adalah memungkinkan Anda mengintegrasikan game dengan Ad Placement API satu kali, lalu seiring waktu menggunakan kontrol baik di tag, atau di AdSense, Anda dapat mengubah campuran iklan yang diaktifkan secara tepat–tanpa harus mengode ulang dan merilis ulang game.
Jenis penempatan yang diberi reward selalu 'reward'
dan semua kolom dalam
konfigurasi penempatan dapat digunakan.
adBreak({
type: 'reward', // The type of this placement
name: '<name>', // A descriptive name for this placement
beforeAd: () => {}, // Prepare for the ad. Mute and pause the game flow
afterAd: () => {}, // Resume the game and re-enable sound
beforeReward: (showAdFn) => {}, // Show reward prompt (call showAdFn() if clicked)
adDismissed: () => {}, // Player dismissed the ad before it finished.
adViewed: () => {}, // Player watched the ad–give them the reward.
adBreakDone: (placementInfo) => {}, // Always called (if provided) even if an ad didn't show
});
Fungsi baru utama adalah beforeReward()
yang merupakan pemicu yang memberi sinyal bahwa Anda harus merender dialog reward, dan adViewed()
yang dipanggil saat pemain berhasil melihat iklan, sehingga Anda dapat mengalokasikan reward mereka.
Anda dapat menentukan penempatan iklan reward sebagai berikut:
adBreak({
type: 'reward',
name: 'new_life_reward_1',
beforeAd: pauseGame,
afterAd: restartGame,
beforeReward: showRewardPrompt,
adDismissed: adDismissed,
adViewed: adViewed,
adBreakDone: breakDone,
});
Iklan reward dimulai dengan perintah dalam game yang menawarkan reward kepada pemain jika mereka menonton iklan.
Urutan panggilan untuk iklan reward
Deskripsi
Iklan reward – Urutan panggilan mendetail | |
---|---|
Game H5 Anda | Ad Placement API |
Inisialisasi & pra-peng-cache-an iklan | |
Menjalankan game | |
|
|
Ada iklan yang tersedia, jadi mulai penempatan iklan reward. ← |
|
Game merender perintah reward. Hal ini memberi pemain kesempatan untuk mendapatkan reward dengan menonton iklan. Lebih dari satu jenis reward dapat ditawarkan (misalnya, nyawa baru atau koin emas). Pemain dapat mengklik perintah reward, menutupnya, atau mengabaikannya. Jika mereka mengklik perintah, game akan menyimpan jenis reward yang mereka minta dan memanggil Jika tidak, jika perintah reward ditutup atau diabaikan, tidak akan terjadi apa pun hingga Anda melakukan panggilan lain ke |
|
|
|
← beforeAd() |
|
Game dijeda, suara dimatikan, dan bersiap menampilkan iklan
|
|
API menampilkan iklan. Iklan ini memiliki tombol tutup dan hitung mundur berapa banyak waktu yang tersisa dalam iklan. | |
JIKA pemutar menutup iklan... | |
← adDismissed() |
|
Pemain menutup iklan dan game tidak memberikan reward. | |
ELSE pemutar menonton iklan sampai selesai... | |
← adViewed() |
|
Pemain menonton iklan hingga selesai dan game memberikan reward. (Biasanya dengan menyetel beberapa status game yang kemudian diambil saat game dimulai ulang dengan panggilan ke afterAd() di bawah).
|
|
Setelah iklan ditonton atau ditutup... | |
← afterAd() dipanggil jika iklan telah ditampilkan |
|
Game akan melanjutkan dan mengaktifkan suara. | |
← adBreakDone() adBreakDone() selalu dipanggil (meskipun iklan tidak ditampilkan) |
|
Game mencatat analisis tentang penempatan ini. |
Catatan
adBreak()
adalah fungsi asinkron yang langsung ditampilkan.- Jika tidak ada iklan yang ditampilkan untuk penempatan, tidak ada callback yang dipanggil—artinya, tidak ada
beforeAd()
,beforeReward()
yang dipanggil. - Untuk memastikan game Anda tidak terus dieksekusi saat iklan ditampilkan, gunakan callback
beforeAd()
untuk membisukan suara dan menjeda game. beforeAd()
bersifat sinkron, Ad Placement API tidak akan menampilkan iklan hingga ditampilkan.- Mulai ulang game dan aktifkan kembali suara saat Anda menerima panggilan
afterAd()
call. - Jika disediakan,
adBreakDone()
selalu dipanggil meskipun iklan tidak ditampilkan di penempatan ini. - Panggilan
adBreak()
saat iklan lain ditampilkan akan gagal dan peringatan akan ditampilkan di konsol JavaScript.