Push notification - Difference between AWS Pinpoint and AWS SNS - android

I am new to Push Notification and really interested in it. We have AWS SNS (Simple Push Notification) and AWS Pinpoint.
I am confuse about these services from AWS.
What is the difference between them?
If I want to send push notification to my phone, which one should I
use?
If you have any ideas, please let me know.
Thank you in advanced!

Q. If I want to send push notification to my phone, which one should I use?
A. Both Amazon SNS and Amazon Pinpoint, support push notification feature and I normally like classifying them as "Mobile Push Messaging" tools however they differ in mechanism as discussed below.
The major difference between Amazon SNS & Amazon Pinpoint is addressed by the Pinpoint FAQ
Q: I already use Amazon SNS or Amazon SES. What do I gain by switching
to Amazon Pinpoint?
In typical Amazon SNS and Amazon SES use cases, you have to set up
your application to manage each message's audience, content, and
delivery schedule. These same features are built in to Amazon
Pinpoint. With Amazon Pinpoint, you can create message templates,
delivery schedules, highly-targeted segments, and full campaigns.
Some of the key features offered by Amazon Pinpoint (i.e currently not offered by Amazon SNS) are:
Supports two-way messaging
Understand User Behavior
Supports voice messages
Create Targeted Campaigns
Supports .p8 token authentication for APNs
Measure Results
Hope this helps

Related

SNS Mobile push notifications extremely confused

Right now I'm trying to send mobile push notifications to my phone when someone publishes a message to SNS. I'm confused about what services I have to use. Do I have to use a 3rd party service like Firebase Cloud Messaging/GCM to send mobile push notifications? Or can I send it directly from SNS to my phone.
In AWS docs it's a bit contradicting to me.
https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-application-as-subscriber.html
It says:
To begin using Amazon SNS mobile push notifications, you need
the following:
A set of credentials for connecting to one of the supported push
notification services: ADM, APNS, Baidu, FCM, MPNS, or WNS.
A mobile app that is registered and configured to use one of the
supported push notification services.
So that means we have to use a third party service right? But however in one of the AWS SNS tutorials:
https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html
it says we can create a platform endpoint for my mobile device so that it can recieve push notifications. I am extremely confused, do we have to use a third party service or can we send SNS push notifications directly to our phone?
I checked stackoverflow and the answers are not clear to me either
Can Amazon SNS push notifications directly to mobile devices?
Amazon SNS Sending direct push notification to individual device
Can someone please clarify this for me?
AWS SNS manages and abstracts different push notification services.
For AWS SNS to be able to make use of the appropriate push notification service, it would need a platform endpoint. It would need to know which platform (i.e iOS) an app is built.
it says we can create a platform endpoint for my mobile device
To create a platform endpoint, you would need a certificate coming from the Push Notification provider.
Example: .p12 is a certificate from Apple which will require "Push Notification" feature to be enabled.
Once a platform application is created, the app would need to register a unique device token to AWS SNS.
This device token is generated by iOS or Android to uniquely identify the device. The app can only generate the device token if it's properly signed by a certificate from the Push Notification provider.
do we have to use a third party service
Yes you need a third party service to:
generate the certificate with push notification feature enabled
generate the device token associated with your physical device
properly sign the app using the certificate
or can we send SNS push notifications directly to our phone?
AWS SNS manages this for you by matching device endpoints to the correct device token. Then invoking the appropriate push notification service. (i.e APNS, GCM).

how to track opened push notifications delivered by Amazon SNS

Hi does amazon SNS support tracking of opened push notifications?
If not, is there a third party analytics service that can track opened notifications in apps (ios android) and combines count of delivered notifications from amazon SNS?
Message delivery can be tracked using Amazon SNS Delivery Status and Amazon CloudWatch:
You can capture information on success rates, failure rates and dwell times for mobile push notifications using Amazon SNS Delivery Status. These metrics provide insights such as whether your push notifications have been successfully delivered to the intended messaging platform and the time it took for the notifications to be delivered. In addition to collecting status information, you can also trigger alerts based on metrics you define in Amazon CloudWatch.
You can enable this feature by simply selecting to receive “Delivery Status” for your applications in the Amazon SNS console. After this is enabled, the information is captured in an Amazon CloudWatch Logs group that is automatically created by Amazon SNS on your behalf.
See the initial announcement of this feature.
It’s also described here in this AWS YouTube video:
How do I confirm delivery of Amazon SNS Push Notifications and find out why some notifications fail

Is there any specific reason to use Amazon SNS instead of direct Baidu service

I have created push notification using Baidu. It works well through Baidu console and I receives the notification in my Android mobile.
I have to create a webservice to send push message from my specific application by using the SDK provided by Baidu. I have another option which seems to be available under Amazon SNS. It seems like a wrapper to Baidu, GCM etc.
My doubt is is there any specific advantage for using Amazon SNS over the Baidu provided SDK?
tldr;
If you target the chinese market only and Baidu is working well for you and you have all you code setup to work with Baidu, then stay with Baidu
Some other points to clarify about Amazon SNS
Baidu cloud push offers a really good service if you want to send notification on the chinese market
Amazon SNS on the other side is a much larger offering and as part of the Mobile Push Notifications Amazon will act as an abstract layer and you can choose which implementation you want.
It has the following advantages:
You are not limited to Baidu scope so you can send notification on the chinese market but not only and if/when needed to send a notification abroad it will be much easier without rewriting the whole thing
You can use the same code and change quickly the provider for push notification in case the provider does not work at a given time (downtime operations) or if the conditions change and you're not happy with new conditions.
You send push notification messages to both mobile devices and
desktops using one of the following supported push notification
services:
Amazon Device Messaging (ADM)
Apple Push Notification Service (APNS) for both iOS and Mac OS X
Baidu Cloud Push (Baidu)
Google Cloud Messaging for Android (GCM)
Microsoft Push Notification Service for Windows Phone (MPNS)
Windows Push Notification Services (WNS)
The following figure shows an overview of how Amazon SNS is used to
send a direct push notification message to a mobile endpoint.

Apple push notifications on GCM

I'm trying to create application for Android and iOS and, i want to use push notification on both the application. I'm going to have a server app that will be sending the notification.
but i am trying to APNS and Parse SDK it's common to use ,but i want GCM through push notifications on iOS ,can you please how can it possible ,any such information about GCM to iOS push notifications ,i am googling but i want some suggestions for GCM through iOS device notifications.Can you help me.thank you.
There is very good descriptive instructions in Google Cloud Messaging for iOS guide. It shows whole flow from registration of device token to receive push from server with code example.
After go through above guide, you may go for Setting up a GCM Client App on iOS and you are almost done to use GCM with iOS application
Update: GCM now supports IOS. See Grigo´s comment.
GCM is Android specific. If you want to avoid dealing with 2 different services for IOS and Android, you can use something like Amazon SNS for example. SNS now supports pushing cloud notifications to Android, IOS and Windows devices via the AWS Mobile SDK.

Amazon SNS topic,subscription and push notifications management from Android,iOS device

I am a newbie to AWS and am exploring it for a mobile application targeted for Android and iOS platforms.One of my application's requirement is to provide push notifications wherein users subscribe to particular topic(s) and then get notifications for those topics.I had gone through Amazon SNS which intends to do exactly the same. Moreover, I have also tested sending push notifications to registered devices from AWS console. This works like a charm.
However,this is a manual process and I want this to be dynamic but without using an intermediate server. Rather I want to do this from the device(s) themselves using AWS Android, iOS SDKs. Thus I have following queries-
Can the Topics for SNS push notifications be created from within app?
Can Subscriptions to a particular topic be managed from the app itself?
Most importantly can push messages be published from devices to all subscribed devices of that topic?
Thanks in advance !
I am currently working on AWS SNS on iOS, and the answer to your questions are :
YES, topics can be created from within the app itself
YES, Subscriptions can be managed from the app also
YES, Push messages can be published from devices to all subscribed devices of a topic.
Please correct me if I'm wrong. And let me know if sample codes are needed.
Thank you.

Categories

Resources