Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on


Published in: Technology
  • Login to see the comments


  1. 1. Taipei Grow and Retain Users with Analytics and Push Notifications Dean Samuels, AWS SA Manager August 30th, 2016
  2. 2. Agenda Gathering Data Sending Messages Authorization Session Management Custom Events Advanced Messaging
  3. 3. 60 second Introduction We will cover the “How” today Sessions Custom Events Attributes Metrics Demographics Device Details Retention Rates Rules Processing Search Indexing Machine Learning Customized Messages Real-Time State Event-based Notifications Gather Data Process Deliver Features
  4. 4. Great Mobile Apps Run on AWS
  5. 5. Gather: Mobile Analytics SDK (Android, iOS, JavaScript, Unity, Xamarin) REST API Amazon Mobile Analytics Daily/Monthly Active Users Sessions Sticky Factor In-app Revenue Lifetime Value (LTV) Retention …. and more (Pre-defined metrics with a few lines of code) Amazon S3 Amazon Redshift Amazon DynamoDB Amazon EMR Amazon Machine Learning Amazon API Gateway Amazon Elasticsearch Service Amazon RDS
  6. 6. Assume a Role with Cognito Create an instance of your Mobile Analytics Application Create->Record->Submit Events Submitting Events: Android Example
  7. 7. Submitting Events: JavaScript Example
  8. 8. In-App Purchases: iOS
  9. 9. Demo: Mobile Analytics
  10. 10. Deliver: SNS Publisher Publisher Publisher SubscriberSubscriber Subscriber APNS 3rd Party Provider SNS Topics Email Platform Application SMS Platform Application Device Token Device Token Device Token
  11. 11. Provider (APNS, GCM, MPNS,…) Token Request Amazon SNS Platform Application “Token” Platform Endpoint - Upload Certificates, API Keys, etc. Upload Token - AKA “Create Platform Endpoint” Platform Application Lifecycle
  12. 12. APNS Signing Request App Creation ( •  BundleID •  Push Enabled Certificate Creation Provisioning Profile Test Connection Configuring Platform Applications GCM Components •  Google Developer Project •  Mobile App •  Backend Application (SNS) Credentials •  Sender ID (aka “Project Number”) •  API Key (authorization) •  HTTP header or XMPP auth request •  AppID
  13. 13. Demo: SNS
  14. 14. Authorization Cognito Identity -  Create Unique Identities -  Roles -  Authenticated -  Unauthenticated -  Temporary, limited credentials Cognito User Pools -  Fully managed User Directory -  Federate with Identity -  Pass to API Gateway -  Sign-up/Sign-in Workflows
  15. 15. Fine-grained control Send to Mobile Analytics Sync Datasets across devices Add Token to SNS Add email/phone to SNS
  16. 16. Provider (APNS, GCM, MPNS,…) Amazon SNS Platform Application “Token” Platform Endpoint Upload Token -  AKA “Create Platform Endpoint” Add Email to Topic Add Phone to Topic Alternative Options Amazon API Gateway Amazon Cognito User Pool AWS Lambda Topic Workflow Triggers /myapi/register Custom Authorizers
  17. 17. Demo: Cognito
  18. 18. Native Interrogates app lifecycle -  Background queue filled with Session and Custom Events -  Session events batched & sent Backgrounded time > AWSValueSessionResumeDelay -  Custom events sent anytime -  Best practice: use onPause, onStop, onResume SDK Session Management Web Configure default session length Force event submission anytime Window.localStorage ensures persistence through browser/tab exiting
  19. 19. Enhancing JavaScript Sessions Debate: Apples vs. Oranges? Modern browsers offer visibilitychange() event: extendSession() stopSession()
  20. 20. Delivery Status Written to CloudWatch Logs -  2-week graph of Sent vs Delivered -  Publishers can also write to CloudWatch w/ custom metric Tracking Metrics Application Events Publish to Topics - Lambda, HTTP/S, etc.
  21. 21. Publishing to SNS
  22. 22. iOS // if your app had to be launched. A particular key is set in options to specify that a push notification was received- application:didFinishLaunchingWithOptions: // if you app was already running in the background application:didReceiveRemoteNotification: Metrics: Open on Push Android
  23. 23. Demo: Custom Metrics
  24. 24. Personalization Engagement is all about personalization -  Automatic push if they installed but never did action X -  Push to group of users (Topic) with a custom message -  “Discount today click here!” -  Push to individuals with customized messages -  "Hey John we noticed you looked at product X but didn't purchase"
  25. 25. Tying it all together: Request tracking Amazon API Gateway Amazon SQS Amazon SNS Amazon DynamoDB AWS Lambda Amazon SQS Lambda #1 TimeStamp CognitoID Acknowledged DelaySeconds = 15 mins Lambda #2 SLA:TimeStamp+30min = expTimeStamp remaining = expTimeStamp – Time.Now() IF remaining >0 { //Resubmit to SQS w/ //visbility timeout remaining }ELSE{ //Business escalation logic } Poll for new messages Amazon Mobile Analytics
  26. 26. Example: Personalized Messages
  27. 27. Demo: Customized Push
  28. 28. What’s next? A Hands-on Workshop on AWS Infrastructure Services Date: Sep 29, 2016 AWS 10-Minute Tutorials “Hello, World!” technical documents to help you get hands-on with AWS.
  29. 29. Thank you!