SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
Engage Your Customers with
Amazon SNS Mobile Push
Constantin Gonzalez, Solutions Architect, Amazon, Germany
Pablo Varela, Software Engineer, Plumbee
November 15th, 2013

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Friday, November 15, 13
65% of mobile apps are abandoned
within 90 days.

http://blog.flurry.com/bid/90743/App-Engagement-The-Matrix-Reloaded

Friday, November 15, 13
“…understanding and improving user
engagement is the new currency of
doing business in the new digital world.”
–Peter Farago, Flurry.com

http://blog.flurry.com/bid/90743/App-Engagement-The-Matrix-Reloaded

Friday, November 15, 13
Mobile push notifications engage customers when
your app is not currently active.
• Users opt-in to receive them
• Delivered to a specific app
on a specific device
• Short messages: read, ignore, or
acknowledge to launch the app

Friday, November 15, 13
In this session, we’ll cover:
• How push notifications work.
• A simple, scalable, robust & cross-platform way to
deliver push notifications that you can start using now.
• A real-world example for sending massive amounts
of targeted push notifications to mobile users.

Friday, November 15, 13
Push Notifications Under the Covers

Friday, November 15, 13
Your cloud application directs mobile push
notifications to a specific app on a specific device

Cloud App

Friday, November 15, 13

Mobile Apps
Notifications are delivered via platform-specific
push services, which keep connections with their
devices.

Platform
Service
Cloud App

Friday, November 15, 13

Mobile Apps
Developers manage tokens for each device, and
must proactively swap or disable them based on
feedback.
Token
Feedback

Platform
Service

Token Registration

Friday, November 15, 13
Challenges

Friday, November 15, 13
Each platform-specific push service works
differently.

Apple APNs

Google GCM

Amazon ADM
Friday, November 15, 13

• Different APIs
• Different Features
• Different Feedback
Token Housekeeping Can be Complex
Token
Feedback

Platform
Service

Token Registration

Friday, November 15, 13

• Regularly connect to the
platform service
• Handle feedback for failed/
stale notifications
• Blacklist tokens
• Establish good reputation
with platform services
• etc.
Push notifications get even more complex as you
scale to support millions of devices.

Cloud App

Platform Services
Friday, November 15, 13

Mobile Apps
Amazon SNS Mobile Push

Friday, November 15, 13
Amazon SNS Mobile Push is a managed, scalable,
cross-platform push intermediary service.
Apple Devices

Google Devices
Amazon SNS
Mobile Push

Friday, November 15, 13

Kindle Devices
You can send a distinct payload for each platform,
or publish one common message for all platforms.
Publish

Apple

Google
Kindle
Fire

Friday, November 15, 13

Publish

Kindle
Fire

Apple

Google
Kindle
Fire

Kindle
Fire
You can publish unique messages to individual devices, or broadcast
identical messages to many devices at once.
Direct Publishing

Broadcast with SNS Topics

Publish
Publish
Publish

Friday, November 15, 13

Publish
Amazon SNS consumes feedback from each platform and manages
swapping and disabling tokens on your behalf.

Token
Feedback

Cloud
App

Friday, November 15, 13

Amazon SNS
Mobile Push

Token
Registration

• Write to one stable
endpoint per device
• You can access the
feedback, but you
don’t have to do so
in order to use
Amazon SNS
Getting Started

Friday, November 15, 13
Step 1: Write your mobile app
• Use the mobile app platform’s
push notification libraries as you
normally would.

Friday, November 15, 13
Step 2: Obtain Application Prerequisites
• APNs:
• Apple Push Notification service SSL certificate
• Application Private Key

• GCM:
• API Key (Sender Auth Token)

• ADM:
• Client ID
• Client secret

Friday, November 15, 13
Step 3: Register Your Mobile App with AWS

Amazon SNS
Mobile Push

Friday, November 15, 13
Step 4: Obtain a Token/Registration ID from the device

• APNs:
• Device Token

• GCM:
• Registration ID

• ADM:
Cloud
App

• Registration ID

<e960d9b1…de43f6c0>

Friday, November 15, 13
• For existing devices
• Use the console for .csv import
<e960d9b1…de43f6c0>

arn:aws:sns:eu-west-1:12…1f

Step 5: Add Token/Registration ID to Amazon SNS

Cloud
App

Amazon SNS
Mobile Push

• Or use CreatePlatformEndpoint API

• For future devices
• Use a proxy server and the
CreatePlatformEndpoint API
• Or use the AWS token vending service and let
devices register themselves

• Receive an ARN back
Friday, November 15, 13
Step 6a: Send Push Notifications via the Console

Hello world!

Friday, November 15, 13
Step 6b: Send Push Notifications via the API
MyMac:~ glez$ python
Python 2.7.2 (default, Oct 11 2012, 20:14:37)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto
>>> import boto.sns
>>> boto.sns.connect_to_region("eu-west-1").publish(
... message="Hello world!",
... target_arn="arn:aws:sns:eu-west-1:979463966312:endpoint/APNS_SANDBOX/
Push2reInvent/fc1234a1-67ef-4f62-b31a-ac320bf7631f")
{u'PublishResponse': {u'PublishResult': {u'MessageId': u'1893fa9d-7478-5137be1d-b06928d999d0'}, u'ResponseMetadata': {u'RequestId':
u'c3c26267-92af-50b3-b529-2893ce0e4854'}}}
>>>

Friday, November 15, 13
Step 7: Receive

Friday, November 15, 13
User/Device management
• Use CreatePlatformEndpoint to register new
tokens/IDs along with user data

• Use ListEndpointByPlatformApplication
to discover registered endpoints
• Manage ARNs and associated data in Amazon
DynamoDB
• Publish to individual ARNs, or
• Use Amazon SNS topics for 1:many messaging
• Coordinate publishing with Amazon SQS or
Amazon SWF

Friday, November 15, 13
Demo

Friday, November 15, 13
Quick Review

Amazon SNS
Mobile Push

Friday, November 15, 13

• Cross-platform push to Apple,
Google and Amazon
• Seamless scalability with durable,
reliable deliveries
• Easy token management
• 1m free per month, and $1.00 per
million thereafter
Pablo Varela, Software Engineer, Plumbee

Friday, November 15, 13
Mirrorball Slots - Mobile

Friday, November 15, 13
Mirrorball Slots - Mobile

Friday, November 15, 13
Mirrorball Slots - Challenges

Friday, November 15, 13
Our customers ask for notifications!
“Some of us have very busy lives and can’t be
checking the game 24/7. It would be great to
get a notification when a challenge starts.
Thanks!”

Friday, November 15, 13
Use cases
Retention / reactivation
• Day 2, day 7 retention
• active players (active in 7 days)
• D7,D10,D14,D21,D28 reactivation
• Challenge start/ends/redemption
• New features/games

Friday, November 15, 13

Targeted promotions
• Spenders categorisation
• Last spent
• New user promos
• Time-limited promo start/end
Design Goals

• Easy to add new campaigns
• Fine grained targeting
• Scales linearly

Friday, November 15, 13
Building blocks

Data
Collection

Friday, November 15, 13

Targeting

Mobile Push
Data Collection

Friday, November 15, 13
Data Collection
• Collect everything
• There is not such a thing as too much data!
• Targeting as effective as your data
• Fine granularity depends on data analysis

Friday, November 15, 13
Data Collection
log
actions

log
log

Application Servers

Friday, November 15, 13

Analytics
Amazon SQS
Device Registration – Code example
private String getArnForDeviceEndpoint(
String platformApplicationArn,
String deviceToken) {
CreatePlatformEndpointRequest request =
new CreatePlatformEndpointRequest()
.withPlatformApplicationArn(platformApplicationArn)
.withToken(deviceToken);
CreatePlatformEndpointResult result =
snsClient.createPlatformEndpoint(request);
}

return result.getEndpointArn();

Friday, November 15, 13
Device Registration – Logging
private String registerEndpointForApplicationAndPlatform(
final long plumbeeUid, String platformARN,
String platformToken) {
final String deviceEndpointARN =
getArnForDeviceEndpoint(platformARN, platformToken);
sqsLogger.queueMessage(new HashMap<String, Object>() {{
put("notification", "register");
put("plumbeeUid", plumbeeUid);
put("provider", platformName);
put("endpoint", deviceEndpointARN);
}}, null);
}

return deviceEndpointARN;

Friday, November 15, 13
Device Registration – Event example
{

"sId": "2fa5e687-c692-4c60-8bf9-19d3b3bef30f",
"rId": "40f3aa74-1653-422f-a484-b98dbb32bda2",
"timeStamp": 1381853084268,
"testVariant": "",
"m-mbs-app-service-version": "m-mbs-app-1381818956",
"metadata": {
"plumbeeUid": XXXXXXX,
"notification": "register",
"provider": "apns",
"endpoint": "arn:aws:sns:us-east-1:300361537691:endpoint/APNS/
MIRRORBALL_SLOTS_CI/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
}

Friday, November 15, 13
Data Collection (II)
consume

Analytics
Amazon SQS

Friday, November 15, 13

archive

Apache Flume

Amazon S3
Event Logs
Data Collection (III)

Cluster

consume

KPIs
update

Amazon SNS

Amazon Redshift
Event Logs
Friday, November 15, 13

Amazon EMR

Amazon S3
User Targeting

Friday, November 15, 13
User targeting
• SQL queries against Amazon Redshift
• That’s it!

Friday, November 15, 13
User targeting – Query example
-- Target all mobile users
SELECT plumbee_uid, arn
FROM mobile_user

Friday, November 15, 13
User targeting – Query example (II)
-- Target lapsed users (1 week lapse)
SELECT plumbee_uid, arn
FROM
mobile_user
WHERE last_play_time < (now - 7 days)

Friday, November 15, 13
User targeting – Query example (III)
-- All the users that spend between 6h and 9h UTC on
-- Mondays and didn't spend in the last 7 days
SELECT plumbee_uid, arn
FROM user_spending_activity
WHERE time_slice = 3
AND plumbee_uid IN (
SELECT plumbee_uid
FROM user_metrics
WHERE last_purchase_time < (now - 7d)

Friday, November 15, 13
Mobile Push

Friday, November 15, 13
Mobile Push – Code example
SNS publish
private void publishMessage(UserData userData, String jsonPayload) {
amazonSNS.publish(new PublishRequest()
.withTargetArn(userData.getEndpoint())
.withMessageStructure("json")
.withMessage(jsonPayload));
}

JSON payload
{
"default": "“The 5 day Halloween Challenge has started
today! Touch to play now!”",
"APNS": "{"aps" : {"alert":"Halloween Challenged
has started!"","sound":"default" },"id":"XXXX
","tag":"challenge-start" }"
}
Friday, November 15, 13
Mobile Push
• Amazon SWF for orchestration
• Amazon Redshift for targeting
• Amazon SNS for the actual push

Friday, November 15, 13
Mobile Push - Scheduling
query

Scheduling

Friday, November 15, 13

query

Publish Service

Amazon
SWF
Mobile Push - Targeting
query

query

Amazon EC2
Worker
Amazon SWF
(Segmentation)
Friday, November 15, 13

target
users

Amazon
Redshift

Amazon
S3
Mobile Push - Processing
batch 1 - N

batch N - M

partition
publish
partition

push

push

publish

Amazon EC2 Amazon SWF Children workflows
Read data + push
Decider
(Batch Processing)

Friday, November 15, 13

End User
Mobile Push - Reporting example
The following message has been sent to NNNNNN devices in m min, ss sec:
““The 5 day Halloween Challenge has started today! Touch to play now!””
Targeting query:
SELECT m_arn.plumbeeui, DISTINCT(m_arn.endpoint) FROM mobile.lu_user
m_user, mobile.lu_notifications_arn m_arn WHERE m_user.plumbeeuid =
m_arn.plumbeeuid AND country_code IN (:america) GROUP BY m_arn.endpoint
Workflow Execution Stats
*
*
*
*

number
number
number
number

of
of
of
of

devices targeted: NNNNNN
notifications sent: NNNNNN
notifications that failed (excluding disabled devices): 0
disabled devices: NNNN

Click here for workflow execution details.

Friday, November 15, 13
Day 2 retention - No Push vs Push
Without Push

40

With Push

30
20
10
0
Day 1

Friday, November 15, 13

Final Day

Redemption Day
Summary
• Collect and analyze data: Amazon SQS,
Amazon S3, Amazon EMR, Apache
Flume, Amazon Redshift
• Targeting: SQL queries
• Mobile Push with Amazon SNS
• Orchestration with Amazon SWF

Friday, November 15, 13
More Information
• Open Source projects
• https://github.com/plumbee

• Plumbee Engineering Blog
• http://bit.ly/1hqWBD4

• Email
• pablo.varela@plumbee.co.uk

Friday, November 15, 13
Extensive SDK and IDE support enables you to build applications
tailored to your language or platform.
SDKs for your preferred platform and language…

Android

iOS

Java

nodeJS

.NET

…integrated into your preferred IDE

Eclipse

Friday, November 15, 13

Visual Studio

CLI

Powershell

PHP

Python

Ruby
More Information
• Amazon SNS Detail Page
and Docs
• http://amzn.to/179ee7r

Amazon SNS
Mobile Push

• Getting Started + Sample Apps
• http://amzn.to/15rs1DV

• Email
• aws-sns-mobile-push@amazon.com

Friday, November 15, 13
We hope your mobile app never
gets abandoned!

Friday, November 15, 13
Please give us your feedback on this
presentation

MBL308
As a thank you, we will select prize
winners daily for completed surveys!

Friday, November 15, 13

Thank You
Developers use intermediaries to abstract platform-specific APIs and
manage tokens for millions of apps.

Push Intermediary
Friday, November 15, 13
Developers use intermediaries to abstract platform-specific APIs and
manage tokens for millions of apps.

Abstraction so your app
can engage users on
any platform
Manage tokens to
ensure messages are
delivered reliably

Friday, November 15, 13

Operational complexity
Scalability takes work
Cost – even though the
platform services
themselves are free
SNS offers easy scalability, so you can just start sending more
messages as your app achieves scale.

• Go from a few messages to hundreds of millions
• Go from a few devices to hundreds of millions
...without provisioning, configuring or managing
...without sacrificing reliable, durable delivery

Friday, November 15, 13
You can get started for free.
• 1 Million Free per Month
• 1 million publishes + 1 million mobile push notifications

• $1.00 per Million Thereafter
• $0.50 per million publishes + $0.50 per million mobile push deliveries
• When you broadcast with SNS Topics, your effective price can be lower

Friday, November 15, 13

Contenu connexe

Tendances

AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
Amazon Web Services Korea
 

Tendances (20)

EKS workshop 살펴보기
EKS workshop 살펴보기EKS workshop 살펴보기
EKS workshop 살펴보기
 
AWS における サーバーレスの基礎からチューニングまで
AWS における サーバーレスの基礎からチューニングまでAWS における サーバーレスの基礎からチューニングまで
AWS における サーバーレスの基礎からチューニングまで
 
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様
 
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
AWS 기반 5천만 모바일 앱서비스 확장하기 - 이영진 (강남SE 모임) :: AWS Community Day 2017
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
 
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
 
놀면 뭐하니? 같이 개인 방송 서비스 만들어보자! - 김승준 현륜식 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
놀면 뭐하니? 같이 개인 방송 서비스 만들어보자! - 김승준 현륜식 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021놀면 뭐하니? 같이 개인 방송 서비스 만들어보자! - 김승준 현륜식 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
놀면 뭐하니? 같이 개인 방송 서비스 만들어보자! - 김승준 현륜식 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
 
Amazon SageMaker 오버뷰 - 강성문, AWS AI/ML 스페셜리스트 :: AIML 특집 웨비나
Amazon SageMaker 오버뷰 - 강성문, AWS AI/ML 스페셜리스트 :: AIML 특집 웨비나Amazon SageMaker 오버뷰 - 강성문, AWS AI/ML 스페셜리스트 :: AIML 특집 웨비나
Amazon SageMaker 오버뷰 - 강성문, AWS AI/ML 스페셜리스트 :: AIML 특집 웨비나
 
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
 
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
 
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트) Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
Kubernates를 위한 Chaos Engineering in Action :: 윤석찬 (AWS 테크에반젤리스트)
 
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
 
AWS Serverless Introduction (Lambda)
AWS Serverless Introduction (Lambda)AWS Serverless Introduction (Lambda)
AWS Serverless Introduction (Lambda)
 
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch20190326 AWS Black Belt Online Seminar Amazon CloudWatch
20190326 AWS Black Belt Online Seminar Amazon CloudWatch
 
Aws Autoscaling
Aws AutoscalingAws Autoscaling
Aws Autoscaling
 
AWS Fargate on EKS 실전 사용하기
AWS Fargate on EKS 실전 사용하기AWS Fargate on EKS 실전 사용하기
AWS Fargate on EKS 실전 사용하기
 
(STG401) Amazon S3 Deep Dive & Best Practices
(STG401) Amazon S3 Deep Dive & Best Practices(STG401) Amazon S3 Deep Dive & Best Practices
(STG401) Amazon S3 Deep Dive & Best Practices
 
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
 
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
 
Serverless computing - Build and run applications without thinking about servers
Serverless computing - Build and run applications without thinking about serversServerless computing - Build and run applications without thinking about servers
Serverless computing - Build and run applications without thinking about servers
 

En vedette

AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & HybridAWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
Amazon Web Services
 
AWS Summit Tel Aviv - Enterprise Track - Data Warehouse
AWS Summit Tel Aviv - Enterprise Track - Data WarehouseAWS Summit Tel Aviv - Enterprise Track - Data Warehouse
AWS Summit Tel Aviv - Enterprise Track - Data Warehouse
Amazon Web Services
 

En vedette (20)

Engaging Your Audience with Mobile Push Notifications - GDC 2014
Engaging Your Audience with Mobile Push Notifications - GDC 2014Engaging Your Audience with Mobile Push Notifications - GDC 2014
Engaging Your Audience with Mobile Push Notifications - GDC 2014
 
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & HybridAWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
AWS Summit Tel Aviv - Enterprise Track - Enterprise Apps & Hybrid
 
AWS Summit Tel Aviv - Enterprise Track - Data Warehouse
AWS Summit Tel Aviv - Enterprise Track - Data WarehouseAWS Summit Tel Aviv - Enterprise Track - Data Warehouse
AWS Summit Tel Aviv - Enterprise Track - Data Warehouse
 
Cloud Adoption in the Enterprise: Industry Perspective IP Expo 2013
Cloud Adoption in the Enterprise: Industry Perspective IP Expo 2013Cloud Adoption in the Enterprise: Industry Perspective IP Expo 2013
Cloud Adoption in the Enterprise: Industry Perspective IP Expo 2013
 
AWS Webcast - Implementing Windows and SQL Server with High Availability on AWS
AWS Webcast - Implementing Windows and SQL Server with High Availability on AWSAWS Webcast - Implementing Windows and SQL Server with High Availability on AWS
AWS Webcast - Implementing Windows and SQL Server with High Availability on AWS
 
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...
 
The Science of Choosing EC2 Reserved Instances (ENT221) | AWS re:Invent 2013
The Science of Choosing EC2 Reserved Instances (ENT221) | AWS re:Invent 2013The Science of Choosing EC2 Reserved Instances (ENT221) | AWS re:Invent 2013
The Science of Choosing EC2 Reserved Instances (ENT221) | AWS re:Invent 2013
 
AWS Cloud for HPC and Big Data
AWS Cloud for HPC and Big DataAWS Cloud for HPC and Big Data
AWS Cloud for HPC and Big Data
 
AWS essentials S3
AWS essentials S3AWS essentials S3
AWS essentials S3
 
Deep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDBDeep Dive on Amazon DynamoDB
Deep Dive on Amazon DynamoDB
 
Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...
Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...
Integrating On-premises Enterprise Storage Workloads with AWS (ENT301) | AWS ...
 
AWS essentials EC2
AWS essentials EC2AWS essentials EC2
AWS essentials EC2
 
Adding Location and Geospatial Analytics to Big Data Analytics (BDT210) | AWS...
Adding Location and Geospatial Analytics to Big Data Analytics (BDT210) | AWS...Adding Location and Geospatial Analytics to Big Data Analytics (BDT210) | AWS...
Adding Location and Geospatial Analytics to Big Data Analytics (BDT210) | AWS...
 
Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014
 
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
Speed and Reliability at Any Scale: Amazon SQS and Database Services (SVC206)...
 
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
What an Enterprise Can Learn from Netflix, a Cloud-native Company (ENT203) | ...
 
Asymptotic notation
Asymptotic notationAsymptotic notation
Asymptotic notation
 
AWS SQS for better architecture
AWS SQS for better architectureAWS SQS for better architecture
AWS SQS for better architecture
 
AWS Services overview and global infrastructure
AWS Services overview and global infrastructureAWS Services overview and global infrastructure
AWS Services overview and global infrastructure
 
AWS 기반 소프트웨어 서비스(SaaS) -김용우 솔루션즈 아키텍트 :: AWS 파트너 테크시프트 세미나
AWS 기반 소프트웨어 서비스(SaaS) -김용우 솔루션즈 아키텍트 :: AWS 파트너 테크시프트 세미나 AWS 기반 소프트웨어 서비스(SaaS) -김용우 솔루션즈 아키텍트 :: AWS 파트너 테크시프트 세미나
AWS 기반 소프트웨어 서비스(SaaS) -김용우 솔루션즈 아키텍트 :: AWS 파트너 테크시프트 세미나
 

Similaire à Engage Your Customers with Amazon SNS Mobile Push (MBL308) | AWS re:Invent 2013

What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon Talk
Sam Basu
 
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
GoIT
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
Sam Basu
 
Iasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile Services
Iasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile ServicesIasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile Services
Iasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile Services
Codecamp Romania
 
Architecture of the Mozilla Apps Ecosystem
Architecture of the Mozilla Apps EcosystemArchitecture of the Mozilla Apps Ecosystem
Architecture of the Mozilla Apps Ecosystem
Bill Walker
 
Let's Peel Mangos
Let's Peel MangosLet's Peel Mangos
Let's Peel Mangos
Sam Basu
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platform
rajdeep
 

Similaire à Engage Your Customers with Amazon SNS Mobile Push (MBL308) | AWS re:Invent 2013 (20)

(MBL301) Beyond the App - Extend Your User Experience with Mobile Push Notifi...
(MBL301) Beyond the App - Extend Your User Experience with Mobile Push Notifi...(MBL301) Beyond the App - Extend Your User Experience with Mobile Push Notifi...
(MBL301) Beyond the App - Extend Your User Experience with Mobile Push Notifi...
 
Android 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture ComponentsAndroid 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture Components
 
Scaling a Mobile Web App to 100 Million Clients and Beyond (MBL302) | AWS re:...
Scaling a Mobile Web App to 100 Million Clients and Beyond (MBL302) | AWS re:...Scaling a Mobile Web App to 100 Million Clients and Beyond (MBL302) | AWS re:...
Scaling a Mobile Web App to 100 Million Clients and Beyond (MBL302) | AWS re:...
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
 
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
Open Source Monitoring for Java with JMX and Graphite (GeeCON 2013)
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon Talk
 
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
Mobile Saturday. Тема 2. Особенности тестирования приложения на Android: Spec...
 
Android Mobile Application Testing: Specific Functional, Performance, Device ...
Android Mobile Application Testing: Specific Functional, Performance, Device ...Android Mobile Application Testing: Specific Functional, Performance, Device ...
Android Mobile Application Testing: Specific Functional, Performance, Device ...
 
WP7 & Azure
WP7 & AzureWP7 & Azure
WP7 & Azure
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
 
Iasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile Services
Iasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile ServicesIasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile Services
Iasi CodeCamp 20 april 2013 Florin Cardasim Windows Azure Mobile Services
 
Architecture of the Mozilla Apps Ecosystem
Architecture of the Mozilla Apps EcosystemArchitecture of the Mozilla Apps Ecosystem
Architecture of the Mozilla Apps Ecosystem
 
Mobile March Windows Azure Notification Hubs
Mobile March Windows Azure Notification HubsMobile March Windows Azure Notification Hubs
Mobile March Windows Azure Notification Hubs
 
Let's Peel Mangos
Let's Peel MangosLet's Peel Mangos
Let's Peel Mangos
 
Azure Notification hub
Azure Notification hubAzure Notification hub
Azure Notification hub
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platform
 
Push Notification in IBM MobileFirst Xamarin SDK
Push Notification in IBM MobileFirst Xamarin SDKPush Notification in IBM MobileFirst Xamarin SDK
Push Notification in IBM MobileFirst Xamarin SDK
 
Navigating PCI Compliance in the Cloud (SEC206) | AWS re:Invent 2013
Navigating PCI Compliance in the Cloud (SEC206) | AWS re:Invent 2013Navigating PCI Compliance in the Cloud (SEC206) | AWS re:Invent 2013
Navigating PCI Compliance in the Cloud (SEC206) | AWS re:Invent 2013
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Azure WP7 fire starter
Azure WP7 fire starterAzure WP7 fire starter
Azure WP7 fire starter
 

Plus de Amazon Web Services

Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 

Plus de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Engage Your Customers with Amazon SNS Mobile Push (MBL308) | AWS re:Invent 2013

  • 1. Engage Your Customers with Amazon SNS Mobile Push Constantin Gonzalez, Solutions Architect, Amazon, Germany Pablo Varela, Software Engineer, Plumbee November 15th, 2013 © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Friday, November 15, 13
  • 2. 65% of mobile apps are abandoned within 90 days. http://blog.flurry.com/bid/90743/App-Engagement-The-Matrix-Reloaded Friday, November 15, 13
  • 3. “…understanding and improving user engagement is the new currency of doing business in the new digital world.” –Peter Farago, Flurry.com http://blog.flurry.com/bid/90743/App-Engagement-The-Matrix-Reloaded Friday, November 15, 13
  • 4. Mobile push notifications engage customers when your app is not currently active. • Users opt-in to receive them • Delivered to a specific app on a specific device • Short messages: read, ignore, or acknowledge to launch the app Friday, November 15, 13
  • 5. In this session, we’ll cover: • How push notifications work. • A simple, scalable, robust & cross-platform way to deliver push notifications that you can start using now. • A real-world example for sending massive amounts of targeted push notifications to mobile users. Friday, November 15, 13
  • 6. Push Notifications Under the Covers Friday, November 15, 13
  • 7. Your cloud application directs mobile push notifications to a specific app on a specific device Cloud App Friday, November 15, 13 Mobile Apps
  • 8. Notifications are delivered via platform-specific push services, which keep connections with their devices. Platform Service Cloud App Friday, November 15, 13 Mobile Apps
  • 9. Developers manage tokens for each device, and must proactively swap or disable them based on feedback. Token Feedback Platform Service Token Registration Friday, November 15, 13
  • 11. Each platform-specific push service works differently. Apple APNs Google GCM Amazon ADM Friday, November 15, 13 • Different APIs • Different Features • Different Feedback
  • 12. Token Housekeeping Can be Complex Token Feedback Platform Service Token Registration Friday, November 15, 13 • Regularly connect to the platform service • Handle feedback for failed/ stale notifications • Blacklist tokens • Establish good reputation with platform services • etc.
  • 13. Push notifications get even more complex as you scale to support millions of devices. Cloud App Platform Services Friday, November 15, 13 Mobile Apps
  • 14. Amazon SNS Mobile Push Friday, November 15, 13
  • 15. Amazon SNS Mobile Push is a managed, scalable, cross-platform push intermediary service. Apple Devices Google Devices Amazon SNS Mobile Push Friday, November 15, 13 Kindle Devices
  • 16. You can send a distinct payload for each platform, or publish one common message for all platforms. Publish Apple Google Kindle Fire Friday, November 15, 13 Publish Kindle Fire Apple Google Kindle Fire Kindle Fire
  • 17. You can publish unique messages to individual devices, or broadcast identical messages to many devices at once. Direct Publishing Broadcast with SNS Topics Publish Publish Publish Friday, November 15, 13 Publish
  • 18. Amazon SNS consumes feedback from each platform and manages swapping and disabling tokens on your behalf. Token Feedback Cloud App Friday, November 15, 13 Amazon SNS Mobile Push Token Registration • Write to one stable endpoint per device • You can access the feedback, but you don’t have to do so in order to use Amazon SNS
  • 20. Step 1: Write your mobile app • Use the mobile app platform’s push notification libraries as you normally would. Friday, November 15, 13
  • 21. Step 2: Obtain Application Prerequisites • APNs: • Apple Push Notification service SSL certificate • Application Private Key • GCM: • API Key (Sender Auth Token) • ADM: • Client ID • Client secret Friday, November 15, 13
  • 22. Step 3: Register Your Mobile App with AWS Amazon SNS Mobile Push Friday, November 15, 13
  • 23. Step 4: Obtain a Token/Registration ID from the device • APNs: • Device Token • GCM: • Registration ID • ADM: Cloud App • Registration ID <e960d9b1…de43f6c0> Friday, November 15, 13
  • 24. • For existing devices • Use the console for .csv import <e960d9b1…de43f6c0> arn:aws:sns:eu-west-1:12…1f Step 5: Add Token/Registration ID to Amazon SNS Cloud App Amazon SNS Mobile Push • Or use CreatePlatformEndpoint API • For future devices • Use a proxy server and the CreatePlatformEndpoint API • Or use the AWS token vending service and let devices register themselves • Receive an ARN back Friday, November 15, 13
  • 25. Step 6a: Send Push Notifications via the Console Hello world! Friday, November 15, 13
  • 26. Step 6b: Send Push Notifications via the API MyMac:~ glez$ python Python 2.7.2 (default, Oct 11 2012, 20:14:37) [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import boto >>> import boto.sns >>> boto.sns.connect_to_region("eu-west-1").publish( ... message="Hello world!", ... target_arn="arn:aws:sns:eu-west-1:979463966312:endpoint/APNS_SANDBOX/ Push2reInvent/fc1234a1-67ef-4f62-b31a-ac320bf7631f") {u'PublishResponse': {u'PublishResult': {u'MessageId': u'1893fa9d-7478-5137be1d-b06928d999d0'}, u'ResponseMetadata': {u'RequestId': u'c3c26267-92af-50b3-b529-2893ce0e4854'}}} >>> Friday, November 15, 13
  • 27. Step 7: Receive Friday, November 15, 13
  • 28. User/Device management • Use CreatePlatformEndpoint to register new tokens/IDs along with user data • Use ListEndpointByPlatformApplication to discover registered endpoints • Manage ARNs and associated data in Amazon DynamoDB • Publish to individual ARNs, or • Use Amazon SNS topics for 1:many messaging • Coordinate publishing with Amazon SQS or Amazon SWF Friday, November 15, 13
  • 30. Quick Review Amazon SNS Mobile Push Friday, November 15, 13 • Cross-platform push to Apple, Google and Amazon • Seamless scalability with durable, reliable deliveries • Easy token management • 1m free per month, and $1.00 per million thereafter
  • 31. Pablo Varela, Software Engineer, Plumbee Friday, November 15, 13
  • 32. Mirrorball Slots - Mobile Friday, November 15, 13
  • 33. Mirrorball Slots - Mobile Friday, November 15, 13
  • 34. Mirrorball Slots - Challenges Friday, November 15, 13
  • 35. Our customers ask for notifications! “Some of us have very busy lives and can’t be checking the game 24/7. It would be great to get a notification when a challenge starts. Thanks!” Friday, November 15, 13
  • 36. Use cases Retention / reactivation • Day 2, day 7 retention • active players (active in 7 days) • D7,D10,D14,D21,D28 reactivation • Challenge start/ends/redemption • New features/games Friday, November 15, 13 Targeted promotions • Spenders categorisation • Last spent • New user promos • Time-limited promo start/end
  • 37. Design Goals • Easy to add new campaigns • Fine grained targeting • Scales linearly Friday, November 15, 13
  • 38. Building blocks Data Collection Friday, November 15, 13 Targeting Mobile Push
  • 40. Data Collection • Collect everything • There is not such a thing as too much data! • Targeting as effective as your data • Fine granularity depends on data analysis Friday, November 15, 13
  • 42. Device Registration – Code example private String getArnForDeviceEndpoint( String platformApplicationArn, String deviceToken) { CreatePlatformEndpointRequest request = new CreatePlatformEndpointRequest() .withPlatformApplicationArn(platformApplicationArn) .withToken(deviceToken); CreatePlatformEndpointResult result = snsClient.createPlatformEndpoint(request); } return result.getEndpointArn(); Friday, November 15, 13
  • 43. Device Registration – Logging private String registerEndpointForApplicationAndPlatform( final long plumbeeUid, String platformARN, String platformToken) { final String deviceEndpointARN = getArnForDeviceEndpoint(platformARN, platformToken); sqsLogger.queueMessage(new HashMap<String, Object>() {{ put("notification", "register"); put("plumbeeUid", plumbeeUid); put("provider", platformName); put("endpoint", deviceEndpointARN); }}, null); } return deviceEndpointARN; Friday, November 15, 13
  • 44. Device Registration – Event example { "sId": "2fa5e687-c692-4c60-8bf9-19d3b3bef30f", "rId": "40f3aa74-1653-422f-a484-b98dbb32bda2", "timeStamp": 1381853084268, "testVariant": "", "m-mbs-app-service-version": "m-mbs-app-1381818956", "metadata": { "plumbeeUid": XXXXXXX, "notification": "register", "provider": "apns", "endpoint": "arn:aws:sns:us-east-1:300361537691:endpoint/APNS/ MIRRORBALL_SLOTS_CI/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" } } Friday, November 15, 13
  • 45. Data Collection (II) consume Analytics Amazon SQS Friday, November 15, 13 archive Apache Flume Amazon S3 Event Logs
  • 46. Data Collection (III) Cluster consume KPIs update Amazon SNS Amazon Redshift Event Logs Friday, November 15, 13 Amazon EMR Amazon S3
  • 48. User targeting • SQL queries against Amazon Redshift • That’s it! Friday, November 15, 13
  • 49. User targeting – Query example -- Target all mobile users SELECT plumbee_uid, arn FROM mobile_user Friday, November 15, 13
  • 50. User targeting – Query example (II) -- Target lapsed users (1 week lapse) SELECT plumbee_uid, arn FROM mobile_user WHERE last_play_time < (now - 7 days) Friday, November 15, 13
  • 51. User targeting – Query example (III) -- All the users that spend between 6h and 9h UTC on -- Mondays and didn't spend in the last 7 days SELECT plumbee_uid, arn FROM user_spending_activity WHERE time_slice = 3 AND plumbee_uid IN ( SELECT plumbee_uid FROM user_metrics WHERE last_purchase_time < (now - 7d) Friday, November 15, 13
  • 53. Mobile Push – Code example SNS publish private void publishMessage(UserData userData, String jsonPayload) { amazonSNS.publish(new PublishRequest() .withTargetArn(userData.getEndpoint()) .withMessageStructure("json") .withMessage(jsonPayload)); } JSON payload { "default": "“The 5 day Halloween Challenge has started today! Touch to play now!”", "APNS": "{"aps" : {"alert":"Halloween Challenged has started!"","sound":"default" },"id":"XXXX ","tag":"challenge-start" }" } Friday, November 15, 13
  • 54. Mobile Push • Amazon SWF for orchestration • Amazon Redshift for targeting • Amazon SNS for the actual push Friday, November 15, 13
  • 55. Mobile Push - Scheduling query Scheduling Friday, November 15, 13 query Publish Service Amazon SWF
  • 56. Mobile Push - Targeting query query Amazon EC2 Worker Amazon SWF (Segmentation) Friday, November 15, 13 target users Amazon Redshift Amazon S3
  • 57. Mobile Push - Processing batch 1 - N batch N - M partition publish partition push push publish Amazon EC2 Amazon SWF Children workflows Read data + push Decider (Batch Processing) Friday, November 15, 13 End User
  • 58. Mobile Push - Reporting example The following message has been sent to NNNNNN devices in m min, ss sec: ““The 5 day Halloween Challenge has started today! Touch to play now!”” Targeting query: SELECT m_arn.plumbeeui, DISTINCT(m_arn.endpoint) FROM mobile.lu_user m_user, mobile.lu_notifications_arn m_arn WHERE m_user.plumbeeuid = m_arn.plumbeeuid AND country_code IN (:america) GROUP BY m_arn.endpoint Workflow Execution Stats * * * * number number number number of of of of devices targeted: NNNNNN notifications sent: NNNNNN notifications that failed (excluding disabled devices): 0 disabled devices: NNNN Click here for workflow execution details. Friday, November 15, 13
  • 59. Day 2 retention - No Push vs Push Without Push 40 With Push 30 20 10 0 Day 1 Friday, November 15, 13 Final Day Redemption Day
  • 60. Summary • Collect and analyze data: Amazon SQS, Amazon S3, Amazon EMR, Apache Flume, Amazon Redshift • Targeting: SQL queries • Mobile Push with Amazon SNS • Orchestration with Amazon SWF Friday, November 15, 13
  • 61. More Information • Open Source projects • https://github.com/plumbee • Plumbee Engineering Blog • http://bit.ly/1hqWBD4 • Email • pablo.varela@plumbee.co.uk Friday, November 15, 13
  • 62. Extensive SDK and IDE support enables you to build applications tailored to your language or platform. SDKs for your preferred platform and language… Android iOS Java nodeJS .NET …integrated into your preferred IDE Eclipse Friday, November 15, 13 Visual Studio CLI Powershell PHP Python Ruby
  • 63. More Information • Amazon SNS Detail Page and Docs • http://amzn.to/179ee7r Amazon SNS Mobile Push • Getting Started + Sample Apps • http://amzn.to/15rs1DV • Email • aws-sns-mobile-push@amazon.com Friday, November 15, 13
  • 64. We hope your mobile app never gets abandoned! Friday, November 15, 13
  • 65. Please give us your feedback on this presentation MBL308 As a thank you, we will select prize winners daily for completed surveys! Friday, November 15, 13 Thank You
  • 66. Developers use intermediaries to abstract platform-specific APIs and manage tokens for millions of apps. Push Intermediary Friday, November 15, 13
  • 67. Developers use intermediaries to abstract platform-specific APIs and manage tokens for millions of apps. Abstraction so your app can engage users on any platform Manage tokens to ensure messages are delivered reliably Friday, November 15, 13 Operational complexity Scalability takes work Cost – even though the platform services themselves are free
  • 68. SNS offers easy scalability, so you can just start sending more messages as your app achieves scale. • Go from a few messages to hundreds of millions • Go from a few devices to hundreds of millions ...without provisioning, configuring or managing ...without sacrificing reliable, durable delivery Friday, November 15, 13
  • 69. You can get started for free. • 1 Million Free per Month • 1 million publishes + 1 million mobile push notifications • $1.00 per Million Thereafter • $0.50 per million publishes + $0.50 per million mobile push deliveries • When you broadcast with SNS Topics, your effective price can be lower Friday, November 15, 13