Mobile push notifications are a fast and universal way to engage and retain players. Amazon Simple Notification Service (SNS) provides one simple API for fast, reliable, scalable, inexpensive push notifications to Apple, Google, and FireOS devices. Customers have seen up to a 100% increase in player engagement, and have reduced cost by 60%, with Amazon SNS. In this session we'll cover how to use Amazon SNS to publish cross-platform notifications and then, architectures and techniques for utilizing game data to send the right message, to the right player, at the right time.
2. 65% of mobile apps are abandoned
within 90 days.
http://blog.flurry.com/bid/90743/App-Engagement-The-Matrix-Reloaded
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
5. Mobile push notifications engage customers when your app
is not currently active.
• Right message
• Right user
• Right time
6. Discussion Topics
• Engaging Your Users with Push Notifications
• Quick Intro to Mobile Push and Simple Notification Service (SNS)
• Getting Started with SNS
• Analytics and Targeting for Better Customer Engagement
7. 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
8. Push notifications drive user engagement
“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.”
- Plumbee gaming customer
9. Some Use Cases
Broadcast Direct Closed Loop
Identical messages to
many players at once
Unique messages to
individual players
Targeted and optimized
with analytics
10. Some Use Cases
Broadcast Direct Closed Loop
Identical messages to
many players at once
Unique messages to
individual players
Targeted and optimized
with analytics
11. Broadcast Push Notification Use Cases
• New features/content/games
• Promotion start/ends/redemption
• Active players (active in 7 days)
• Newly inactive players
• Segmentation (geo, spend, others..)
12. Broadcast Push Notification Use Cases
• “New episode available now!”
• “Halloween challenge starts today.”
• “Keep the streak going.”
• “Smokey the bear misses you!”
• “New Jetpack, on sale today!”
13. Some Use Cases
Broadcast Closed Loop
Identical messages to
many players at once
Targeted and optimized
with analytics
Direct
Unique messages to
individual players
14. Direct Push Notification Use Cases
• Messaging
• Turn-based activities
• Events
• User lifecycle
• Administrative
15. Direct Push Notification Use Cases
• “Jon invited you to a game.”
• “It’s your turn to play.”
• “You now have full lives.”
• “Welcome to the game!”
• “Your subscription is ending.”
16. Some Use Cases
Broadcast
Identical messages to
many players at once
Direct
Unique messages to
individual players
Closed Loop
Targeted and optimized
with analytics
17. Closed Loop Push Notification Use Cases
• Broadcast push notifications
• Direct push notifications
18. Closed Loop Push Notification Use Cases
• Different messages
• Different frequencies
• Different segments
• Different times of day
• Different points in the lifecycle
19. Some Use Cases
Broadcast Direct Closed Loop
Identical messages to
many players at once
Unique messages to
individual players
Targeted and optimized
with analytics
25. Push notifications drive user engagement
Without Push With Push
Real User Engagement Comparison
Initial Offer
Final Offer
Offer Redemption Day
26. Discussion Topics
• Engaging Your Users with Push Notifications
• Quick Intro to Mobile Push and Simple Notification Service (SNS)
• Getting Started with SNS
• Analytics and Targeting for Better Customer Engagement
27. Your cloud application directs mobile push notifications to
a specific app on a specific device
Cloud App Mobile Apps
28. Notifications are delivered via platform-specific push
services, which keep connections with their devices.
Cloud App Mobile Apps
Platform
Service
29. Developers manage tokens for each device, and must
proactively swap or disable them based on feedback.
Platform
Service
Token Registration
Token
Feedback
30. Each platform-specific push service works differently.
Apple APNS
Google GCM
Amazon ADM
• Different APIs
• Different Features
• Different Feedback
31. Push notifications get even more complex as you scale to
support millions of devices.
Cloud App
Platform Services Mobile Apps
32. Developers build custom intermediaries to abstract platform-
specific APIs and manage tokens for millions of apps.
Mobile AppsPush Intermediary
33. Developers build custom 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
Operational complexity
Scalability takes work
Cost – even though the
platform services
themselves are free
34. Amazon SNS Mobile Push is a managed, scalable, cross-
platform push intermediary service.
Amazon SNS
Mobile Push
Apple Devices
Google Devices
Amazon Kindle Fire Devices
35. 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
36. 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
37. Discussion Topics
• Engaging Your Users with Push Notifications
• Quick Intro to Mobile Push and Simple Notification Service (SNS)
• Getting Started with SNS
• Analytics and Targeting for Better Customer Engagement
38. SNS publishes notifications on your behalf using the
credentials you obtain from each push service.
Apple APNS
Google GCM
Amazon ADM
Amazon SNS
Mobile Push
39. SNS encapsulates each device token inside an Amazon
Resource Name (ARN) endpoint.
Apple APNS
Google GCM
Amazon ADM
Amazon SNS
Mobile Push
ARN 1
Token A
ARN 2
Token B
ARN 3
Token C
40. Once you register a device with SNS, SNS proactively consumes
feedback about the corresponding token from the push service.
Amazon SNS
Mobile Push
Token
Registration
Token
Feedback
Cloud App
You can access
the underlying
tokens and
feedback, but you
don’t have to do
so in order to use
SNS.
41. ARN endpoints remain stable, even if the underlying token
is swapped or disabled.
Apple APNS
Google GCM
Amazon ADM
Amazon SNS
Mobile Push
ARN 1
Token A
ARN 2
Token B
ARN 3
Token C
Token X
Token Y
42. ARN endpoints behave the same no matter which mobile
platform they address.
Amazon SNS
Mobile Push
ARN 1
Token A
ARN 2
Token B
ARN 3
Token C
43. You can publish unique messages to individual devices, or
broadcast identical messages to many devices at once.
Publish
Publish
Publish
Publish
Direct Publishing Broadcast with SNS Topics
44. Grouping users by SNS Topic
Geography Activity Product
US – West Coast Daily Actives Flapping Bird Rio
Interest Tier Segment
49ers Premium Top 100 Players
47. Step 1: Write your mobile app
• Use the mobile app platform’s
push notification libraries as you
normally would.
48. 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
49. Step 3: Register Your Mobile App with AWS
Amazon SNS
Mobile Push
50. Step 4: Obtain a Token/Registration ID from the device
• APNs:
• Device Token
• GCM:
• Registration ID
• ADM:
• Registration ID
Cloud
App
<e960d9b1…de43f6c0>
51. Step 5: Add Token/Registration ID to Amazon SNS
• For existing devices
• Use the console for .csv import
• 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
Amazon SNS
Mobile Push
Cloud
App
<e960d9b1…de43f6c0>
arn:aws:sns:eu-west-1:12…1f
52. private String getArnForDeviceEndpoint(
String platformApplicationArn,
String deviceToken) {
CreatePlatformEndpointRequest request =
new CreatePlatformEndpointRequest()
.withPlatformApplicationArn(platformApplicationArn)
.withToken(deviceToken);
CreatePlatformEndpointResult result =
snsClient.createPlatformEndpoint(request);
return result.getEndpointArn();
}
Device Registration – Code example
53. Step 6a: Send Push Notifications via the Console
Hello world!
54. 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-5137-be1d-
b06928d999d0'}, u'ResponseMetadata': {u'RequestId': u'c3c26267-92af-50b3-b529-
2893ce0e4854'}}}
>>>
57. Discussion Topics
• Engaging Your Users with Push Notifications
• Quick Intro to Mobile Push and Simple Notification Service (SNS)
• Getting Started with SNS
• Analytics and Targeting for Better Customer Engagement
58. Amazon offers mobile Analytics and A/B Testing
services.
• Amazon Analytics
– Simple, free, cross-platform mobile analytics
• Amazon A/B Testing
– A free, cross-platform way to run in-game
experiments
67. What are some questions to ask about Push
Notifications?
• How many of my push notifications result in app
opens?
• Are users who I send push notifications doing X
more often?
• Are there differences between users that opt in
or out of push notifications?
68. Example 1: How many of my push notifications
result in app opens?
• Simple!
• Two Steps
1. Create custom event that is recorded any time your game is
opened from a push notification
2. Check dashboard for rolled up data
69. Example 1: Sample Analytics code (iOS)
• Import SDK
#import <AmazonInsightsSDK/AmazonInsightsSDK.h>
• Initialize
AIAmazonInsights* insights = [AIAmazonInsights insightsWithCredentials: credentials];
• Record a custom event when app is launched
from a push notification
id<AIEventClient> eventClient = insights.eventClient;
id<AIEvent> appLaunchFromPush = [eventClient createEventWithEventType:@"appLaunchFromPush"];
[eventClient recordEvent: appLaunchFromPush];
72. Example 2: Are there differences between users that
receive push notifications and those that don’t?
• A bit more involved
• 6 Steps:
1. Create an A/B Test and a target Segment
2. Create custom events to support the test and deploy game
3. Start the A/B test
4. Filter push notifications to those in the test group
5. Send push notifications
6. Check dashboard for results
82. Example 2: Event Code
• Create 2 custom events to support the A/B Test
1. “appLaunched”
2. “IAPEvent”
• Send notifications to the variation group
– Flag the endpoint for each player that receives the
“sendPushNotifications”=“true” variation
– Send push notifications to this group
84. More Advanced Targeting and Analytics
Amazon
Redshift
Amazon
DynamoDB
Amazon
S3
Simply and cost
effectively analyze all
your data for <$1k/TB/yr
Serve any level of
traffic with single-digit
millisecond latency
Store and retrieve any
amount of data, at any
time, from any device
85. Amazon SNS
Mobile Push
Quick Review:
• Cross-platform push to Apple, Google and Amazon
• 1m free per month, and $1.00 per million thereafter
• Seamless scalability with durable, reliable deliveries
• Easy token management
For More Information:
• SNS Detail Page and Docs: http://amzn.to/179ee7r
• Getting Started + Sample Apps: http://amzn.to/15rs1DV
• Email: aws-sns-mobile-push@amazon.com