Što su to web push notifikacije i kako funkcioniraju?

Push notifikacije više nisu ništa novo, a malo tko do sada već nije doživio da ih je neka web stranica tražila dopuštenje kako bi im mogla u budućnosti slati obavijesti. Iako su takve push notifikacije prilično korisne, lako mogu početi uzrokovati glavobolju ako ih se zlouporabi. No, o čemu je uopće riječ?

Matija Gračanin utorak, 13. veljače 2018. u 11:00

Većina modernih web servisa kao što su Facebook, Twitter ili Slack prikazuju web notifikacije i one, doista, nisu više ništa neobično te dodatno smanjuju granicu između mobilnih platformi i onih za stolna računala. Notifikacije nerijetko mogu biti prilično korisne, a jedna od ključnih pogodnosti koje one donose su činjenica da više nije potrebno svako toliko prebacivati se na neku od otvorenih kartica u web pregledniku kako bi se doznalo je li se u njoj nešto dogodilo, da li je stigla nova poruka ili objava. Sada će se, obično, u donjem desnom dijelu zaslona pojaviti praktična obavijest. Čak i onda kada ta web stranica nije otvorena, a posebna je prednost i to što se ista notifikacija može pojaviti i na pametnom telefonu bez potrebe za razvijanjem posebne aplikacije.

Primjer tipične obavijesti u Google Chromeu – korisno kada se korisnike želi podsjetiti na neki važan sadržaj
Primjer tipične obavijesti u Google Chromeu – korisno kada se korisnike želi podsjetiti na neki važan sadržaj

Ukratko, web push notifikacije su poruke na koje se može kliknuti, a koje dolaze s web stranica te koje će se pojaviti na desktopu ili mobilnom uređaju čak i onda kada web stranica nije otvorena u web pregledniku. Koncept notifikacija dobro je poznat na mobilnih platformama. Dovoljno je provesti svega jedan dan bez veze s Internetom i kada se pametni telefon ponovno poveže s mrežom svih mreža, odjednom će biti preplavljen obavijesnim porukama.

Ideja da se mogu primati notifikacije na pametnim telefonima oduvijek se dopadala onima koji su razvijali web primarno za web, a do prije nekoliko godina, razvojni su inženjeri morali sami izmišljati načine na koji bi svojim korisnicima dostavljali obavijesti kroz web preglednike. Treba, doduše, razlikovati on-site notifikacije koje se mogu dobivati kada se korisnik nalazi na samoj stranici ili se web stranicama nalazi otvorena u nekoj od kartica, te push notifikacije kod kojih nije potrebno browser uopće pokrenuti niti je potrebno imati otvorenu web stranicu s koje se poruka dobiva.

Standardiziranje notifikacija

To neprestano izmišljanje različitih mehanizama za slanje obavijesti trajalo je sve dok W3C, krovna organizacija koja propisuje standarde za World Wide Web, nije odlučila formalizirati i standardizirati Web Notifications API kroz koji je jasno definiran način na koji rade notifikacije u web preglednicima koji ih uopće i podržavaju (Chrome i sve izvedenice koje dijele Chromium kako svoj temelj, Firefox, Edge i Safari). Za razliku od mobilnih aplikacija gdje se pri instalaciji obično daje i odobrenje za primanje notifikacija, s web stranicama je proces ponešto drugačiji.

Bez davanja odobrenja, korisnik neće moći primiti obavijest – ako se prozorčić kojim se traži odobrenje samo zatvori, status odobrenja će biti postavljen na vrijednost default što znači da odobrenje opet treba zatražiti
Bez davanja odobrenja, korisnik neće moći primiti obavijest – ako se prozorčić kojim se traži odobrenje samo zatvori, status odobrenja će biti postavljen na vrijednost default što znači da odobrenje opet treba zatražiti

Prije svega, razvojni inženjeri moraju provjeriti koristi li korisnik web preglednik koji uopće podržava notifikacije, a kada to ustanovi, mora zatražiti odobrenje da mu ih počne slati. Tek kada korisnik da odobrenje, može se uspostaviti kanal putem kojega će u budućnosti pristizati poruke. Na nesreću za razvojne inženjere, ako korisnik odbije primati poruke, korisnika se više neće moći niti priupitati da naknadno odobri notifikacije. Doduše, može se provjeriti status odobrenja i obavijestiti korisnika da u postavkama samoga preglednika promijeni odgovarajući parametar.

S druge strane, na nesreću korisnika, konfiguracijske postavke web preglednika postale su dovoljno zapetljane da nije uvijek najjednostavnije (intuitivno) pronaći mjesto gdje se upravlja upravo tim postavkama, a i u svakom se web pregledniku nalazi na drugome mjestu što dodatno komplicira život i korisnicima i razvojnim inženjerima. Prvima kada žele poništiti dano odobrenje za primanje notifikacije, a drugima kada žele od korisnika da to odobrenje ipak ponovno da nakon što ga je inicijalno odbio.

Kako notifikacije uopće funkcioniraju?

Cijeli se koncept zapravo svodi na dva ključna API-a i to konkretno Notification API koji je zadužen za sam prikaz poruke i Push API koji je zadužen za dostavu poruka klijentu i to sa poslužitelja putem push servisa koji koristi sam klijent (web preglednik). No kako bi sve radilo onako kako je to i zamišljeno, tu je i service worker, posebna skripta koju web preglednici izvršavaju u pozadini i odvojeno od web stranica. Upravo service worker omogućava da se dostavi poruka bez obzira na to je li web stranica s koje poruka zapravo dolazi uopće otvorena u web pregledniku. U suštini, cijeli se proces može svesti na nekoliko koraka.

Kako funkcionira slanje push  notifikacija
Kako funkcionira slanje push notifikacija

Prvi je korak, barem sa strane razvojnih inženjera, registrirati svoju web stranicu na neki notifikacijski poslužitelj kao što je Googleov Firebase Cloud Messaging (FCM). Na umu valja imati da će web push notifikacije raditi samo ako web stranica koristi HTTPS. Na poslužiteljskoj strani se također moraju spremati podaci o korisnicima koji su dali odobrenje za primanje notifikacije, a između ostalog, valja čuvati korisničke ID-eve ako i tokene kako bi se odgovarajuće obavijesti prikazivale ciljanom korisniku i to na željenom uređaju (web push notifikacije se uredno mogu prikazivati i na računalima, pametnim telefonima i tabletima).

Jednom kada su sve privole prikupljene i sve je podešeno kako treba, svaki put kada se želi poslati notifikacija, korisnički podaci će biti prikupljeni s aplikacijskog poslužitelja i poslani nostrifikacijskom poslužitelju koji će najprije provjeriti je li korisnik odobrio primanje obavijesti. Ako je ta provjera u redu, service worker na strani klijenta će poslati zahtjev aplikacijskom serveru kako bi dobio podatke koji će se prikazati kao obavijest.

S druge strane, ako se žele koristiti on-site notifikacije, onda je stvar daleko jednostavnija. Preduvjet je, doduše, da korisnik ima otvorenu web stranicu na kojoj će se poruka prikazati, a ostalo se svodi na pisanje nekoliko linija JavaScript koda.

Nešto detaljniji pogled na to kako cijeli koncept push web notifikacija funkcionira i što je sve potrebno kako bi se korisnicima slale notifikacije:

U svakom slučaju, notifikacije doista mogu biti vrlo korisne i to pogotovo onda kada ih se ne zloupotrebljava. Srećom je relativno lako moguće zaustaviti primanje obavijesti ako se to ne želi i to tek tako da se povuče odobrenje u konfiguraciji web preglednika. Tako, čak i ako do zloupotrebe dođe i radna površina bude zatrpana obavijestima raznih servisa, lako je to spriječiti. No, razvojni inženjeri kao i marketinški odjeli trebali bi se pridržavati preporučenih principa koji se tiču slanja obavijesti. Notifikacije bi uvijek morale biti pravovremene, precizne i relevantne te uvijek na umu treba imati ono što korisniku doista treba kako efekt ne bi bio – kontraproduktivan.

Anketa Glasanje do 20.2.2018. Glasanje zatvoreno

Ukupni broj glasova: