Ang mga Push notification ay mga mensaheng ipinapadala ng server sa mobile device kahit na sarado ang app. Ayon sa datos ng Google Firebase, 2024, ang mga Push notification ay pinoproseso sa pamamagitan ng mga espesyal na serbisyo — FCM sa Android at APNS sa iOS, na sumusuporta sa real-time na paghahatid sa milyun-milyong device nang sabay-sabay. Sila ay naging mahalagang bahagi ng karanasan ng gumagamit sa mga modernong mobile app.
Mga Pangunahing Punto
Ang mga Push notification ay maiikling mensahe na ipinapadala ng server ng app sa device ng gumagamit nang walang tahasang kahilingan nito. Ang mga ito ay ipinapakita bilang mga banner, badge sa icon o sound signal, na nakakaakit ng atensyon ng gumagamit sa app at nagbibigay-alam tungkol sa mahahalagang kaganapan.
Ang Push notification ay binubuo ng pamagat, katawan ng mensahe at opsyonal na data (payload). Hindi tulad ng SMS, ang mga Push notification ay libre para sa gumagamit at inihatid sa pamamagitan ng imprastraktura ng mga cloud service — FCM para sa Android at APNS para sa iOS. Ang mga pangunahing layunin ng Push notification: pagtaas ng pakikipag-ugnayan, pagbibigay-alam tungkol sa mga kaganapan at pagbabalik ng gumagamit sa app.
Ipinapakita ng estadistika ng paggamit na ang mga Push notification na naka-configure nang tama ay nagpapataas ng retensyon ng app ng 30-60%. Gayunpaman, ang labis na dalas ng notification ay humahantong sa pag-unsubscribe — mahigit 60% ng mga gumagamit ay nag-o-off ng notification kung ipinapadala ang mga ito nang higit sa tatlong beses sa isang araw.
Ang Push system ay may tatlong bahagi: server ng app, serbisyo ng platform (FCM/APNS) at client app sa device. Ang server ay nagpapadala ng kahilingan sa serbisyo ng platform, na naghahatid ng notification sa target na device sa pamamagitan ng permanenteng koneksyon sa operating system.
Ang mekanismo ng paghahatid ng mga Push notification ay batay sa permanenteng koneksyon sa pagitan ng device at ng serbisyo ng platform. Ang operating system ay nagpapanatili ng naka-encrypt na channel ng komunikasyon kung saan dumadaan ang lahat ng Push message.
Sa unang paglunsad, humihingi ang app ng pahintulot na magpadala ng notification at tumatanggap ng natatanging token ng device mula sa FCM o APNS. Ang token na ito ay isang string na hanggang 4 KB ang haba, na natatanging tumutukoy sa instance ng app. Nagbabago ang token kapag muling na-install ang app o na-restore ang device mula sa backup.
class FirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
showNotification(message.notification)
}
}
Ang server ng app ay nagpapadala ng HTTP request sa FCM API o APNS API, na nagtutukoy ng target na token, pamagat, katawan at karagdagang data. Ang serbisyo ng platform ay tumutugon sa status ng paghahatid: success, invalid token (tinanggal ng device ang app) o rate-limited (lumampas sa dalas ng pagpapadala).
fetch("https://fcm.googleapis.com/fcm/send", {
method: "POST",
headers: {
"Authorization": "key=AIzaSy...",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "device_token_here",
notification: {
title: "ipadala ang token sa iyong sariling server",
body: "Mayroon kang bagong notification!"
}
})
})
Ang pagpili sa pagitan ng FCM at APNS ay depende sa target na platform. Sinusuportahan ng FCM ang Android at iOS, APNS — ang Apple ecosystem lamang. Tingnan natin ang mga pangunahing pagkakaiba na mahalaga para sa pag-develop ng cross-platform na mobile app.
Ang FCM ay serbisyo ng Google na tumatakbo sa ibabaw ng Google Play Services. Sinusuportahan nito ang dalawang scheme ng paghahatid: mga notification na may awtomatikong pagpapakita (display notifications) at data notification na pinoproseso mismo ng app. Ang FCM ay libre at walang limitasyon sa bilang ng mga mensaheng ipinapadala.
Ang APNS ay serbisyo ng Apple na may suporta para sa multimedia attachment (mga larawan, video, audio) hanggang 10 MB. Para sa pagpapadala sa pamamagitan ng APNS ay kinakailangan ang TLS certificate o authentication key. Nililimitahan ng APNS ang dalas ng pagpapadala sa isang device — hindi hihigit sa 150 notification bawat minuto, pagkatapos ay ia-activate ang rate limiting.
| Katangian | FCM | APNS |
|---|---|---|
| Mga Platform | Android, iOS, Web | iOS, macOS, watchOS |
| Mga Kinakailangan | Google Play Services | Apple Developer Program |
| Media | hanggang 4 KB (data) | hanggang 10 MB (attachment) |
| Priyoridad | normal/high | immediate/power-saving |
| Gastos | libre | libre (kinakailangan ang account) |
Ang mga Push notification ay inuuri ayon sa paraan ng pagpapakita at layunin. Ang pag-unawa sa mga uri ay tumutulong sa pagpili ng tamang estratehiya para sa bawat senaryo ng pakikipag-ugnayan sa gumagamit.
Ang pinakakaraniwang uri — ipinapakitang notification na may pamagat at katawan. Awtomatikong ipinapakita ito ng operating system sa system tray, lock screen at bilang banner. Maaaring i-configure ng developer ang tunog, vibration, badge sa icon at action button para sa direktang aksyon (tumugon, buksan, tanggihan).
Ang mga data notification ay naglalaman ng payload lamang nang walang visual na pagpapakita. Pinoproseso sila ng app sa background: nagsi-sync ng data, nag-a-update ng cache o nagsisimula ng pag-download. Sa Android, ang data notification ay garantisadong maihahatid, sa iOS — kapag aktibo lamang ang app o sa pamamagitan ng background fetch.
Ang mga modernong mobile operating system ay sumusuporta sa mga pinalawak at media notification na may mga larawan, GIF, video at audio. Sa iOS ito ay naipapatupad sa pamamagitan ng UNNotificationAttachment, sa Android — sa pamamagitan ng BigPictureStyle at InboxStyle para sa pag-customize ng hitsura ng notification sa system tray.
Ang mga tahimik na notification ay hindi ipinapakita sa gumagamit at ginagamit para sa background synchronization. Sa iOS may mataas na priyoridad ang mga ito para sa mga gawain tulad ng pag-update ng data bago buksan ang app. Tinatrato sila ng Android bilang data notification na may minimal na priyoridad.
Ang pag-configure ng mga Push notification ay nangangailangan ng mga aksyon sa antas ng imprastraktura, panig ng server at client code. Tingnan natin ang tipikal na proseso para sa isang cross-platform na mobile project.
Para sa Android kailangan gumawa ng proyekto sa Firebase Console, idagdag ang google-services.json sa proyekto at i-configure ang FirebaseMessagingService. Ang token ng device ay nakukuha sa pamamagitan ng FirebaseInstanceId o FirebaseMessaging.getInstance().token, pagkatapos ay ipinapadala sa server sa pamamagitan ng API sa unang paglunsad o kapag nagbago ito.
Para sa iOS kinakailangan ang subscription sa Apple Developer Program, paggawa ng Push certificate o APNS key sa Developer Portal, at pag-enable ng Capability Push Notifications sa Xcode. Ang pagrehistro para sa notification ay ginagawa sa pamamagitan ng UIApplication.shared.registerForRemoteNotifications na may pagtanggap ng deviceToken sa AppDelegate.
import UIKit
import UserNotifications
@main
class AppDelegate: UIResponder,
UIApplicationDelegate {
func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken
deviceToken: Data
) {
let token = deviceToken
.map { String.format("%02x", $0) }
.joined()
// ipadala ang token sa iyong server
}
}
Sa panig ng server, ang mga Push notification ay ipinapadala sa pamamagitan ng REST API o Admin SDK. Para sa FCM ginagamit ang Firebase Admin SDK (magagamit para sa Node.js, Java, Python, Go), para sa APNS — mga library ng pusher (pushy para sa Java, apn2 para sa Node.js). Inirerekomenda na mag-imbak ng mga token sa database na may timestamp ng huling pag-update.
Ang seguridad ng mga Push notification ay kritikal dahil ang kumpidensyal na data ay maaaring mailipat sa pamamagitan ng mga ito. Ang parehong platform ay nagbibigay ng mga pangunahing mekanismo ng proteksyon, ngunit dapat gamitin ng developer ang mga ito nang tama.
Ang payload ng Push notification ay maaaring maglaman ng personal na data ng mga gumagamit: mga pangalan, halaga ng transaksyon, link sa mga mensahe. Kahit na naka-encrypt ang communication channel sa pagitan ng FCM/APNS at device, maaaring ma-intercept ang data sa antas ng app sa pag-intercept ng notification ng third-party software. Inirerekomenda na i-encrypt ang sensitibong payload sa server gamit ang AES-256 algorithm at i-decrypt ito sa device gamit ang key na nakaimbak sa Keychain (iOS) o EncryptedSharedPreferences (Android).
Ang token ng device ay isang session identifier na maaaring makompromiso kapag na-hack ang device o na-intercept ang trapiko. Dapat suriin ng server ng app ang mga token bago magpadala: itugma ang mga ito sa database, subaybayan ang mga hindi aktibong token at tanggalin ang mga ito sa paulit-ulit na InvalidToken error. Ang FCM at APNS ay nagbabalik ng InvalidRegistration status para sa mga hindi wastong token — huwag itong balewalain.
Walang kontrol sa dalas, ang mga Push notification ay maaaring maging kasangkapan ng spam na nakakairita sa mga gumagamit at nagpapababa ng retensyon. Magtakda ng mga limitasyon sa server: hindi hihigit sa 5 notification bawat oras sa isang gumagamit at hindi hihigit sa 3 magkaparehong mensahe. Para sa transaksyonal na notification (kumpirmasyon ng order, pagbabago ng password) ang mga limitasyon ay maaaring mas mataas — hanggang 10 bawat oras, dahil nagdadala ang mga ito ng kritikal na mahalagang impormasyon. Gumamit ng rate limiting sa antas ng API ng pagpapadala upang hindi makapag-trigger ang attacker ng mass sending sa pamamagitan ng iyong server.
Mga Madalas Itanong
Oo, ang direktang koneksyon sa APNS ay hindi suportado sa Android — para sa mga device na walang Google Play Services ay ginagamit ang mga alternatibo tulad ng Huawei Mobile Services (HMS) at sariling WebSocket na koneksyon. Gayunpaman, nananatiling pamantayan ang FCM para sa karamihan ng mga app dahil sa pagiging libre at maaasahan.
Iniimbak ng FCM at APNS ang huling notification sa kanilang mga server at ihahatid ito kapag naibalik ang koneksyon. Sa bawat device ay naka-imbak lamang ang huling notification mula sa bawat app, kaya sa matagal na kawalan ng network ay nawawala ang mga intermediate na mensahe.
Ang mga pinakakaraniwang dahilan ay expired na Push certificate APNS (valid 1 taon), hindi wastong token ng device, naka-off na notification sa settings o naka-enable na power saving mode. Suriin ang certificate sa Apple Developer Console at tiyaking humihingi ang app ng pahintulot sa pamamagitan ng UNUserNotificationCenter.
Sa Android gamitin ang PendingIntent sa NotificationCompat.Builder na may pagsubaybay sa pagbubukas sa pamamagitan ng Intent. Sa iOS — ang pamamaraang UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). Nagbibigay ang FCM ng mga ulat sa paghahatid at pagbubukas para sa bawat ipinadalang notification.
Bahagya lamang — ang mga Push notification ay hindi nagpapanatili ng permanenteng koneksyon; ang operating system ay gumagamit ng iisang system channel para sa lahat ng app, na nagpapaliit ng kabuuang konsumo ng enerhiya. Ang madalas na pagpapadala (bawat 5 minuto) ay kumokonsumo ng mas maraming enerhiya para sa paggising ng device at paglabas sa sleep mode. Ang mga tahimik na notification sa iOS ay kumokonsumo ng mas maraming enerhiya dahil sa pag-activate ng app sa background para sa pagproseso ng natanggap na data.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din