APN (Apple Push Notification) payload size limit
Apple has already updated the documentation. The 2KB for the maximum payload size is just for devices running iOS 8. The official doc says:
In iOS 8 and later, the maximum size allowed for a notification
payload is 2 kilobytes; Apple Push Notification service refuses any
notification that exceeds this limit. (Prior to iOS 8 and in OS X, the
maximum payload size is 256 bytes.)
As per the updated Apple docs the size is 4KB.
- For regular remote notifications, the maximum size is 4KB (4096 bytes)
- For Voice over Internet Protocol (VoIP) notifications, the maximum size is 5KB (5120 bytes)
NOTE
If you are using the legacy APNs binary interface to send
notifications instead of an HTTP/2 request, the maximum payload size
is 2KB (2048 bytes)
What is the maximum length of a Push Notification alert text?
The real limits for the alert text are not documented anywhere.
The only thing the documentation says is:
In iOS 8 and later, the maximum size allowed for a notification payload is 2 kilobytes; Apple Push Notification Service refuses any notification that exceeds this limit. (Prior to iOS 8 and in OS X, the maximum payload size is 256 bytes.)
This is what I could find doing some experiments.
- Alerts: Prior to iOS 7, the alerts display limit was 107 characters. Bigger messages were truncated and you would get a "..." at the end of the displayed message. With iOS 7 the limit seems to be increased to 235 characters. If you go over 8 lines your message will also get truncated.
- Banners: Banners get truncated around 62 characters or 2 lines.
- Notification Center: The messages in the notification center get truncated around 110 characters or 4 lines.
- Lock Screen: Same as a notification center.
Just as a reminder here is a very good note from the official documentation:
If necessary, iOS truncates your message so that it fits well in each notification delivery style; for best results, you shouldn’t truncate your message.
iPhone Push Notification Character Limit
Each push notification carries with it a payload. The payload
specifies how users are to be alerted to the data waiting to be
downloaded to the client application. The maximum size allowed for a
notification payload is 256 bytes; Apple Push Notification Service
refuses any notification that exceeds this limit.For each notification, providers must compose a JSON dictionary object
that strictly adheres to RFC 4627. This dictionary must contain
another dictionary identified by the key aps. The aps dictionary
contains one or more properties that specify the following actions:
- An alert message to display to the user
- A number to badge the application icon with
- A sound to play
-
Local and Push Notifications Programming Guide
So, answering your question,
Does this size limit include things such as the device token that have
to be sent and other overhead information about the notification.
Yes, this size limit includes device token and other overhead information.
Is the conversion 1 character = 1 byte or is it more than that.
This is true if you're using only Latin letters in your notification.
To send more than 256 byte data via push notification
No You can't.
The maximum size allowed for a notification payload is 256 bytes; Apple Push Notification Service refuses any notification that exceeds this limit.
And You have to send JSON Object in Payload.
See Local and Push Notification Programming Guide
Apple Push Notification Limits
The likely problem is that some of the device tokens you are using are invalid (remember that production device tokens are invalid in sandbox environment and vica versa). Sending a notification to an invalid device token will close your socket to the APN servers. All the notifications written to that socket after the invalid one will be discarded until you open a new socket.
You can try to read error responses from Apple to find out which device token is invalid.
You should definitely read the error checking section of the Tech Note that was already mentioned by other people here.
Azure Notification Hub Max payload length
See this answer. The Notification Hub does not know whether a given push token is for a device with iOS 7 or iOS 8. So it will send the notification along to Apple and report an error in the Notification Hub dashboard if Apple returns an error.
So to take advantage of the longer payloads, you need to keep track of which of your users' devices have iOS 8.x.
iOS: How many push notifications can be sent in a single request?
As Jonathan said in his comment, Apple doesn't specify a limit in the APNS documentation.
Since you send the notifications as binary data over a TCP connection, the number of notifications that would be sent in a single request depends on the size of your TCP buffers.
You don't have to send one notification per request. I'm not sure there's even a meaning to the term single request in this case (since they don't return a response for each notification sent). Apple encourages you to keep the connection open as long as possible. As long as it is open, you can write as many bytes (belonging to multiple push notifications) as you wish.
EDIT :
Apple recently edited their technical note regarding push notifications :
Push Notification Throughput and Error Checking
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.
Related Topics
When Exactly Do Implicit Animations Take Place in iOS
Apn (Apple Push Notification) Payload Size Limit
iOS Navigation Bar Item Image Size
How to Add a Button with Click Event on Uitableviewcell in Swift
Uiwebview Webpage Caching for Offline Viewing
Decrease the Width of the Last Line in Multiline Uilabel
Using Cabasicanimation to Rotate a Uiimageview More Than Once
How to Set Aspect Ratio Constraints Programmatically in iOS
How to Connect Viewcontroller.Swift to Viewcontroller in Storyboard
The Default App Has Not Been Configured Yet
Change Push Notification Sound
iOS Uiimage Storage Formats, Memory Usage and Encoding/Decoding
How to Get Directions in Mkmapview Using a Built in Apple API
Xcode Exception Breakpoint Doesn't Print Details of the Exception Being Thrown