Ad Placement API berisi dua fungsi: adBreak()
dan adConfig()
, yang ditentukan dalam namespace global berikut. Sebagian besar argumen adalah fungsi yang Anda berikan yang memungkinkan Anda menangani langkah-langkah utama untuk menyiapkan 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 subkumpulan argumen yang berbeda ini seperti yang dijelaskan di bawah.
adBreak()
adalah fungsi utama untuk menempatkan iklan dalam game Anda. Ini menentukan
penempatan iklan dan mengambil objek yang disebut konfigurasi penempatan yang menentukan
semua yang diperlukan untuk menampilkan iklan.
Fungsi adBreak()
menentukan penempatan tempat iklan dapat ditampilkan.
Benar-benar tampilnya iklan bergantung pada beberapa faktor seperti berikut:
- Jenis penempatan iklan yang Anda deklarasikan
- Apakah iklan ini di awal game? Di antara level? Saat pemain menjeda game?
- Apakah iklan yang cocok ada untuk pemain saat ini
- Apakah iklan ini relevan bagi mereka?
- Apakah setelan privasi dan izin data mereka konsisten?
- Jumlah iklan yang dilihat pemain baru-baru ini
- Setelan kontrol—misalnya, frekuensi iklan yang telah Anda konfigurasikan untuk game ini
- Baik sebagai petunjuk di 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. Ini hanya mendeklarasikan
tempat iklan dapat ditampilkan.
Ini berbeda dengan API tradisional yang memungkinkan kode Anda selalu mengetahui apakah iklan tersedia, dan Anda memutuskan di dalam game apakah akan menampilkannya atau tidak. Pendekatan untuk membiarkan Ad Placement API memutuskan apakah iklan ditampilkan di penempatan tertentu merupakan pola yang terkadang disebut sebagai "inversi kontrol".
Alasan kami mentransisikan API game ke model ini adalah pertama, karena mempersingkat kode yang harus Anda tulis dalam game. Kedua, ini mempermudah penayangan penempatan yang mematuhi kebijakan dengan pengalaman pengguna yang hebat, yang pada akhirnya memungkinkan kami menayangkan beberapa format berperforma tertinggi kepada penayang game. Terakhir, ini memisahkan proses menempatkan iklan di game dengan lebih baik 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, awalnya dengan menentukan petunjuk di tag. Namun dalam rilis mendatang, kami dapat memberikan kontrol langsung di frontend AdSense dan AdMob.
Interstisial
Iklan interstisial adalah iklan layar penuh yang dapat ditampilkan pada berbagai momen dalam game, seperti saat pemain memulai game, atau setelah pemain menyelesaikan level. Proses ini menjeda game, menutupi seluruh dokumen, dan pemain dapat memilih untuk mengklik iklan (dalam hal ini iklan ditampilkan di tab lain browser) atau menutupnya sehingga iklan dapat dilanjutkan dengan 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 selalu beri nama penempatan. Callback lainnya bersifat opsional.
Urutan panggilan
Tinjau urutan panggilan untuk iklan interstisial.
Deskripsi
Interstisial – Urutan panggilan mendetail | |
---|---|
Game H5 Anda | API Penempatan Iklan |
Inisialisasi & amp; pramuat iklan | |
Menjalankan game | |
Peluang yang bagus untuk menampilkan iklan...
|
|
Ada iklan yang tersedia dan sekarang adalah waktu yang tepat untuk menampilkannya... ← |
|
Game dijeda, membisukan suara, dan bersiap untuk menampilkan iklan.
|
|
Ad Placement API merender iklan interstisial. Pemutar dapat mengklik iklan (yang ditampilkan di tab baru). Mereka harus menutup iklan agar dapat terus bermain game. | |
← afterAd() dipanggil jika iklan telah ditampilkan
|
|
Game akan melanjutkan dan membunyikan audio. | |
← adBreakDone() adBreakDone() selalu dipanggil (meskipun iklan tidak ditampilkan) |
|
Game mencatat analisis tentang penempatan ini. |
Catatan
adBreak()
adalah fungsi asinkron yang segera ditampilkan.- Jika tidak ada iklan yang ditampilkan untuk penempatan, tidak ada callback yang dipanggil, yaitu tidak satu pun dari
beforeAd()
,afterAd()
, yang akan dipanggil. - Untuk memastikan game Anda tidak terus dijalankan saat iklan
ditampilkan, gunakan callback
beforeAd()
untuk membisukan suara dan menjeda game. beforeAd()
bersifat sinkron, Ad Placement API tidak akan menampilkan iklan sampai ditampilkan.- Mulai ulang game dan bunyikan suara saat Anda menerima panggilan
afterAd()
. - Jika disediakan,
adBreakDone()
selalu dipanggil meskipun iklan tidak ditampilkan dalam penempatan ini. - Pemanggilan
adBreak()
saat iklan lain ditampilkan akan gagal dan peringatan akan ditampilkan di konsol JavaScript.
Pre-roll
Preroll adalah interstisial yang ditampilkan sebelum game memuat UI-nya. Hal ini
adalah hal pertama yang dilihat pemain saat membuka game Anda. Karena preroll
terjadi di awal pemuatan halaman, dan game Anda belum ditampilkan—panggilan
biasanya untuk menjeda dan membisukan game 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 pre-roll dilakukan sejak awal pemuatan halaman. Karena game Anda belum
merender UI-nya pada tahap ini, Anda tidak boleh meneruskan callback beforeAd()
dan
afterAd()
. Sebagai gantinya, gunakan callback adBreakDone()
untuk memulai
game Anda setelah penempatan, karena callback ini dijamin akan dipanggil meskipun
tidak ada iklan.
Memanggil kode berikut, di awal logika game Anda akan menempatkan iklan preroll. 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 | API Penempatan Iklan |
Inisialisasi API & amp; caching awal iklan dimulai | |
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
- Preroll akan selalu berupaya melakukan pramuat iklan:
- Tidak perlu memanggil
adConfig(preloadAds: ‘on')
dengan preroll.
- Tidak perlu memanggil
- Seperti penempatan iklan lainnya, preroll dapat menampilkan iklan atau tidak.
beforeAd()
danafterAd()
tidak boleh diteruskan ke preroll.- Karena iklan preroll berjalan sebelum game dimulai, Anda tidak perlu menjeda atau menonaktifkan suara game.
- Jika Anda meneruskan
beforeAd()
atauafterAd()
dengan preroll, panggilan akan gagal dan error akan dicatat ke dalam konsol JavaScript.
- Preroll otomatis menunggu Ad Placement API untuk melakukan inisialisasi dan
memuat iklan di awal:
- Namun, ada waktu tunggu (2 dtk) yang mencegah panggilan ditunda
tanpa batas waktu. Hal ini memastikan bahwa
adBreakDone()
dipanggil dengan mode yang tepat waktu dan game Anda dimulai. adBreakDone()
selalu dipanggil meskipun tidak ada iklan.
- Namun, ada waktu tunggu (2 dtk) yang mencegah panggilan ditunda
tanpa batas waktu. Hal ini memastikan bahwa
- Sebaiknya gunakan pre-roll untuk menempatkan iklan sebelum game dimulai.
- Atau, Anda dapat menggunakan callback
onReady()
keadConfig()
sebagai mekanisme untuk mengurutkan logika game dengan inisialisasi API dan memuat iklan di awal.
- 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 dikecualikan, pemain akan melihat iklan dan dapat memilih untuk menutupnya. Iklan reward bersifat keikutsertaan. Pemain memilih apakah dan kapan mereka ingin menonton iklan untuk menerima reward.
Tidak seperti interstisial, di mana pemain dapat menutup iklan kapan saja, untuk menerima reward, mereka harus melihat iklan selama durasi minimum (yang dapat bervariasi bergantung pada materi iklan yang ditampilkan).
Karena iklan reward bersifat opsional untuk pemain, iklan ini memerlukan integrasi yang lebih dalam dalam alur game Anda. Anda harus menyediakan fungsi untuk merender perintah reward dalam game, dan untuk mengalokasikan reward kepada pemain jika mereka menonton iklan.
Reward tidak boleh memiliki nilai di luar aplikasi, tidak boleh memiliki (atau mudah ditukar dengan) nilai uang, dan tidak boleh dijual atau ditukar dengan barang dan layanan, dan Anda tidak boleh mendorong pemain untuk mengklik iklan. Harap buka draf kebijakan untuk interstisial dan reward untuk detail selengkapnya.
Karena reward bersifat opsional untuk pemain, Anda dapat menambahkannya di mana saja yang masuk akal dalam game dan dapat menggunakannya selain interstisial. Seperti interstisial, penempatan ini adalah peluang untuk menampilkan iklan reward. Ad Placement API hanya akan memanggil kode Anda jika iklan reward sebenarnya akan ditawarkan pada titik tertentu dalam game.
Sekali lagi, sasaran di sini adalah memungkinkan Anda mengintegrasikan game dengan Ad Deployment API, lalu, seiring waktu menggunakan kontrol baik dalam tag atau di AdSense, Anda dapat mengubah campuran iklan yang diaktifkan secara tepat, tanpa harus melakukan recode dan merilis ulang game.
Jenis penempatan reward selalu berupa '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 yang penting adalah beforeReward()
yang merupakan pemicu yang menandakan bahwa Anda
harus merender perintah reward, dan adViewed()
yang dipanggil saat
pemain berhasil melihat iklan, sehingga Anda dapat mengalokasikan reward.
Anda dapat menentukan penempatan 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 di game Anda yang menawarkan reward kepada pemain jika mereka melihat iklan.
Urutan panggilan untuk iklan reward
Deskripsi
Iklan reward – Urutan panggilan mendetail | |
---|---|
Game H5 Anda | API Penempatan Iklan |
Inisialisasi & amp; pra-caching iklan | |
Menjalankan game | |
|
|
Ada iklan yang tersedia, jadi mulai penempatan iklan reward. ← |
|
Game akan merender perintah reward. Dengan begitu, pemain dapat memperoleh reward dengan menonton iklan. Lebih dari satu jenis reward dapat ditawarkan (misalnya, nyawa baru atau koin emas). Pemain dapat mengklik permintaan reward, menutupnya, atau mengabaikannya. Jika pengguna mengklik perintah, game akan menyimpan jenis reward yang diminta dan memanggil Atau, jika permintaan reward ditutup atau diabaikan, tidak akan ada yang terjadi hingga Anda melakukan panggilan lain ke |
|
|
|
← beforeAd() |
|
Game dijeda, membisukan suara, dan bersiap untuk menampilkan iklan
|
|
API menampilkan iklan. Iklan ini memiliki tombol tutup dan hitung mundur jumlah waktu yang tersisa di iklan. | |
Jika pemutar menutup iklan... | |
← adDismissed() |
|
Pemain menutup iklan dan game tidak memberikan reward. | |
ATAU pemain menonton iklan hingga selesai... | |
← adViewed() |
|
Pemain menonton iklan hingga selesai dan game memberikan reward. (Biasanya dengan menyetel beberapa status game yang akan 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 membunyikan audio. | |
← adBreakDone() adBreakDone() selalu dipanggil (meskipun iklan tidak ditampilkan) |
|
Game mencatat analisis tentang penempatan ini. |
Catatan
adBreak()
adalah fungsi asinkron yang segera ditampilkan.- Jika tidak ada iklan yang ditampilkan untuk penempatan, tidak ada callback yang dipanggil—yaitu, tidak satu pun dari
beforeAd()
,beforeReward()
yang akan dipanggil. - Untuk memastikan game Anda tidak terus dijalankan saat iklan
ditampilkan, gunakan callback
beforeAd()
untuk membisukan suara dan menjeda game. beforeAd()
bersifat sinkron, Ad Placement API tidak akan menampilkan iklan sampai ditampilkan.- Mulai ulang game dan bunyikan suara saat Anda menerima panggilan
afterAd()
. - Jika disediakan,
adBreakDone()
selalu dipanggil meskipun iklan tidak ditampilkan dalam penempatan ini. - Pemanggilan
adBreak()
saat iklan lain ditampilkan akan gagal dan peringatan akan ditampilkan di konsol JavaScript.