Jak wysyłać powiadomienia push z WordPress do przeglądarek i na telefony

Użytkownik Twojej witryny dostaje nową wiadomość, ale kartę z Twoją witryną zamknął godzinę temu. E-mail może dotrzeć do niego później, gdzieś między newsletterami. Powiadomienie push pojawia się na jego komputerze lub telefonie w ciągu kilku sekund, nawet gdy witryna jest zamknięta, a jedno kliknięcie otwiera rozmowę.
Przeglądarki obsługują to od lat i witryna WordPress również może z tego korzystać. Ten wpis wyjaśnia, jak działa web push, dlaczego na WordPress jest to trudniejsze, niż się wydaje, co zrobić z iPhone’ami i jak WordPlus Cloud wysyła powiadomienia push za witrynę WordPress.
Jak działa web push
Web push składa się z trzech części: przeglądarki, usługi push firmy, która ją tworzy, i Twojej witryny.
- Zgoda, raz. Przeglądarka pyta użytkownika, czy Twoja witryna może pokazywać powiadomienia. Wybór dotyczy tej jednej witryny, a użytkownik może go w każdej chwili zmienić w przeglądarce.
- Service worker. To mały skrypt, który przeglądarka przechowuje dla Twojej witryny i uruchamia sama, gdy przychodzi powiadomienie push, więc powiadomienie pojawia się nawet wtedy, gdy nie jest otwarta żadna strona witryny.
- Subskrypcja. Przeglądarka rejestruje się w swojej usłudze push (Google dla Chrome, Mozilli dla Firefoksa, Apple dla Safari i tak dalej) i przekazuje Twojej witrynie adres oraz klucze dla tej jednej przeglądarki. Użytkownik z laptopem i telefonem ma dwie subskrypcje.
- Wysyłanie. Twoja witryna szyfruje powiadomienie kluczami tej przeglądarki, podpisuje żądanie własną parą kluczy i wysyła je pod ten adres. Usługa push dostarcza je, gdy tylko urządzenie jest online. Konto w żadnej usłudze push nie jest potrzebne.
Dlaczego na WordPress jest to trudniejsze, niż się wydaje
Część po stronie przeglądarki jest łatwa. Kłopoty witryny WordPress zaczynają się przy wysyłaniu.
- Każde powiadomienie push jest szyfrowane dla jednej przeglądarki. Wiadomość do grupy 50 użytkowników, z których każdy ma telefon i komputer, to 100 osobnych szyfrowań i 100 żądań do usług push. W PHP na hostingu współdzielonym zajmuje to kilka sekund, albo w ramach żądania użytkownika, który wysłał wiadomość i musi na to czekać, albo w tle.
- Praca w tle czeka na odwiedzających. WordPress uruchamia swoje zaplanowane zadania, WP-Cron, gdy ktoś otwiera stronę. W spokojny wieczór kolejka powiadomień push może czekać całe minuty na następnego odwiedzającego, a powiadomienie przychodzi, gdy chwila już minęła.
- WordPress nie wie, kto patrzy. Powiadomienie push powinno trafić do użytkowników, których nie ma na witrynie, a nie wyskakiwać nad rozmową, którą ktoś właśnie czyta. WordPress widzi tylko żądania, więc nie wie, kto ma witrynę otwartą w karcie. Do tego potrzeba połączenia, które pozostaje otwarte, a takiego, jak wyjaśniliśmy we wpisie o tym, dlaczego WordPress nie utrzyma websocketu, hosting WordPress nie jest w stanie utrzymać.
- Jeden service worker na witrynę. Przeglądarka przechowuje jeden worker dla jednego adresu. Dwie wtyczki, z których każda instaluje własny, zastępują się nawzajem, a powiadomienia jednej z nich przestają docierać, bez żadnego błędu.
- Subskrypcje tracą ważność. Użytkownicy czyszczą przeglądarki, zmieniają urządzenia albo wyłączają powiadomienia. Usługa push odrzuca wtedy ten adres, a witryna, która go nie usunie, dalej wysyła powiadomienia w próżnię.
Hostowane usługi push zdejmują z witryny wysyłanie, ale zwykle wymagają własnego skryptu na Twoich stronach i własnego workera, a urządzenia Twoich użytkowników trzymają u siebie, nie na Twojej witrynie.
iPhone i iPad
Safari na iPhonie lub iPadzie pokazuje powiadomienia web push tylko dla witryny dodanej do ekranu początkowego, od iOS 16.4. W zwykłej karcie Safari nie ma ich wcale, a niewielu użytkowników kiedykolwiek dodaje witrynę do ekranu początkowego.
Na iPhonie pewnym sposobem jest więc aplikacja. Natywna aplikacja dostaje powiadomienia push przez własną usługę Apple, a na Androidzie przez usługę Google, a połączenie przychodzące może dzwonić jak zwykłe połączenie telefoniczne, także na zablokowanym ekranie. Dlatego witryna z wieloma użytkownikami na telefonach zwykle potrzebuje obu: web push dla komputerów i przeglądarek na Androidzie oraz aplikacji dla wszystkich pozostałych.
Jak WordPlus Cloud wysyła powiadomienia push dla WordPress
WordPlus Cloud for WordPress wysyła powiadomienia push wtyczek na Twojej witrynie, więc Twój hosting nigdy nie musi tego robić. Better Messages korzysta z tego od razu, przy nowych wiadomościach i połączeniach przychodzących:
- Twoja witryna nigdy sama nie wysyła powiadomień push. Gdy użytkownik wysyła wiadomość, Better Messages przekazuje ją naszym serwerom czasu rzeczywistego razem z subskrypcjami użytkowników, którzy mogą potrzebować powiadomienia. Serwery szyfrują i wysyłają każde powiadomienie, więc Twój hosting wykonuje jedno krótkie żądanie, jak przy każdej wiadomości, niezależnie od wielkości grupy.
- Tylko do nieobecnych. Te same serwery dostarczają wiadomość do każdej strony, na której otwarta jest rozmowa, więc wiedzą, kto jest teraz na witrynie. Powiadomienie push trafia tylko do tych, których na niej nie ma, albo, jeśli tak wybierzesz, także do tych, którzy nie przeczytali wiadomości po 5 sekundach.
- Nic z rozmowy na zablokowanym ekranie. Powiadomienie o wiadomości podaje jej nadawcę z jego zdjęciem i po kliknięciu otwiera rozmowę. Sama wiadomość zostaje na Twojej witrynie, więc żadna jej część nie czeka na zablokowanym telefonie ani nie przechodzi przez usługi push.
- Jedno powiadomienie na rozmowę. Nowsze powiadomienie z tej samej rozmowy zastępuje poprzednie, więc pięć wiadomości z rzędu to jedno powiadomienie, a nie pięć.
- Jedno pytanie o zgodę dla całej witryny. WordPress udostępnia jeden service worker i przechowuje jedną subskrypcję na przeglądarkę, wspólną dla wszystkich wtyczek WordPlus na witrynie, więc użytkownik zezwala na powiadomienia tylko raz. Subskrypcje odrzucone przez usługę push są usuwane automatycznie.
- Każda przeglądarka z obsługą web push. Chrome, Edge, Firefox i Opera na komputerach i Androidzie, Safari na Macu oraz Safari na iPhonie lub iPadzie dla witryny na ekranie początkowym. Użytkownicy, którzy nie zezwolą na nic z tego, nadal dostają powiadomienia e-mail.
Włączenie tego to jedno ustawienie w Better Messages, jak pokazuje jego dokumentacja web push. Przeglądarka pyta wtedy każdego użytkownika w sensownym momencie, gdy po raz pierwszy otwiera rozmowę, a nie zaraz po załadowaniu strony.
Twoja własna aplikacja na iPhone’a i Androida
Dla użytkowników na telefonach Better Messages buduje Twoje własne aplikacje na iOS i Androida, z nazwą i ikoną Twojej witryny, gotowe do publikacji w App Store i Google Play. Ich powiadomienia push idą przez Apple i Google, połączenia przychodzące dzwonią jak zwykłe połączenia telefoniczne, a użytkownicy logują się kontem z Twojej witryny. Kompilacje, połączenia i powiadomienia push działają w WordPlus Cloud i są w ramach subskrypcji. Do publikacji aplikacji potrzebujesz własnych kont dewelopera w Apple i Google, a dokumentacja aplikacji na iOS przeprowadzi Cię przez każdy krok.
Powiadomienia push bez własnego serwera
Powiadomienia push są w każdej subskrypcji WordPlus Cloud for WordPress, obok aktualizacji na żywo, połączeń, transmisji na żywo i AI, z ceną za witrynę. Twój hosting dalej odpowiada na żądania, a użytkownicy dowiadują się o nowej wiadomości, gdziekolwiek są.
Zobacz WordPlus Cloud for WordPress albo cennik dla tylu witryn, ilu potrzebujesz.