Buat APK Gratis

Notifikasi

AppMint Push - Beri Tahu Pengguna Anda

Kirim notifikasi ke semua orang yang memasang aplikasi Anda, langsung dari AppMint di proyek Firebase Anda sendiri - jadwalkan, edit setelah dikirim, batalkan, deep link

1Cara Kerjanya#

AppMint Push mengirim notifikasi ke semua orang yang memasang aplikasi Anda, dari dalam AppMint - kirim sekarang, jadwalkan, edit setelah dikirim, batalkan, deep link.

Setiap pesan dapat didesain: 8 template, warna Anda sendiri, hingga 3 tombol yang masing-masing membuka halamannya sendiri, pilihan suara dan pop-up, serta banner, kartu, sheet, atau layar penuh native dalam aplikasi saat aplikasi terbuka. Pratinjau langsung menampilkannya persis seperti di ponsel pengguna.

Berjalan di proyek Firebase ANDA SENDIRI: pengguna Anda, proyek Anda, tanpa batas bersama, dan tidak ada milik Anda yang dihosting AppMint. Firebase Cloud Messaging gratis tanpa batas pesan.

Anda membutuhkan dua file dari proyek itu - google-services.json (untuk build) dan kunci service-account (untuk mengirim). Langkah berikutnya mendapatkan keduanya. Berfungsi di setiap mode build: situs web, ZIP, HTML, dan AI.

AppMint Push dan OneSignal adalah alternatif satu sama lain: mengaktifkan salah satunya menonaktifkan yang lain.

2Buat Proyek Firebase#

Buka Firebase Console dan klik 'Add project' (atau buka proyek yang sudah Anda miliki). Proyek Firebase gratis sudah cukup - tidak perlu penagihan untuk notifikasi.

Satu proyek dapat memuat beberapa aplikasi Anda.

3Tambahkan Aplikasi Anda dan Unduh google-services.json#

Di proyek Firebase Anda:

  • Klik 'Add app' dan pilih Android
  • Masukkan nama paket PERSIS seperti yang diatur di wizard AppMint (mis. com.yourname.yourapp) - ketidakcocokan berarti notifikasi tidak pernah sampai, dan AppMint menolak build karenanya
  • Klik 'Register app' dan unduh google-services.json
  • Anda bisa melewati sisa langkah SDK - AppMint yang menanganinya

4Aktifkan dan Unggah File#

Di kartu Push Notifications pada wizard build:

  • Aktifkan 'AppMint Push'
  • Ketuk 'Upload google-services.json' dan pilih file dari langkah sebelumnya

Wizard memeriksa bahwa file berisi nama paket Anda. Lalu buat APK Anda seperti biasa - selama build, aplikasi Anda didaftarkan untuk push terhadap proyek Anda.

Pengguna cukup memasang aplikasi dan membukanya sekali. Di Android 13+, mereka diminta mengizinkan notifikasi setelah layar pertama dimuat.

Template, tombol, dan gaya dalam aplikasi membutuhkan aplikasi yang dibuat dengan versi AppMint ini atau yang lebih baru. Build lama tetap menerima setiap pesan - menampilkannya dengan gaya polos seperti biasa.

5Unggah Kunci Service-Account Anda (Sekali)#

AppMint mengirim melalui proyek Anda, jadi membutuhkan kunci darinya - file yang sama yang diminta OneSignal.

Di Firebase Console:

  • ⚙ Pengaturan proyek → tab 'Service accounts'
  • Klik 'Generate new private key' dan konfirmasi - file JSON akan terunduh

Di AppMint: Home > Notifications → pilih aplikasi Anda → 'Upload key' → pilih JSON itu.

AppMint memverifikasi kunci dengan pengiriman uji ke proyek Anda sebelum menyimpannya (terenkripsi), jadi tanda centang hijau berarti pengiriman berikutnya benar-benar akan terkirim. Satu unggahan per aplikasi; build ulang aplikasi tidak membutuhkannya lagi kecuali Anda berganti proyek Firebase.

⚠️ Unggah kunci SERVICE-ACCOUNT di sini, bukan google-services.json - layar memberi tahu jika Anda tertukar. Untuk mencabut akses nanti, hapus kuncinya di Firebase Console.

6Kirim Notifikasi Pertama Anda#

Di Home > Notifications:

  • Pilih aplikasi Anda
  • Tulis judul (pesan, gambar, dan tautan bersifat opsional)
  • Periksa kartu Live preview
  • Ketuk 'Send Notification'

Setiap ponsel dengan aplikasi Anda terpasang menerimanya.

Untuk gambar, ketuk kotak Image: 'Choose from device' (hingga 2 MB, PNG, JPEG, atau WebP) atau 'Paste an image link' (https://). Gambar yang dipilih baru diunggah saat Anda menekan Send - Anda boleh memilih, mengganti, atau menghapusnya sesering yang Anda mau sebelumnya.

7Pilih Template#

Design → Template menentukan tata letak notifikasi. Teks selalu didahulukan - gambar tidak pernah menutupi pesan:

  • Otomatis - Kartu gambar jika pesan memiliki gambar, jika tidak Standar
  • Standar - judul dan seluruh pesan; gambar menjadi thumbnail kecil di sampingnya
  • Kartu gambar - gambar DI BAWAH judul dan pesan yang terbaca
  • Banner - kartu berwarna sesuai pilihan Anda, dengan lencana opsional
  • Promo - lencana seperti '50% OFF' dan tombol berwarna (tombol pertama Anda)
  • Daftar - hingga 6 baris pendek, misalnya beberapa pembaruan pesanan
  • Hitung mundur - pewaktu langsung yang menghitung mundur ke tanggal dan waktu pilihan Anda, lalu meninggalkan baki dengan sendirinya
  • Progress - bilah kemajuan; edit & resend dengan nilai baru dan bilah bergerak di setiap ponsel tanpa berbunyi lagi
  • Minimal - judul dan satu baris, tanpa suara, tanpa pop-up

Ukuran teks dan gambar menyesuaikan ukuran font setiap pengguna, sehingga tidak ada yang terpotong di ponsel dengan teks besar.

8Pilih Warna#

Design → Colour mewarnai ikon, banner, tombol, dan hitung mundur notifikasi. Pilih salah satu dari 9 warna siap pakai, atau '+' untuk #RRGGBB apa pun.

Setiap warna siap pakai terbaca baik di ponsel terang maupun gelap. Warna kustom diperiksa terhadap keduanya: jika terlalu pucat atau terlalu gelap, catatan di bawah warna menyatakannya, dan 'Fix contrast' di kotak warna kustom menggesernya ke corak terdekat yang cocok dengan mempertahankan rona. Teks pada tombol atau banner berwarna otomatis diberi tinta hitam atau putih.

Gunakan petak 'Light phone' / 'Dark phone' di Live preview untuk melihat keduanya.

9Tambahkan Tombol#

Design → Buttons: '+ Add button' (hingga 3). Masing-masing punya label (hingga 24 karakter) dan tautannya sendiri - mis. 'Track order' → #/orders/1042 dan 'Help' → #/support. Biarkan tautan tombol kosong untuk membuka tautan utama.

Tombol tampil di bawah notifikasi di baki dan dalam tampilan dalam aplikasi. Di template Promo, tombol pertama menjadi tombol berwarna besar di kartu.

10Saat Aplikasi Terbuka#

Design → 'While the app is open' menentukan apa yang dilihat pengguna saat pesan tiba ketika mereka sedang memakai aplikasi Anda:

  • Desain aplikasi sendiri (bawaan) - kode aplikasi Anda menampilkannya (lihat In-App Inbox di bawah)
  • Top banner - meluncur turun dari atas dan menyembunyikan diri setelah beberapa detik
  • Centre card - kartu di atas aplikasi yang diredupkan dengan gambar, teks, dan tombol
  • Bottom sheet - kartu yang sama yang naik dari bawah
  • Layar penuh - gambar besar dengan tombol di bagian bawah

Tampilannya mengikuti tema terang atau gelap ponsel, dan Back atau mengetuk di luar menutupnya. Saat ditampilkan, pesan yang sama tidak juga ditaruh di baki - pengguna sudah melihatnya.

Dengan 'In-app only' (Delivery → Show as), pesan yang tiba saat aplikasi tertutup ditampilkan saat pengguna membukanya berikutnya.

11Suara, Pop-up, dan Waktu#

Design → Behaviour:

  • Suara - mati untuk notifikasi senyap
  • Muncul di layar - matikan untuk melewati tampilan sekilas di atas apa pun yang sedang dilakukan pengguna (tetap masuk ke baki)
  • Tutup otomatis - menghapus notifikasi dari baki setelah 30 detik hingga 3 hari (Android 8 dan lebih baru)

Opsi lanjutan:

  • Gambar ikon / avatar - gambar bulat di samping teks (tautan https://)
  • Bundle key - pesan yang berbagi key ini dikelompokkan di bawah satu judul
  • Replace key - pesan yang lebih baru dengan key yang sama MENGGANTIKAN yang lama di ponsel dan di kotak masuk, misalnya skor langsung

Pengguna juga dapat menyetel suara per jenis di pengaturan notifikasi Android untuk aplikasi Anda.

Suara Anda sendiri: di stepper, Integrate → Push Notifications → Notification sound (MP3, OGG, WAV, M4A, AAC, FLAC, atau Opus, hingga 1 MB dan 30 detik). Diputar untuk setiap pesan yang dikirim dengan Sound aktif. Aplikasi yang terpasang mendapatkannya dengan pembaruan yang membawanya; setiap pengguna tetap bisa mengubahnya di pengaturan notifikasi Android.

12Uji, Simpan, dan Gunakan Ulang#

  • Live preview - petak Collapsed, Expanded, dan In-app, di ponsel terang atau gelap, digambar oleh kode yang sama dengan yang dijalankan ponsel pengguna Anda
  • 'Test on this phone' - menampilkan pesan hanya di ponsel ANDA, sebagai notifikasi nyata atau sebagai tampilan dalam aplikasi di atas layar Notifications. Tidak ada yang dikirim ke pengguna
  • Template tersimpan (ikon buku di atas) - 'Save the current message as a template' menyimpan teks, tautan, gambar, dan setiap pilihan desain di ponsel ini; 'Use' memuatnya kembali dengan satu ketukan
  • Di History, 'Duplicate as a new message' memulai pesan baru dari pesan sebelumnya mana pun

13Jadwalkan untuk Nanti#

Di kartu Delivery, ketuk 'Schedule' di bawah When, lalu pilih tanggal dan waktu. Notifikasi terkirim otomatis pada saat itu.

Sampai terkirim, Anda dapat mengedit atau membatalkannya dari daftar History di bawah.

14Perbaiki Kesalahan Setelah Mengirim#

Ketuk notifikasi mana pun di History:

  • 'Edit & resend' - memuatnya kembali ke composer dengan seluruh desainnya; 'Update & resend' lalu menggantikannya DI TEMPAT di setiap perangkat
  • 'Cancel' - menghapusnya dari setiap ponsel yang belum membukanya, termasuk tampilan dalam aplikasi yang masih ada di layar
  • 'Delete' - sama seperti batal, dan menghapusnya dari riwayat Anda

⚠️ Notifikasi yang sudah dibuka atau ditutup pengguna tidak dapat ditarik kembali.

15Buka Halaman Tertentu#

Kolom Link opsional mengatur apa yang dibuka ketukan (setiap tombol dapat memiliki sendiri):

  • Alamat https:// lengkap (bagus untuk aplikasi situs web)
  • Rute dalam aplikasi seperti #/offers

Kode aplikasi Anda juga dapat membacanya kapan saja:

const link = window.WebToApk?.getLaunchUrl?.();
window.addEventListener('appmint:deep-link',
  e => goTo(e.detail.url));

16Kotak Masuk Dalam Aplikasi (Opsional)#

Setiap push juga disimpan di dalam aplikasi yang terpasang (50 terakhir), sehingga aplikasi Anda dapat menampilkan layar notifikasinya sendiri dengan lencana belum dibaca. Ini berfungsi di SEMUA mode build - termasuk aplikasi situs web (URL), di mana Anda cukup menambahkan beberapa baris ini ke situs Anda sendiri.

Saat shell sudah menampilkan pesan di layar (gaya di bawah 'While the app is open'), event menyatakan presented: true - jangan gambar banner kedua saat itu. Aplikasi yang menggambar semua banner sendiri dapat mematikan milik shell dengan setPushPresentation('none').

Menutup dilakukan dengan GESER, bukan ✕ kecil, dan dapat dibatalkan - padukan dengan Undo singkat:

const B = window.WebToApk;
const inbox = JSON.parse(B?.getPushInbox?.() ?? "[]");
// [{id,title,body,imageUrl,link,receivedAt,read,
//   template?,accent?,buttons?,badge?,inapp?...}]
const unread = inbox.filter(m => !m.read).length;

// live arrival while the app is open
window.addEventListener('appmint:push', e => {
  const d = e.detail;
  if (d.type === 'received' && !d.presented) showBanner(d.message);
  refreshInbox();   // fires for 'revoked' too
});

B?.markPushRead?.(id);        // "" = mark all read
B?.dismissPushMessage?.(id);  // swipe away
B?.restorePushMessage?.(id);  // ...Undo
B?.setPushPresentation?.('none'); // app draws its own

17Jika Tidak Ada yang Sampai di Ponsel Uji Anda#

Hampir selalu merupakan batas pada PONSEL UJI, bukan aplikasi atau pengguna Anda.

Android mengizinkan sekitar 100 registrasi push per ponsel. Setiap instalasi BARU aplikasi yang memakai notifikasi mengambil satu - jadi memasang build demi build saat menguji bisa menghabiskan semuanya, dan ponsel itu lalu berhenti menerima untuk aplikasi yang baru dipasang.

Bebaskan slot (inilah yang benar-benar berhasil):

  • Hapus aplikasi uji yang tidak lagi Anda butuhkan - Android melepaskan slot yang dipegang masing-masing
  • Atau hapus data aplikasi uji: Settings > Apps > [aplikasi itu] > Storage > Clear data - ini melepaskan slotnya tanpa menghapus aplikasi
  • Di emulator, mengosongkannya mengatur ulang semua slot sekaligus

Memulai ulang ponsel TIDAK membantu: registrasi ini disimpan permanen, itulah sebabnya bertahan setelah reboot. Menghapus cache Google Play Services juga tidak membebaskannya.

Hindari hal ini saat menguji:

  • Pertahankan SATU nama paket selama Anda mengulang - setiap nama paket yang berbeda mengambil slotnya sendiri
  • Pasang APK baru DI ATAS yang lama alih-alih menghapus dulu - pembaruan mempertahankan registrasi yang ada, pemasangan ulang menghabiskan yang baru
  • Uji di ponsel cadangan atau emulator; mengosongkan emulator mengatur ulang slotnya seketika
  • Hapus aplikasi uji yang sudah selesai Anda gunakan

Periksa juga dasar-dasarnya: aplikasi dibuka minimal sekali setelah dipasang, dan notifikasi diizinkan untuknya di pengaturan Android. Aplikasi berlangganan ulang di setiap peluncuran, jadi pulih sendiri begitu slot bebas - tidak perlu build ulang.

18Batas dan Praktik Baik#

  • Tidak ada batas jumlah notifikasi yang Anda kirim - Firebase Cloud Messaging gratis
  • Judul hingga 120 karakter, pesan hingga 1000; tautan gambar dan ikon harus https://
  • Hingga 3 tombol (label 24 karakter) dan hingga 6 baris daftar
  • Di paket gratis, iklan singkat diputar sebelum setiap pengiriman
  • Aplikasi uji: hapus dengan ikon tempat sampah di sebelah pemilih aplikasi - ini hanya menghapus riwayat dan kunci tersimpan di AppMint; proyek Firebase Anda tidak tersentuh, dan build ulang menambahkan aplikasi kembali
  • Build ulang dengan google-services.json BARU dari proyek yang SAMA tidak mengubah apa pun: kunci Anda tetap, instalasi yang ada tetap menerima
  • ⚠️ Memindahkan aplikasi ke proyek Firebase YANG BERBEDA adalah pemutusan total. Build ulang dengan google-services.json baru, unggah kunci proyek baru (AppMint membuang yang lama, karena tidak akan pernah bisa mengirim untuk proyek baru) - dan ketahuilah bahwa ponsel yang masih menjalankan versi LAMA berhenti menerima sampai pengguna memperbaruinya. Notifikasi menjangkau sebuah proyek, dan instalasi itu masih mendengarkan yang lama
  • Kirim seperlunya: pengguna menghapus aplikasi yang mengirim spam

19Pilih Siapa yang Menerimanya#

Di bawah 'Who gets it', pesan dikirim ke Everyone (bawaan) atau ke ponsel yang Anda pilih:

  • Negara, bahasa, versi Android, dan versi aplikasi
  • Aktivitas - membuka aplikasi dalam N hari terakhir, atau belum membukanya selama N hari
  • Hanya ponsel dengan notifikasi menyala
  • ID pengguna dan tag yang diatur halaman aplikasi Anda (langkah berikutnya)

Sebelum Anda mengirim, layar menunjukkan berapa banyak ponsel yang dijangkau pilihan Anda.

Cara lain untuk mengirim:

  • Waktu lokal setiap ponsel (di bawah When) - mis. 09:00 pada jam setiap ponsel, zona waktu demi zona waktu
  • Uji A/B - tulis versi B; setiap versi dikirim ke sebagian audiens sebagai uji, dan setelah jeda yang Anda atur, versi dengan lebih banyak pembukaan (atau ketukan) dikirim ke semua sisanya
  • Batas harian per ponsel - jumlah pesan terbanyak yang diterima satu ponsel dari aplikasi ini dalam sehari; pesan di atas batas dilewati untuk ponsel itu dan ditampilkan sebagai 'skipped (daily limit)'

History menampilkan, untuk setiap pesan, berapa banyak ponsel yang dikirimi, berapa yang gagal, dan berapa yang dilewati.

⚠️ Memilih siapa, waktu lokal, uji A/B, otomatisasi, dan batas harian hanya menjangkau ponsel yang menjalankan aplikasi yang dibuat sejak 30 Sep 2026 (mereka mendaftarkan diri sendiri). Ponsel dengan build lama tetap menerima kiriman 'Everyone' - build ulang dan terbitkan pembaruan agar dapat menjangkau mereka dengan cara ini juga.

20Targetkan Pengguna yang Masuk dan Tag#

Halaman aplikasi Anda memberi tahu AppMint Push siapa yang masuk dan apa yang perlu diketahui tentang instalasi ini. Lalu Anda dapat mengirim ke satu pengguna, atau ke semua orang dengan tag seperti plan = pro.

  • setPushUser - setelah masuk, dengan id akun ANDA SENDIRI (id database, bukan alamat email atau nomor telepon). Huruf, angka, dan _ @ . : + - (hingga 128). Panggil dengan "" saat keluar akun, atau ponsel terus menerima pesan pengguna itu
  • setPushTag / setPushTags - nama tag (huruf, angka, dan _, hingga 32) dan nilai (hingga 128). "" menghapus tag; hingga 50 per instalasi
  • getPushUser / getPushTags - membaca kembali apa yang dipegang ponsel ini

ID dan tag milik instalasi, bukan akun: hapus juga tag khusus pengguna saat keluar akun. Ponsel melaporkan perubahan beberapa detik kemudian (pada peluncuran berikutnya jika offline). Pengguna yang sama yang masuk di dua ponsel dijangkau di keduanya.

const B = window.WebToApk;

// after sign-in: your own account id
B?.setPushUser?.(user.id);
B?.setPushTag?.('plan', user.isPro ? 'pro' : 'free');
B?.setPushTags?.(JSON.stringify({ city: 'pune', level: '12' }));

// on sign-out
B?.setPushUser?.('');
B?.setPushTag?.('plan', '');

// read back
const who = B?.getPushUser?.() ?? '';
const tags = JSON.parse(B?.getPushTags?.() ?? '{}');

21Otomatisasi#

Pesan yang terkirim dengan sendirinya. Di Automations, ketuk '+ New' dan pilih salah satu:

  • Welcome - N menit setelah instalasi baru (dari 0 menit hingga 30 hari). Setiap ponsel menerimanya sekali
  • Win-back - saat seseorang tidak membuka aplikasi selama N hari (1 sampai 180). Sekali per ketidakhadiran: ponsel yang kembali lalu menjauh lagi akan menerimanya lagi
  • Tag - N menit setelah halaman aplikasi Anda mengatur tag, opsional hanya untuk satu nilai. Terkirim hanya jika tag masih terpasang saat waktunya tiba

Keranjang yang ditinggalkan: atur tag saat barang masuk keranjang dan hapus saat checkout. Otomatisasi 'cart' dengan jeda 60 menit lalu hanya mengingatkan orang yang pergi tanpa membeli. Mengatur nilai yang sama lagi tidak memulai ulang hitungan waktu; setelah tag dihapus, mengaturnya lagi dapat mengirim sekali lagi.

Otomatisasi dihitung terhadap batas harian per ponsel, dan menjangkau ponsel pada build yang dibuat sejak 30 Sep 2026.

const B = window.WebToApk;

// items added to the cart
B?.setPushTag?.('cart', 'open');

// checkout finished, or the cart emptied: no reminder
B?.setPushTag?.('cart', '');

22Jangkau Pengguna dengan Notifikasi Mati#

Ponsel dengan notifikasi dimatikan tidak pernah menampilkan notifikasi baki - tetapi pesan Anda tetap sampai ke aplikasi, dan pesan dalam aplikasi muncul saat pengguna membukanya berikutnya. Gunakan itu untuk meminta mereka menyalakan notifikasi kembali:

  • Siapa yang menerima → Pilih siapa → aktifkan 'Notifications off'
  • Show as → In-app only (Top banner atau Centre card di bawah Design)
  • Design → Buttons → '+ “Turn on notifications” button'. Tautannya appmint://notifications/enable: ketukan menampilkan permintaan izin, atau membuka pengaturan notifikasi aplikasi jika permintaan tidak bisa ditampilkan lagi

Jika aplikasi memiliki ponsel dengan notifikasi mati, pusat pengiriman menampilkan 'Reach the N phones with notifications off' di bawah kunci Firebase - satu ketukan mengatur ketiganya. Begitu pengguna menyalakan notifikasi, ponselnya keluar dari audiens itu.

Tombol ini membutuhkan aplikasi yang dibuat dengan versi AppMint ini atau yang lebih baru; build lama memperlakukan tautan sebagai tautan biasa. appmint://notifications/settings langsung membuka layar pengaturan.

// Your page can offer the same thing itself:
const r = await window.AppMint?.enableNotifications?.();
// r = { state: 'granted' | 'prompt' | 'blocked' | 'unavailable',
//       changed, openedSettings }

// and hear a push button's result too:
window.addEventListener('appmint:notifications', e => {
  if (e.detail.state === 'granted') hideNotifBanner();
});

23Pesan Dalam Aplikasi#

Pesan dalam aplikasi adalah kampanye yang Anda buat di pusat pengiriman: Push Notifications → 'In-app messages' → '+ New'. Aplikasi mengunduh dan menampilkannya sendiri, tanpa push, saat pemicu yang Anda pilih terjadi:

  • Aplikasi dibuka - pembukaan aplikasi ke-N
  • Sebuah halaman atau rute (/checkout, #/cart, /product/*)
  • Waktu di aplikasi - N detik di dalam aplikasi
  • Sebuah event yang dilacak halaman Anda (langkah berikutnya)
  • Sebuah tag push
  • Notifikasi dimatikan - padukan dengan tombol 'Aktifkan notifikasi'
  • Pembaruan aplikasi - pembukaan pertama setelah pembaruan

Tampilkan sebagai banner, modal, sheet, atau layar penuh. Setiap pesan memiliki frekuensi (sekali per instalasi secara bawaan), audiens opsional, serta waktu mulai dan akhir opsional. Membutuhkan AppMint Push di dalam build.

24Beri Tahu Aplikasi Apa yang Terjadi#

Bagian halaman Anda kecil: laporkan momen penting dengan trackEvent. Pesan yang pemicunya 'When an event happens' dengan nama sama akan tampil sekarang (atau setelah jeda yang Anda pilih). Nama: huruf, angka, dan _ . : - (hingga 64). Event tidak dihitung atau disimpan di mana pun; hanya menentukan apakah pesan tampil.

Pesan rute mengikuti perubahan URL yang sebenarnya (pemuatan halaman, pushState, rute #hash) dengan sendirinya. Tampilan yang tidak ditunjukkan oleh alamat (tab, langkah wizard) dapat dilaporkan sebagai rute dengan event appmint:route.

if (window.AppMint && AppMint.trackEvent) AppMint.trackEvent('checkout_done', { total: 42 });

// raw bridge: props as a JSON string ('' for none)
WebToApk.trackEvent('level:3', '');

// a view the address does not show, reported as a route
window.dispatchEvent(new CustomEvent('appmint:route', { detail: { path: '/cart' } }));

25Gambar Pesan Sendiri (Opsional)#

Setiap pesan memicu appmint:inapp dengan { type: 'shown' | 'clicked' | 'dismissed', id, name } (dan memanggil window.onAppMintInApp(detail) jika Anda mendefinisikannya).

Untuk menggambar pesan sendiri, panggil WebToApk.setInAppPresentation('none'): aplikasi lalu tidak menggambar apa pun dan event 'shown' membawa presented: false dan pesannya (judul, isi, gambar, tombol). setInAppPresentation('auto') mengembalikan penggambaran ke aplikasi. WebToApk.getInAppCampaigns() menampilkan daftar yang dimiliki instalasi ini ([{id, name}]).

Semua ini membutuhkan AppMint Push di dalam build; pada build lain, metodenya menjawab false / "[]".

window.addEventListener('appmint:inapp', e => {
  // e.detail = { type: 'shown' | 'clicked' | 'dismissed', id, name, presented?, message? }
  if (e.detail.type === 'shown' && e.detail.presented === false) drawMyBanner(e.detail.message);
});

WebToApk.setInAppPresentation('none');   // 'auto' gives drawing back to the app
const held = JSON.parse(WebToApk.getInAppCampaigns() || '[]');   // [{id, name}]

26Mulai dari Template#

'+ New' membuka galeri pesan siap pakai, masing-masing berupa pratinjau langsung yang dapat Anda cari atau filter berdasarkan tata letak: Welcome, Rate us, Turn on notifications, What's new, Flash sale (dengan hitung mundur langsung), Seasonal promo, New feature, Update available, Abandoned cart, Win back, Star survey, NPS score, Invite friends, Subscription offer, Streak, Tip, Permission explainer, Maintenance (tetap sampai ditutup), Terms update (tanpa tombol tutup), dan Follow us. Template mengisi tata letak, emoji atau gambar, teks, tombol, pemicu, dan frekuensi - ubah apa pun sebelum menyimpan. 'Blank message' mulai dari kosong.

Star survey, Rate us, dan NPS mengajukan pertanyaan: baris bintang 1-5 atau skor 0-10. Tombol pertama menunggu jawaban; jawaban dilaporkan sekali, saat pesan ditutup, sebagai event 'answered' appmint:inapp { value, question }, dan pusat pengiriman menampilkan rata-rata bintang atau skor NPS beserta sebarannya.

Tautan tombol juga dapat berupa appmint://review (lembar ulasan Google Play), share:text (lembar bagikan), copy:text (papan klip), route:/page dan event:name. Teks dapat memakai {app}, {store}, {name}, {streak} dan {tag:key}, yang diisi di setiap ponsel; {name|friend} memberi kata pengganti jika tidak ada nilai. Pesan yang placeholder-nya tidak punya nilai tidak ditampilkan. Membutuhkan aplikasi yang dibuat dengan versi ini atau yang lebih baru.

window.addEventListener('appmint:inapp', e => {
  const d = e.detail;
  if (d.type === 'answered') {
    // d.question: 'stars' (1-5) or 'nps' (0-10); d.template e.g. 'survey_stars'
    if (d.question === 'nps' && d.value <= 6) openFeedbackForm();
  }
  if (d.type === 'clicked' && d.link === 'event:allow') askForLocation();
});

// {streak} and {tag:key} come from push tags
WebToApk.setPushTag('streak', '7');

Halaman ini dibuat dari Panduan Integrasi di dalam aplikasi itu sendiri, jadi isinya persis sama dengan build saat ini. Baca sebagai Markdown.

Diperiksa terhadap panduan yang dirilis pada 2026-10-22.