Guideline 4.5.4: notifikasi push ditolak Apple
Oleh Mehdi Azizi
Terbit , 9 mnt
Guideline 4.5.4: notifikasi promosi butuh persetujuan eksplisit di dalam app dan cara untuk berhenti, dan app harus tetap jalan tanpa notifikasi.
Guideline 4.5.4 mengatur notifikasi push. App kamu harus tetap berfungsi tanpanya, tidak boleh menyelipkan informasi sensitif di dalamnya, dan tidak boleh memakainya untuk promosi tanpa persetujuan. Notifikasi marketing butuh persetujuan tertulis di dalam app kamu dan sakelar untuk mencabutnya, selain izin dari iOS.
Saya menerbitkan app iOS saya sendiri dengan Expo. Di TradaZen, simulator trading saya, saya menghapus notifikasi yang mengumumkan diskon, lalu menggantinya dengan pengingat tanpa penawaran yang saya laporkan ke reviewer. Panduan ini berdasarkan teks Apple, lisensi developer-nya, dokumentasinya, dan kasus itu. Untuk gambaran umum alasan penolakan, baca kenapa Apple menolak app.
Apa isi guideline 4.5.4?
Aturan ini ada di bagian 4 "Design", subbagian 4.5 "Apple Sites and Services" dari App Review Guidelines. Karena itulah judul penolakannya: "Guideline 4.5.4 - Design - Apple Sites and Services". Teksnya menetapkan tiga batasan.
- Notifikasi tidak boleh wajib. "Push Notifications must not be required for the app to function." Menolak jendela izin iOS tidak boleh memblokir apa pun.
- Tidak ada informasi sensitif. Notifikasi "should not be used to send sensitive personal or confidential information". Notifikasi muncul di layar kunci, bisa dilihat siapa saja.
- Tidak ada promosi tanpa persetujuan. Marketing dilarang "unless customers have explicitly opted in to receive them via consent language displayed in your app's UI", dengan "a method in your app for a user to opt out".
Kalimat terakhirnya memperingatkan bahwa penyalahgunaan bisa membuat kamu kehilangan akses ke layanan. Dua aturan terkait melengkapi gambarannya. Aturan 4.5.3 melarang spam lewat notifikasi. Aturan 5.1.2(i) melarang mewajibkan notifikasi aktif untuk mengakses fitur, konten, atau hadiah.
Tambahan dari lisensi developer
Guidelines membahas notifikasi push. Lampiran 1 dari Apple Developer Program License Agreement, yang kamu setujui saat mendaftar, melangkah lebih jauh di tiga poin.
- Notifikasi lokal juga kena. Pasal 2.2 menyebut "the APN or Local Notifications". Pengingat yang dijadwalkan di app, tanpa server, tunduk pada aturan yang sama.
- Definisi promosi sangat luas. Termasuk upsell dan "sending any messages to promote the use of Your Application or advertise the availability of new features or versions".
- Jendela izin iOS tidak boleh diakali. Pasal 1.3 melarang mengakali panel persetujuan Apple. Kalau izin ditolak atau dicabut, kamu tidak mengirim apa-apa lagi.
Tafsiran saya: pesan "ayo kembali ke app" mendekati promosi, walau tanpa harga. Apple tidak memutuskan kasus ini secara tegas, dan karena itu saya melaporkan pengingat semacam ini ke reviewer.
Apa arti pesan penolakan 4.5.4?
Penolakan yang paling terdokumentasi menyasar app yang tidak jalan tanpa notifikasi. Di sebuah thread forum B4X dari 2018, Apple menulis: "Push notifications must be optional and must obtain the user's consent to be used within the app." Developer-nya lalu melaporkan layar hitam setelah izin ditolak. Dugaan di thread itu: antarmuka yang menunggu token notifikasi sebelum tampil.
Anggap saja reviewer akan menolak semua izin untuk melihat apa yang terjadi. Kalau app macet, terus memaksa, atau mencabut fitur, kena 4.5.4 atau 5.1.2(i). Untuk marketing tanpa persetujuan, saya belum menemukan pesan penolakan publik yang baru.
Persetujuan apa untuk notifikasi apa?
Tabel saya menggabungkan teks Apple, lisensi, dan panduan antarmuka. Baris "akhir trial" dan "pengingat kembali" adalah tafsiran saya, bukan posisi tertulis Apple.
| Jenis notifikasi | Persetujuan yang dibutuhkan | Contoh yang sesuai |
|---|---|---|
| Respons atas tindakan | Jendela iOS | "Ekspor kamu sudah siap" |
| Pengingat yang dipilih | Jendela iOS | Pelajaran hari ini jam 19.00 |
| Akhir trial, perpanjangan | Jendela iOS | "Trial kamu berakhir tanggal 12" |
| Pengingat kembali | Jendela iOS + hati-hati | Tanpa harga, sekali saja |
| Penawaran atau diskon | Jendela iOS + persetujuan | Kotak dicentang di app |
| Fitur baru app | Jendela iOS + persetujuan | Hanya dikirim ke yang daftar |
| Pesan pribadi, kesehatan | Jangan pernah tampilkan isi | "Pesan baru" |
| Notifikasi provisional | Tanpa jendela di awal | Datang tanpa suara dan banner |
"Jendela iOS" adalah izin dari sistem. "Persetujuan" adalah pilihan terpisah di app kamu: kalimat yang menjelaskan apa yang akan kamu kirim, dan sakelar yang mati secara default.
Pengingat langganan dan penawaran
Halaman Managing notifications di panduan antarmuka Apple menyebut langganan: seseorang bisa menghargai "an offer to become a subscriber", kalau dia sudah menyetujui notifikasi marketing. Halaman itu menambahkan dua kewajiban: layar pengaturan di app untuk berubah pikiran, dan jangan pernah memakai level "Time Sensitive" untuk marketing.
Batas yang saya pegang: pengingat yang memberi info soal pembelian yang sudah dilakukan bukan penawaran, pesan yang mendorong untuk membeli adalah penawaran. "Trial kamu berakhir tanggal 12" memberi info. "Diskon 50% selama 24 jam" berjualan. Layar pembelian yang dibuka notifikasi tetap tunduk pada aturan 3.1.2.
Notifikasi lembut, atau provisional
Apple menyebut "provisional authorization" di dokumentasi tentang izin. App bisa mengirim notifikasi tanpa menampilkan jendela iOS. Notifikasinya datang tanpa suara dan banner, hanya di riwayat Notification Center, dengan tombol untuk menyimpan atau mematikannya. Dengan Expo, ini adalah opsi dari requestPermissionsAsync:
import * as Notifications from "expo-notifications";
await Notifications.requestPermissionsAsync({
ios: {
allowAlert: true,
allowBadge: true,
allowSound: true,
allowProvisional: true,
},
});
Field ios.status lalu bernilai IosAuthorizationStatus.PROVISIONAL selama orangnya belum memilih. Notifikasi provisional menggantikan jendela iOS, bukan persetujuan marketing. Promosi yang dikirim secara provisional tetaplah promosi.
Hati-hati dengan istilah. Di TradaZen, saya menyebut "notifikasi lembut" untuk pengingat bernada tenang yang hanya dikirim kalau jendela iOS sudah disetujui. Itu bukan izin provisional.
Menerapkan persetujuan eksplisit dengan Expo
- Minta izin iOS sesuai konteks. Apple menyarankan memintanya setelah tindakan yang menunjukkan manfaatnya, bukan saat pertama kali app dibuka. Di TradaZen, permintaan muncul antara lain setelah hadiah onboarding atau setelah pelajaran selesai. Logikanya sama dengan permintaan rating.
- Tambahkan persetujuan marketing terpisah. Sakelar yang mati secara default, dengan kalimat jelas, misalnya: "Terima penawaran dan fitur baru, maksimal sekali seminggu."
- Sediakan layar pengaturan. Pengingat dan penawaran bisa dimatikan di dalam app, bukan hanya di Settings iOS.
- Saring saat mengirim. Server kamu, atau penjadwal lokal kamu, hanya mengirim promosi ke orang yang sudah setuju.
- Pastikan semuanya jalan tanpa notifikasi. Menolak tidak memblokir layar, fitur, atau hadiah.
TradaZen: notifikasi yang saya hapus
Pada 12 Oktober 2026, satu versi TradaZen ditolak berdasarkan aturan 5.6, yang menyasar pembelian hasil manipulasi. Apple tidak menyebut elemen mana yang dimaksud. Jadi saya memeriksa ulang seluruh alur pembelian, termasuk notifikasi.
Ada satu notifikasi yang bermasalah. Keluar dari app saat onboarding atau di layar langganan menjadwalkan pesan lokal ini: "Aku punya diskon eksklusif khusus untukmu." Pesan itu hanya bergantung pada izin iOS, tanpa persetujuan marketing terpisah. Inilah promosi tanpa persetujuan eksplisit yang digambarkan 4.5.4 dan lisensi. Saya menghapusnya di ketiga puluh bahasa app.
Sebagai gantinya, satu pengingat: "Perjalananmu menunggu. Lanjutkan kapan saja, tidak perlu buru-buru." Batasannya:
- hanya dikirim kalau notifikasi diizinkan;
- sekali saja per instalasi, lima menit setelah keluar dari onboarding atau layar langganan;
- dibatalkan kalau orangnya kembali lebih dulu;
- tanpa harga, tanpa diskon, tanpa timer, tanpa suara.
Pengingat ini tetap ada di zona abu-abu yang saya jelaskan di atas. Saya tidak menyembunyikannya: pengingat ini dijelaskan di catatan review dan di balasan saya ke reviewer. Pengingat yang dilaporkan bisa didiskusikan, pengingat yang disembunyikan terlihat seperti trik.
Bagaimana membalas penolakan 4.5.4?
Percakapannya berlangsung di App Store Connect, tempat kamu membalas pesan App Review. Perbaiki dulu: hapus kewajibannya, tambahkan persetujuan marketing, atau bersihkan teksnya, lalu buat build baru. Template yang akan saya pakai, sesuaikan sendiri:
Hello,
Thank you for your feedback on Guideline 4.5.4.
In the new build:
- The app works fully if notifications are denied.
- Promotional notifications are sent only to users
who turn on "[toggle name]" in [screen]. It is off
by default and can be turned off at any time.
- Notifications never include [sensitive data].
How to test:
1. Deny notifications at the first prompt.
2. Open [feature]: it works without them.
3. Open [screen] to see both toggles.
Best regards,
Checklist 4.5.4 sebelum submit
- App bisa dipakai sepenuhnya setelah izin ditolak, tanpa layar macet atau hadiah yang dicabut.
- Jendela iOS muncul setelah tindakan yang berguna, tidak pernah di layar pertama.
- Setiap promosi, lokal maupun remote, bergantung pada persetujuan marketing yang mati secara default.
- Ada layar pengaturan di app untuk mematikan pengingat dan penawaran.
- Tidak ada teks notifikasi yang menampilkan data kesehatan, nominal uang, atau pesan pribadi.
- Tidak ada promosi di level "Time Sensitive".
- Catatan review mencantumkan notifikasi yang dikirim di hari-hari pertama.
- Kamu sudah menguji alurnya dengan menolak setiap izin. Panduan TestFlight menunjukkan cara menginstal build kamu untuk tes ini.
Cek berkasmu sebelum dikirim
Review Kit berisi checklist saya sebelum submit, template catatan untuk tester, dan skill Claude Code yang memeriksa proyek kamu. Kalau butuh pandangan manusia, pesan satu jam dengan saya: kita periksa notifikasi dan layar pengaturan kamu bersama lewat video call. Langkah lengkapnya ada di halaman app ditolak Apple.
Sedang menyiapkan rilis pertama? Ikuti diagnostic gratis: diagnostic ini mengurutkan langkah-langkahnya dan mengirimkan checklist anti-penolakan Apple saya.
Pertanyaan umum
Apa arti "Guideline 4.5.4 - Design - Apple Sites and Services"?
Itu judul penolakan saat Apple menilai notifikasi kamu wajib, terlalu membuka privasi, atau bersifat promosi tanpa persetujuan. Baca kalimat setelah judulnya: di situ tertulis apa yang ditemukan reviewer.
Bolehkah meminta izin notifikasi saat onboarding?
Boleh, asalkan menolak tidak memblokir apa pun dan permintaannya muncul setelah momen yang menunjukkan manfaatnya. Jangan pernah menjadikan persetujuan sebagai syarat hadiah: 5.1.2(i) melarangnya.
Apakah notifikasi akhir trial termasuk marketing?
Tafsiran saya: tidak, kalau hanya memberi info soal trial yang sedang berjalan. Kalau menawarkan diskon atau langganan lain, notifikasi itu jadi promosi dan butuh persetujuan marketing.
Apakah notifikasi lokal juga kena guideline 4.5.4?
Guideline-nya membahas notifikasi push, tapi lampiran 1 lisensi developer menerapkan aturan promosi ke notifikasi lokal. Perlakukan keduanya dengan cara yang sama.
Apakah notifikasi provisional membebaskan dari persetujuan marketing?
Tidak. Notifikasi provisional menghindari jendela iOS di awal, tapi promosi tetaplah promosi: tetap butuh persetujuan eksplisit di dalam app dan cara untuk berhenti.

