Priya — Anda bertanya minggu lalu apakah pemantau penurunan harga yang sedang Anda bangun sebaiknya melakukan polling ke halaman produk setiap menit "untuk amannya." Sebelum Anda memasukkan itu ke dalam build, izinkan saya menjelaskan keseluruhannya, karena interval polling sebenarnya adalah keputusan paling kecil di sini, dan menetapkan bentuk yang tepat sejak awal akan menghemat satu atau dua siklus review sebelum peluncuran Anda.
Mulai dari prompt itu sendiri. Anda memberi tahu saya "ekstensi yang memantau halaman ini dan memberi tahu saya saat harga turun," dan itu ide yang bagus tetapi belum jadi spesifikasi — builder perlu tahu kapan ia bertindak, bukan hanya apa yang dilakukannya. Pemantau Anda adalah bentuk ketiga dari tiga bentuk pemicu, dan ada baiknya mengetahui dua lainnya meski Anda tidak membutuhkannya, karena bentuk ini menentukan izin, dan izin menentukan linimasa review Anda.
- Klik-untuk-bertindak adalah yang paling murah: sebuah popup yang berjalan sekali pada halaman saat ini ketika seseorang mengklik ikon toolbar — bayangkan "tarik setiap harga di halaman ini ke dalam sebuah daftar."
- Skrip konten selalu-aktif berjalan otomatis pada pola URL yang Anda tentukan — cocok untuk sesuatu seperti menyorot nama pesaing di setiap halaman di bawah suatu domain, tetapi Anda harus menyatakan polanya secara eksplisit, karena "di situs internal kami" akan ditebak lebih sempit dari yang Anda maksud.
- Kasus Anda adalah yang ketiga: sebuah pemantau latar belakang, state yang bertahan terlepas dari apakah tab terbuka atau tidak, berjalan pada service worker di bawah MV3, memberi badge pada ikon saat sesuatu berubah.
Itulah satu-satunya bentuk di mana builder seharusnya balik bertanya kepada Anda, dan memang akan begitu — karena angka polling adalah trade-off nyata, bukan sekadar formalitas.
Yang membawa saya kembali ke insting "setiap menit" Anda. Saya pernah diminta membuat sesuatu yang hampir persis sama dengan build Anda beberapa waktu lalu — memantau sebuah halaman, memberi badge pada ikon saat harga berubah — dan iterasi pertama melakukan polling setiap 60 detik. Berjalan baik untuk satu orang yang mengujinya secara lokal. Kalikan itu dengan berapa pun orang yang benar-benar memasang ekstensi ini dan Anda membombardir halaman produk seseorang tanpa alasan, karena harga pada listing ritel normal tidak berubah lebih dari beberapa kali sehari. Tuliskan "periksa setiap 30 menit" pada prompt Anda ke builder. Itu bukan kompromi, itu permintaan yang lebih jujur — tidak ada yang butuh notifikasi di bawah semenit dari sebuah ekstensi peramban, dan Anda akan berterima kasih pada diri sendiri nanti saat tidak perlu menjelaskan ke reviewer mengapa ekstensi Anda menghubungi server 1.440 kali sehari.
Bagian yang tidak perlu Anda pikirkan
Anda menyebutkan merasa cemas soal manifest — jangan khawatir, itu satu-satunya hal yang benar-benar tidak perlu Anda sentuh. Kedua toko sekarang mewajibkan Manifest V3; MV2 sudah tidak diterima lagi untuk listing baru dan Chrome secara aktif menghentikan ekstensi MV2 yang masih berjalan. Perubahan utama di bawah MV3 adalah logika latar belakang Anda berjalan sebagai service worker, bukan halaman latar belakang yang persisten — ia aktif saat ada event, peramban bisa mematikannya di antara event, dan state harus melalui chrome.storage alih-alih sekadar hidup dalam sebuah variabel. Itulah jenis detail siklus hidup yang secara default sudah ditulis dengan benar oleh builder. Anda tidak akan pernah melihat berkas manifest kecuali Anda memang mencarinya.
Yang sebenarnya perlu mendapat perhatian Anda adalah izin, karena itulah yang menentukan seberapa cepat review Anda berjalan, bukan kodenya. Pemantau Anda membutuhkan alarms untuk polling dan kemungkinan storage untuk mengingat harga terakhir — ia tidak membutuhkan tabs atau <all_urls>, dan jika Anda meminta "kemampuan untuk bekerja di situs mana pun suatu saat nanti" karena mungkin ingin mengembangkannya nanti, builder akan membangun sesuai itu dan Anda akan meminta akses host yang luas untuk fitur yang belum ada. Itu adalah baris yang paling menakutkan dalam dialog pemasangan — "membaca dan mengubah data di setiap situs yang Anda kunjungi" — dan itu juga hal yang mengubah review otomatis menjadi review manual. Jelaskan apa yang dilakukannya hari ini. Perluas nanti jika Anda benar-benar membutuhkannya.
Dua hal lagi yang layak diperhatikan selama tiga puluh detik sebelum Anda menyebut ini selesai: UI popup dan ikon.
- UI popup — halaman opsi default, kotak centang polos, tanpa hierarki, adalah sumber nyata ulasan bintang satu yang sama sekali tidak berhubungan dengan apakah ekstensinya berfungsi atau tidak. Punya Anda hanya memiliki beberapa pengaturan (URL, mungkin interval), tetapi tetap harus terlihat seperti bagian dari sebuah produk, bukan tumpukan formulir.
- Ikon — pastikan ikon diperiksa di keempat ukuran Chrome (16, 32, 48, 128px, dengan matriks yang sedikit berbeda untuk Firefox), karena logo yang tajam pada 128px bisa berubah menjadi buram pada 16px, dan justru di ukuran itulah ia berada di toolbar yang penuh sesak sepanjang hari.
Sebelum Anda menyentuh salah satu toko
Uji ini secara nyata, bukan hanya di pratinjau chat. Yang Anda dapatkan dari build adalah ekstensi yang benar-benar bisa dimuat, jadi silakan ke chrome://extensions, aktifkan mode developer, "load unpacked," dan jalankan terhadap halaman produk sungguhan yang kamu pedulikan — bukan versi simulasinya. Ada dua hal yang secara khusus perlu kamu periksa manual: apakah prompt izin instalasi mengatakan hal yang sesuai dengan yang kamu minta, dan apa yang terjadi jika content script suatu saat mengenai halaman yang bukan diperuntukkan baginya — apakah gagal secara diam-diam atau memunculkan error yang terlihat? Keduanya memakan waktu kurang dari satu menit dan keduanya adalah jenis bug yang jelas begitu kamu melihatnya dan tidak terlihat jika tidak.
Saat Anda siap untuk benar-benar merilis, Anda akan melalui akun developer Anda sendiri di kedua toko — Anda yang memiliki listing tersebut, platform ini tidak mengelolanya untuk Anda. Dan saya ingin menegaskan bahwa kedua toko ini sama sekali tidak simetris, karena saya tidak ingin Anda merencanakan tanggal peluncuran dengan asumsi keduanya sama.
| Store | Proses pengajuan |
|---|---|
| Chrome | Mengisi otomatis listing — judul, deskripsi, kategori, dan teks justifikasi izin yang benar-benar dibaca saat review, dihasilkan dari apa yang dilakukan kode, bukan diketik terpisah, dan itu penting karena justifikasi yang tidak cocok adalah salah satu alasan penolakan yang umum tersendiri. |
| Firefox | Nyaris tanpa perlu campur tangan; jalur pemrosesan Mozilla lebih ringan dan pengajuan cukup langsung diproses. |
Paket listing yang dihasilkan setelah build Anda selesai juga akan menghasilkan tangkapan layar yang diambil dari ekstensi Anda yang benar-benar berjalan (bukan mockup), teks listing, dan jawaban praktik privasi yang diperiksa terhadap kode sebenarnya, bukan diisi dari ingatan. Bagian terakhir itu lebih penting dari kedengarannya untuk sesuatu yang berkomunikasi dengan halaman eksternal: kuesioner privasi Chrome mengajukan pertanyaan ya/tidak yang lugas tentang penanganan data, dan menjawab "tidak" untuk "apakah ini mengumpulkan data" padahal pemantau Anda melakukan polling dan menyimpan harga adalah jenis ketidakjujuran kecil yang bisa membuat ekstensi ditarik setelah peluncuran, bukan sekadar ditolak sebelumnya. Memiliki jawaban yang diperiksa terhadap apa yang benar-benar dilakukan kode menutup celah itu secara otomatis untuk Anda.
| Store | Waktu review khas |
|---|---|
| Firefox | Beberapa jam, kadang kurang dari satu jam |
| Chrome | Beberapa hari, sesekali mendekati dua hari pada minggu yang buruk |
Ekstensi dengan persistensi latar belakang seperti punya Anda lebih mungkin masuk jalur review manual yang lebih lambat dibandingkan ekstensi klik-untuk-bertindak yang sederhana. Baik saya maupun Anda tidak bisa mempercepat antrean itu. Rencanakan pengumuman Anda mengikuti linimasa Chrome, bukan Firefox, dan jangan menjadwalkan apa pun untuk hari yang sama dengan hari Anda mengajukan.
Satu hal terakhir, karena saya sudah mengenal Anda — Anda pasti sudah memikirkan untuk menambahkan "sinkronkan daftar pantauan saya di berbagai perangkat" dan "lacak riwayat harga dari waktu ke waktu" setelah ini dirilis. Itu tidak masalah, tetapi ketahuilah bahwa masing-masing itu adalah izin baru, dan izin baru bisa berarti review yang lebih lambat dari yang baru saja Anda lalui. Jika Anda yakin ingin versi yang lebih besar, sebenarnya lebih baik memasukkannya ke prompt sekarang dan menanggung satu kali review yang lebih lambat daripada menambahkan izin sedikit demi sedikit. Jika Anda belum yakin, rilis saja yang sudah ada — pemantau dengan cakupan ketat akan lolos dengan cepat, memberi Anda pengguna nyata, dan pengguna nyata saat ini lebih berharga daripada daftar fitur panjang yang tertahan di antrean Chrome. Anda selalu bisa meminta lebih banyak nanti; Anda tidak bisa mengembalikan peluncuran ini setelah tertahan di review manual karena sesuatu yang belum Anda butuhkan.



