Push Notification restrictions - ios

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

Related

iOS Local Notifications and APN: what can I use it for?

After reading Apple Developer Program License Agreement I have some questions about a usage of Local notifications and APN:
There is a paragraph in Agreement (Attachment 1 ยง2.2):
You may not use the APN or Local Notifications for the purposes of advertising, product promotion, or direct marketing of any kind (e.g., up-selling, cross-selling, etc.), including, but not limited to, sending any messages to promote the use of Your Application or advertise the availability of new features or versions. Notwithstanding the foregoing, You may use the APN or Local Notifications for promotional purposes in connection with Your Pass so long as such use is directly related to the Pass, e.g., a store coupon may be sent to Your Pass in Wallet.
In my game I want:
a) notify user via Local Notifications after a long (several days) inactivity in the game (every app launch will snooze a notification for a few days ahead)
b) notify users via APN about new levels are available to download
Is APN and Local Notification are legal to implement a) and b)?
Although this is not a programming question as #Mojtaba Hosseini said in comment:
Yes. You can advertise anything about your app and it's levels and features and it's completely legal. But you should not advertise anything that is not related to the current app that received notification.

Push Notification : what is the condition to be count as a "spamming"

I'm implementing server-to-client communication in my iOS Application. What I'm trying to do is to deliver new messages from server to client such as
Old version will be no longer support soon, please update asap.
There is a new content available.
Reminder of some interesting content.
etc.
When device got message, it will notify user by showing "You got new X messages" with badge number. After user launch the app by clicking at the notification message, it will show those message containing images and text within my application.
At the beginning, I did this by iOS 7 background data fetch because the message content size that I mentioned will contains image url and text, it may exceed the maximum size of push notification content length. After testing with that approach, I found that there is no guarantee of when the application will be wake to connect and fetch new message from my server. (I left the device overnight to see how many time it connect to my server, first night was 5 times, second night was once)
Since some of the message is time sensitive (like reminder), I came up with the another approach by sending a Push Notification to the device when there is any new message to signal the app instead. But, according to App Store Review Guideline
5. Push Notifications
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
So, my questions are,
If I send a message contains promotions or marketing material but it won't showing at the iOS Device home screen, instead, user has to launch my application to see those contents, will it be the case of 5.6?
From 5.8, "excessively use the network capacity or bandwidth", do you know how many notifications can be sent to how many devices per time period? If I send 2 notifications to thousands of devices every hour, will that be the case?
Thank you, in advance.
5.6 wont be a problem, because i developed few which is working as like your scenario and they are live in app store.
5.8 also wont be problem i think, because i saw few application using push notification for voice call and video call application for intimate new call arrival for the user.
Some chatting application also using APN for intimation the user when
new message arrived for that user.

Are there some known methods to improve Apple Push Notifications store-and-forward function to store more than one notification?

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.

Is Apple Push notification using APNS free of cost?

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

apple push notification limitation

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.

Resources