I have developed an iOS app and have my server (just a couple of php files and a database) set up on GoDaddy.com.
Unfortunately GoDaddy.com does not allow me to send a push notification from its server because it requires to use a specific port.
I have users' device token stored in my database, is there any service online that I can use to send push notification with the device token I have?
There are some very good industrial solutions for iOS push notifications service that use APNS:
PushApps - free for 1M notifications per month, and unlimited notifications for 19.99 per month, and you can import your users via the API or b sending the a csv file - here is the documentation
Urban Airship - free up to 1M notifications per month, afterwards you are charged per 1000 notifications
Parse - also free for the first 1M notifications
PushWoosh - free for 1M devices, premium plans are from 39 EURO
Diclaimer - I work in PushApps and also use their product in my applications for over a year now.
Netmera (www.netmera.com), which provides a RESTful API and a lot of free push alert and rich html push.
This tutorial page (http://cp.netmera.com/nm/admin/tutorial).
Related
I'm currently struggle with annoying store-and-forward function limitation of APNS. Here is a quote from the Apple docs:
If APNs attempts to deliver a notification but the device is offline,
the notification is stored for a limited period of time,
and delivered to the device when it becomes available. Only ONE recent
notification for a particular application is stored. If multiple notifications
are sent while the device is offline, each new notification causes the prior
notification to be DISCARDED.
I specifically make ALL CAPS for the keywords of my problem. In Google Cloud Messaging notifications service their store and forward function have much more capabilities:There is a limit on how many messages can be stored without collapsing. That limit is currently 100. If the limit is reached, all stored messages are discarded. - so Google service can store up to 100 push messages for a max time of 28 days. And in addition to this they have also coalescing (collapsible) notifications but for 4 different collapsible messages. And in APNS all we have is - one recent
notification for a particular application is stored - it is quite a limited behaviour for my app (I need to store at least four different push notifications while the device is offline at one given moment of time).
So I'm interested are there some ways I can improve store and forward capability of APNS?? Can I in some way make APNS to store more push notifications for a specific device?Or at least store several coalescing notifications as in Google collapsible messages? Some third party solutions or whatever? May be I missed something in APNS docs? I know we can orchestrate apple push notification on google platform - but I think it is not a solution because of its unjustified complexity.
As you found yourself in Apple's APNS docs, there is no way to store more than one notification per application for a single device. If you want to compare it to GCM, APNS server acts as if all notifications have the same collapse key.
No third party solutions can work around that, since Apple doesn't return an acknowledgment of delivery to the sender of the notification, so the server (whether it's implemented by you or by some third party provider) has no way of knowing which messages to store and resend (assuming that all the messages are valid and were not rejected by APNS server).
Apple Push Notifications are not intended to deliver important data. Their purpose is to notify the user of the app that new data is available at the server, which allows the app to load that data if the user chooses to open the app. That's the reason why they don't store more than one message per app for the same device.
We are currently implementing push notifications (for IOS only for now), and we are planning on using Urban Airship. We want to send a push message to a device if they have our app installed and push enabled, and send an SMS message if not. Our users pay for the notifications, so we want to make sure as much as possible that they always get either a push message or a SMS message. Sending the push messages itself works fine, but I am confused about how to keep track of who we can actually send push messages to.
As far as I know, the only way to really making sure if a user can receive push messages is to, before sending a push message, make an additional call to the urban airship api to check if the device exists and is active. I would prefer to not do 2 api calls for each push message, so an alternative could be to keep track of all registered devices in urban airship locally, and update that list once per hour or so. However, this would mean the 'active devices list' is not always completely accurate, and that we have to keep track of all registered devices ourselves, which feels like re-implementing a part of urban airship.
Is there any other (better) way to do this? As far as I can see, when I send a push message to urban airship the api always returns that it was sent succesfully, regardless of whether or not a device is active, or if it even exists.
I can't imagine that I am the only one with this problem. Does anyone have a better way of solving it, or am I stuck with the 2 options that I figured out myself?
Urban Airship shares the following two options:
In any case, applications should expect and handle inactive device
tokens properly. We recommend that developers either:
Register the device token every time the application is opened, like our sample app does
Use our feedback API regularly, store inactivated device tokens in your own database, and send registrations when the device token
becomes active again.
If you make an additional call to the Urban Airship to check if the device exists and is active, even then the 'active devices list' may not always be completely accurate because Urban Airship relies on periodic updates from Apple Feedback Service:
Apple tells us that the application has been uninstalled via the
feedback service, which we check on a regular basis.
Also, do remember what Apple has stated about the delivery of Push Notifications:
Important: Delivery of notifications is a “best effort”, not guaranteed. It is not intended to deliver data to your app, only to notify the user that there is new data available.
We are planning to develop the push notification service for a telecom operator. But I haven't got any information whether the APNS push service is free of cost or should we make any payment?
My questions are,
Should I pay for using the APNS push service?
If operator want to sent push notification to millions of subscribers, should we pay to Apple or is it absolutely free? If not free, please share the URL where payment details are available.
Is there any limit for the number of notification sent or the number of subscribers?
Apple does not charge a separate fee for utilizing the push notification service.
Your only cost is a server that will be sending the push notifications to Apple. There are third-parties that provide this servers and there is a fee for that.
Answer for your question 1,2 and 3 is: Apple doesn't charge you for APNS - but you have to maintain a server for pushing.
Try these third parties for pushing,
PushWizard, a free and unlimited push service.
It can send 250 million push messages / hour
and PushWizard is free for unlimited devices, while other services can be very expensive if you have more, than 1 million users to reach at least ONCE per month.
Monopush, which provides a RESTful API and a lot of free push alerts up-front to handle the server infrastructure for you.
You need just copy and paste a few line codes to inside of your application and then magic will be started. After that you can start to watch, analyze, categorize your clients and you can send push messages to them as well as resource messages.
As mentioned above, Apple does not charge for the APNS
However, you need to maintain a 3rd party server for that, and sending notifications to millions of devices would require a lot of work from you.
There are some very good industrial solutions for iOS push notifications service that use APNS:
PushApps - free for 1M notifications per month, and unlimited notifications for 19.99 per month - here is the documentation
Urban Airship - free up to 1M notifications per month, afterwards you are charged per 1000 notifications
PushWoosh - free for 1M devices, premium plans are from 39 EURO
Diclaimer - I work in PushApps and also use their product in my applications for over a year now.
Please refer the following:
APNS is a free service. However, you need to maintain a server to send Push Messages.
Apple Local and Push Notification Programming Guide
There are many online servers which provide you free push services [for limited pushes/users/devices]. They do have plans depending upon the needs of client. Following are the few ones:
a. Parse Parse not available anymore. It is now acquired by Facebook. Read More Here
b. PushWizard
c. Xtify
d. SetUp your own push server - this tutroial comprise of complete end to end steps of how to send push messages to iOS Devices.
Hope this helps.
Although push notifications are usually send from 'servers', it is not necessary to own a server or to pay a service. Instead it is also possible to send pushes from your personal computer or mobile device. Especially for testing purposes, this is very useful. Try:
NWPusher
APNS-Pusher
I'm wondering if there is a limit to the number of apple push notifications we can send to users at once?
Can I send 100,000 push notifications at once using the APNS service?
If you are sending multiple notifications to the same device within a short period of time, the push service will send only the last one.
https://developer.apple.com/library/content/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG23
Look "Some Notifications Received, but Not All" in that documentation.
Apple's Tech Note was recently updated to address this question :
There are no caps or batch size limits for using APNs. The iOS 6.1
press release stated that APNs has sent over 4 trillion push
notifications since it was established. It was announced at WWDC 2012
that APNs is sending 7 billion notifications daily.
If you're seeing throughput lower than 9,000 notifications per second,
your server might benefit from improved error handling logic.
There's no limit on how much notification you can send to Apple APNS server but reminder to avoid using allot of connection because Apple may ban your IP if he think you are doing a DDOS attack.
Also if a user is offline (iPhone out of signal) only the latest push notification will be in saved in apple's APNS server
Yes, you can!
You can also use 20 connections max for the sending of data.
Is there any limits/restrictions about amount of notifications sent to the APNS in time range?
For example - can I send 100,000 messages for 100,000 devices (one message for one device) in one hour to notify them about new content available to purchase via in-app purchases ?
Found nothing about any restrictions in the manual.
I don't think there is a restriction for number of messages sent in a time frame. But I guess in your case, it is unclear, if it violates rules stated in review guidelines 5.6 and 5.8
5.6 Apps cannot use Push Notifications to send advertising, promotions, or direct marketing of any kind
5.8 Apps that excessively use the network capacity or bandwidth of the APN service or unduly burden a device with Push Notifications will
be rejected