Come inviare notifiche push da WordPress a browser e telefoni

Un membro del tuo sito riceve un nuovo messaggio, ma ha chiuso la scheda del tuo sito un’ora fa. Un’email forse lo raggiungerà più tardi, da qualche parte tra le newsletter. Una notifica push compare sul suo computer o sul suo telefono in pochi secondi, anche a sito chiuso, e con un clic apre la conversazione.
I browser lo supportano da anni, e anche un sito WordPress può usarlo. Questo articolo spiega come funziona il web push, cosa lo rende più difficile di quanto sembri su WordPress, cosa fare con gli iPhone e come WordPlus Cloud invia le notifiche push per un sito WordPress.
Come funziona il web push
Il web push ha tre parti: il browser, il servizio push dell’azienda che lo sviluppa e il tuo sito.
- Il permesso, una volta sola. Il browser chiede al membro se il tuo sito può mostrargli notifiche. La scelta vale per il sito, e il membro può cambiarla in qualsiasi momento nel browser.
- Un service worker. È un piccolo script che il browser conserva per il tuo sito e avvia da solo quando arriva una notifica push, così la notifica compare anche quando nessuna pagina del sito è aperta.
- Una sottoscrizione. Il browser si registra presso il suo servizio push (quello di Google per Chrome, di Mozilla per Firefox, di Apple per Safari, e così via) e dà al tuo sito un indirizzo e delle chiavi per quel solo browser. Un membro con un portatile e un telefono ha due sottoscrizioni.
- L’invio. Il tuo sito cifra la notifica con le chiavi di quel browser, firma la richiesta con una propria coppia di chiavi e la invia a quell’indirizzo. Il servizio push la consegna appena il dispositivo è online. Non serve alcun account presso nessun servizio push.
Perché su WordPress è più difficile di quanto sembri
Il lato del browser è la parte facile. È nell’invio che un sito WordPress va incontro ai problemi.
- Ogni notifica push è cifrata per un solo browser. Un messaggio a un gruppo di 50 membri, ognuno con un telefono e un computer, vuol dire 100 cifrature separate e 100 richieste ai servizi push. In PHP su un hosting condiviso servono secondi, o dentro la richiesta del membro che ha inviato il messaggio, che resta ad aspettare, o in background.
- Il lavoro in background aspetta i visitatori. WordPress esegue le sue attività pianificate, WP-Cron, quando qualcuno apre una pagina. In una serata tranquilla una coda di notifiche può aspettare per minuti il visitatore successivo, e la notifica arriva quando il momento è ormai passato.
- WordPress non sa chi sta guardando. Una notifica push dovrebbe raggiungere i membri che non sono sul sito, non comparire sopra la conversazione che qualcuno sta leggendo in quel momento. WordPress vede solo richieste, quindi non può sapere chi ha il sito aperto in una scheda. Per saperlo serve una connessione che resta aperta, e, come abbiamo spiegato in perché WordPress non riesce a tenere aperto un websocket, un hosting WordPress non può mantenerla.
- Un solo service worker per sito. Un browser conserva un solo worker per indirizzo. Due plugin che installano ciascuno il proprio si sostituiscono a vicenda, e le notifiche di uno dei due smettono di arrivare, senza alcun errore.
- Le sottoscrizioni diventano obsolete. I membri cancellano i dati del browser, cambiano dispositivo o disattivano le notifiche. Il servizio push allora rifiuta quell’indirizzo, e un sito che non lo rimuove continua a inviare notifiche a nessuno.
I servizi push gestiti si occupano dell’invio al posto tuo, ma di solito con un loro script sulle tue pagine, un loro worker e i dispositivi dei tuoi membri registrati da loro, non sul tuo sito.
iPhone e iPad
Safari su iPhone o iPad mostra le notifiche web push solo per un sito aggiunto alla schermata Home, a partire da iOS 16.4. In una normale scheda di Safari non arriva nessuna notifica push, e pochi membri aggiungono mai un sito alla schermata Home.
Per questo sugli iPhone la strada affidabile è un’app. Un’app nativa riceve le sue notifiche push tramite il servizio di Apple, e su Android tramite quello di Google, e una chiamata in arrivo può squillare come una normale telefonata, anche a schermo bloccato. Ecco perché un sito con molti membri che lo usano dal telefono di solito vuole entrambe le cose: il web push per i computer e i browser Android, e un’app per tutti gli altri.
Come WordPlus Cloud invia le notifiche push per WordPress
WordPlus Cloud for WordPress invia le notifiche push dei plugin del tuo sito, così il tuo hosting non deve mai farlo. Better Messages lo usa da subito, per i nuovi messaggi e per le chiamate in arrivo:
- Il tuo sito non invia mai da solo una notifica push. Quando un membro invia un messaggio, Better Messages lo passa ai nostri server in tempo reale insieme alle sottoscrizioni dei membri che potrebbero aver bisogno di una notifica. I server cifrano e inviano ogni notifica, così il tuo hosting fa una sola breve richiesta, come per qualsiasi messaggio, qualunque sia la dimensione del gruppo.
- Solo ai membri che non sono sul sito. Gli stessi server consegnano il messaggio a ogni pagina che ha la conversazione aperta, quindi sanno chi è sul sito in quel momento. Una notifica push va solo ai membri che non ci sono, oppure, se lo scegli, anche a chi non ha letto il messaggio 5 secondi dopo.
- Niente della conversazione sulla schermata di blocco. Una notifica di messaggio indica il mittente, con la sua foto, e con un clic apre la conversazione. Il messaggio resta sul tuo sito, così nessuna sua parte rimane su un telefono bloccato né passa dai servizi push.
- Una notifica per conversazione. Una notifica più recente della stessa conversazione sostituisce quella precedente, così cinque messaggi di fila sono una sola notifica, non cinque.
- Un solo permesso, per tutto il sito. WordPress serve un solo service worker e tiene una sola sottoscrizione per browser, condivisa da tutti i plugin WordPlus del sito, così un membro consente le notifiche una volta sola. Le sottoscrizioni che un servizio push rifiuta vengono rimosse da sole.
- Ogni browser che supporta il web push. Chrome, Edge, Firefox e Opera su computer e Android, Safari su Mac, e Safari su iPhone o iPad per un sito aggiunto alla schermata Home. I membri che non consentono nessuna di queste notifiche ricevono comunque le notifiche via email.
Per attivarlo basta un’impostazione in Better Messages, come mostra la sua documentazione sul web push. Il browser chiede poi il permesso a ogni membro in un momento sensato, quando apre per la prima volta una conversazione, e non subito al caricamento di una pagina.
La tua app per iPhone e Android
Per i membri che usano il telefono, Better Messages crea le tue app iOS e Android, con il nome e l’icona del tuo sito, pronte da pubblicare sull’App Store e su Google Play. Le loro notifiche push passano da Apple e Google, le chiamate in arrivo squillano come normali telefonate, e i membri accedono con il loro account del tuo sito. Le build, le chiamate e le notifiche push girano su WordPlus Cloud e sono incluse nell’abbonamento. Per pubblicare un’app servono i tuoi account sviluppatore presso Apple e Google, e la documentazione dell’app iOS illustra ogni passaggio.
Notifiche push senza un server tutto tuo
Le notifiche push sono incluse in ogni abbonamento a WordPlus Cloud for WordPress, accanto agli aggiornamenti in tempo reale, alle chiamate, al live streaming e all’AI, con un prezzo per sito. Il tuo hosting continua a rispondere alle richieste, e i membri vengono a sapere di un nuovo messaggio ovunque si trovino.
Scopri WordPlus Cloud for WordPress, o i prezzi per il tuo numero di siti.