Mobile Web Push Notification - What is the typical Delivery rate? Can it be 100%? - google-chrome

I am trying to use mobile web push notifications to enable chat on my site. Since I have a use case to remind users about any updates on the chat - I want to use push notification on the web.
I have experimented with web push notification using FCM and the delivery rate hovers around 60% for me. It is either not delivered (no delivered_time stamp) or gives a 400 error - "Invalid Token format"
I need to understand if there are any improvements I can make to increase the delivery rate? Can it be 100%?
Also, does notifying on mobile web for chat seem to be a valid use case for push notifications or do you think there are better alternatives?
Dump of my log - https://docs.google.com/spreadsheets/d/1oiGkfgiRtoDZTT6bSu9UduHj6IQljj5bFDbliDvbI8I/edit?usp=sharing

Unlike GCM(now FCM) notifications, web notifications need the browser to be open(at least in the background) for them to be delivered. And There are still a lot of anolmalies in the system since it is still marked as an experimental technology. Even though the delivery rate can't be 100%, it becomes more and more stable with every release and the future is bright for web-push-notifications.
We experience a delivery rate of 60-70% on tracking impressions of the campaigns for 36 hours.

Related

What keeps my "always free" account from being terminated?

I have a small website running on the "always free" tier. It's perfect for my needs. After my trial period ended (and I hadn't used any fee-based resoures), I reverted back to "always free." This is fine. This morning, I received an email which read, in part:
Your Always Free resources will remain available to you as long as you
actively use your account.
but doesn't define the meaning of "actively use your account." I would just chat online with someone, but that's not available to me. I tried to use their community forums, but their login seems busted, so I landed here. (No offense, but I was under the impression this is mostly for development questions.)
Is having a website running sufficient to qualify as "active use?" Do I need to login to the console periodically? No matter the use, what constitutes "active?" For example, if I am required to login the the console periodically, how often to I have to do that? Weekly? Monthly?
Based on the "Inactivity Monitoring and Database Stoppage" sections of the documentation, Always Free account activity works like this:
Oracle Autonomous Database: "Successfully making a SQL*Net or HTTPS connection resets these measurements to zero"
APEX: "Successfully making a HTTPS connection resets these measurements to zero."
COMPUTE and others: Unknown - I can't find the relevant documentation
Per the documentation, you get 7 days before the resource is automatically stopped, and then 90 days before the resource is permanently deleted.
Based on my experience with the database, you get a warning email after 7 days, and then 2 days later the resource is stopped. You get a warning email about permanent deletion after 60 days, and luckily I don't have experience with how long it takes for a resource to be permanently deleted.

No insight into what is happening with push notifications

I wanted to know is there is there anything in works that gives info on what happened to push notifications from service workers ?
GCM has it in play console where exact journey of a push is given.
We are getting message ids for most of the active subscribers but when we are not getting impressions in our analytics saying it reached the device.
Can a system be built which explains what happened to push notification is given.
Also can information be passed if there any cache clearing or anything that took away the device token of that device ? That would be really helpful as then we can understand what is causing that the device tokens to go away.
Right now our stats are 400K active subscribers for which we get valid message ids and only 50K impressions for them even when the push expiry is 10 days. This is a really sad ratio. We also have put on our entire website https and have put a mechanism to get back their dev tokens if they visit again and we see we dont have their token even though they had subscribed earlier.

Checking if notifications are enabled - Windows phone 8(.1)

Short question this time - is it possible for me to check whether the user has disabled notifications in the notifications/actions centre?
Currently, notifications are sent via MPNS, and work as intended, and the only "issue" is being aware if the user will receive toast notifications or not :)
The only two sources I managed to find so far even remotely connected are the one discussing possible restrictions due to the battery saver, and discussing sending toast notifications from application (which is not what is needed here).
Since MS states in their documentation that we're not supposed to "use your app to ask users to enable toast notifications if they have chosen to disable them. Your app is expected to work without toast notifications.", I feel that perhaps this information is not as freely accessible as it might seem at first glance, but hopefully some of you can either confirm my suspicions or help me overcome it :)

windows phone 8: how to check if there are new messages on the database (server) all the time (even if the app is not running)?

I’ve been developing Windows desktop applications for many years, but just started developing Windows Phone 8 applications so, as you can imagine, I have many questions and doubts.
This is my problem so far:
I need an application to check any certain time if there are new messages / notifications in the server database, even if the application is not running, and show it (in some way, not sure how) on the phone. At the end, I want something similar to Facebook application (or others) that checks constantly if there are new messages even if I’m not using the phone.
How can I do that? Is there any tutorial or guide that explains that?
Thank you very much
There's two mechanisms available on Windows Phone to periodically check a data source and display notifications:
Push notifications: the server directly sends the notification to the phone. It provides the best user experience, because the notification is send (nearly) instantaneously, and because all the processing is done server-side (so it doesn't impact the phone's autonomy). The obvious drawback is that you need a server infrastructure to send the notifications.
Background agents: your application runs in background, is woke up periodically (every 30 minutes or so), and is allowed to run for about 15 seconds. During those 15 seconds, you can check your data source, and display a notification if needed. The two major drawbacks are that you can't choose when you're background agent executes (so the notification can be displayed 30 minutes late), and it'll have an impact on the battery life.
What you need is push notifications.
Microsoft already provides this functionality throught Azure Mobile Services and here is something to get you started : Get started with push notifications in Mobile Services

Can push technology / comet be faked?

Client has a dating site and would like to have a popup (either a nice javascript overlay or a new browser window popup. we're flexible.) displayed to users when another user is visiting their page.
I'm familiar with push technology and Comet but it's quite challenging to implement this and may place serious strain on a server with over 100,000 unique visitors per day.
I'm wondering if there is a way of faking this, perhaps by not being accurate to the second. I can't really think of any way.
This is a classic LAMP environment.
Anyone?
EDIT: what about this: placing an iframe on the page that refreshes every few seconds and at each page load it checks in the db if a visitor has been logged on this profile page. if so, it shows a message. the message would be visible but the background of the iframe would blend in with the background of the site and be invisible. if the message fades in and out, it would look like a JS box "popping up".
The only way to "fake" comet is via polling of some sort, which is always a possibility. An iframe, xhr, or jsonp request are all possibilities for performing said polling.
You might be better off purchasing a pre-built comet server (I'll recommend, of course, the one I helped build, WebSync for IIS/ASP.NET). If you're worried about the load, you could check out our On-Demand version where we'll host it for you.
Regardless, WebSync (or whatever other pre-packaged product you might check out) would scale to a hundred thousand users a day without much of a problem, and would potentially be more efficient than polling, since it would only hit your database when new users arrived, rather than every couple seconds; that said, if you keep the "check for new users" query simple enough, and a few seconds of delay is OK, the polling idea would be the "simpler" solution.
Check out http://en.wikipedia.org/wiki/Web_Sockets if you want to do real push. This isn't widely supported in browsers yet, but there are plenty of JavaScript and Flash libraries that provide it already.
Or a cheaper way is to record in your DB each page view.
Then when any user makes a web request, check in the DB if anybody has visited their page since their last web request.
If so, pop up your dialog.
This second way wouldn't popup anything if the user just left their browser sitting there, but if they were actively interacting with the site, it would achieve your goals very easily.
I would start with this second simpler solution, which is very easy to implement. If your client wants it more interactive, you can provide solutions and tradeoffs/costs for various options.
Gather statistics as to how many visitors that user's website gets per day, and then subdivide that, so that it's a percentage chance that the user will be told there is a user on his site (even if there actually isn't), based within the timeframe he's at the part where he can receive the popup. I think this is the closest you are going to get without having some sort of notification being sent.
You could do this to minimize server usage if you wanted push:
When a user visits a website, check and see if the person who would be getting the notification is online and capable of being notified, and if so, THEN do all the push stuff, otherwise forget it.