55
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Getting Started with AWS Mobile Hub Paul Maddox, Solutions Architect October 2016

Getting Started with AWS Mobile Hub

Embed Size (px)

Citation preview

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Getting Started with AWS Mobile Hub

Paul Maddox, Solutions ArchitectOctober 2016

Who am I?

• @paulmaddox – feel free to reach out- Mixture of Dev

• Building highly scalable infrastructure since 2002- Mixture of Dev & Ops. Linux, LAMP, Java, C, Go, Docker etc.

• Building mobile applications, APIs and backends since 2012

• Solutions Architect @ AWS focusing on Mobile since 2014

DEVELOP TEST ENGAGE

Building quality mobile apps

When developing mobile apps today, you want to focus on ...

The great stuff that makes your app unique

Not…

The heavy lifting needed to manage back-end infrastructure

AWS Mobile Services eliminate the heavy lifting

DEVELOPTEST ENGAGE

“Mobile” growing in all directionsPublished mobile apps

continue to grow……As “mobile” platforms expand to new domains

TV

Watch

Car

*Source: App Annie

Apps are also getting more complex

…To cloud-connected apps From basic client apps…

Sign-in/SocialPush notifications

Usage analytics

Cloud storage

Crash analytics

Ads

Attributionanalytics Config management

Custom back ends

A/B testing

AWS Mobile SDKs

AWS Mobile Hub

Authenticate users

Analyze user behavior

Store and share media

Synchronize data

Deliver media

Amazon Cognito (Sync)

Amazon Cognito(Identity)

Amazon S3

Amazon CloudFront

Store dataAmazon DynamoDBAmazon RDS

Track retentionAmazon Mobile Analytics

Send push notificationsAmazon SNS Mobile Push

Server-side logicAWS Lambda

AWS Device Farm

Test your app

Build and scale your apps on AWS

Amazon Mobile Analytics

“AWS has what we need, but…it’s complex”

1. Which services should I use? 2. How do I connect them?

Identity provider SDKs+

=

Example:

Login screen & integration code+

SDK

There has to be a better way…

<demo>...

</demo>

High performance at any scale; Cost-effective and efficient

No Infrastructure to manage

Pay only for what you use: Lambda automatically matches capacity to

your request rate. Purchase compute in 100ms increments.

Bring Your Own Code

Lambda functions: Stateless, trigger-based code execution

Run code in a choice of standard languages. Use threads, processes,

files, and shell scripts normally.

Focus on business logic, not infrastructure. You upload code; AWS

Lambda handles everything else.

Cloud Logic with AWS Lambda

AWS Lambda ConsoleDevelop, test and publish your Lambda functions either by the AWS Management Console, AWS CLI or our SDKs.

Or use community frameworks such as serverless.com, gosparta.io and more…

Pricing Example

AWS Lambda (our example = $1.80/month):

Free tier: 1,000,000 invocations/month$0.20/million thereafterplus $0.00001667 per GB/second of memory

Our mobile backend services 10,000,000 requests/month, each request invokes a Lambda function that takes 100ms and uses 128MB of memory.

$1.80per month

<demo>...

</demo>

DEVELOP

TESTENGAGE

InstrumentationUI AutomationUI Automator

Your app

Improve the quality of your apps by testing against real devices in the AWS cloud

Automated testing on AWS Device Farm

(native, hybrid, web)XCTest

XCTest UI

Select a device View historical sessionsInteract with the device

Introducing Device Farm:Remote access

DEVELOP TESTENGAGE

“If you can’t measure it, you can’t improve it”-Lord Kelvin

Scalable and generous free tier

Focus on metrics that matter. Usage reports

available within 60 minutes of receiving data from an app.

Fast

Scale to billions of events per day from

millions of users.

Own your data

Simply and cost-effectively collect and analyze your application usage data

Data collected are not shared, aggregated,

or reused.

Amazon Mobile Analytics

Daily/monthly active users

Sessions

Sticky factor

In-app revenue

Lifetime value (LTV)

Retention

…. and more

(9 predefined metrics with one line of code)

Fast, flexible, global messaging to any device or endpoint

Global and fast at high scale

Send messages to any device or endpoint

Support for multiple platforms or frameworks

Amazon Simple Notification Service

Worldwide Delivery ofAmazon SNS Messages via SMS

RetrospectiveAnalyze historical

trends to know what's happening in

the app

Predictive Anticipate user

behavior to enhance experience

InquisitiveDiscover latent user behavior to shape

product or marketing decisions

Three Types of Data-Driven Decision Making

How many users use the app and how often?

What are key user behaviors in the app?

Your Mobile

App

How to predict user behavior and use those predictions to enhance their experience ?

In the Context of a Mobile App

Three Types of Data Driven Decision Making

RetrospectiveAnalyze historical

trends to know what's happening in

the app

Predictive Anticipate user

behavior to enhance experience

InquisitiveDiscover latent user behavior to shape

product or marketing decisions

Amazon Mobile Analytics

Collect, visualize, and export app usage data

Amazon Mobile Analytics

Collect, visualize, and export app usage data

<demo>...

</demo>

RetrospectiveAnalyze historical

trends to know what's happening in

the app

Predictive Anticipate user

behavior to enhance experience

InquisitiveDiscover latent user behavior to shape

product or marketing decisions

Three Types of Data Driven Decision Making

Going beyond standard metrics will give you more insight in to user behavior

How does usage pattern vary for users with different demographic profiles ?

Who are the most engaged users and what are their usage patterns ?

How does user population distribute across countries and platform ?

How much time does it takes for a user to convert to a paying user ?

Music App

Few Questions That Will Help You Understand Your Users Better

Auto Export to Amazon Redshift

Simple & intuitive

Integrate with existing data models

Automatically collect common attributes

Schema for Your App’s Event Data

Now Easy to Query and Visualize

Your Mobile

App

Now Easy to Query and Visualize

Your Mobile

App

QuickSight

New

Integration with BI Tools is Very Easy

RetrospectiveAnalyze historical

trends to know what's happening in

the app

Predictive Anticipate user

behavior to enhance experience

InquisitiveDiscover latent user behavior to shape

product or marketing decisions

Three Types of Data Driven Decision Making

Predicting user behavior helps in delivering personalized experiences for users

Let’s say we have been observing high user churn in the music app. Now, we want to identify these users in advance so that we could reach out to users before they leave the app

Predictive Application by Example

Music App

Let’s say we have been observing high user churn in the music app. Now, we want to identify these users in advance so that we could reach out to users before they leave the app

How could you identify users who have high probability to churn away from the app?

Music App

Predictive Application by Example

SELECT e.unique_id, Count(distinct session_id)

FROM events e

WHERE event_type = ‘_session.start’

HAVING e.date> GETDATE() - 30

You can start by looking atusage patterns of all users in thelast 30 days

One Way To Do is…

SELECT e.unique_id, Count(distinct session_id)

FROM events e

WHERE event_type = ‘_session.start’

AND date_part (dow,e.date ) in (6,7)

HAVING e.date> GETDATE() - 30

But usage pattern changes on weekends.

You can edit the query to filter for weekends only

One Way To Do is…

SELECT e.unique_id, Count(distinct session_id)

FROM events e

WHERE event_type = ‘_session.start’

AND date_part (dow,e.date ) in (6,7)

HAVING e.date> GETDATE() - 60

Pattern is not clear. You can go back in time to get a more clear pattern

One Way To Do is…

SELECT e.unique_id, Count(distinct session_id),

e.music_genre , e.subscription_type , e.locale

FROM events e

WHERE event_type = ‘_session.start’

AND date_part (dow,e.date ) in (6,7)

HAVING e.date> GETDATE() - 60

You want to learn not only from usage data but from custom behavior in the app

One Way To Do is…

SELECT e.unique_id, Count(distinct session_id),

e.music_genre , e.subscription_type , e.locale

FROM events e

WHERE event_type = ‘_session.start’

AND date_part (dow,e.date ) in (6,7)

HAVING e.date> GETDATE() - 120

….and again

One Way To Do is…

SELECT e.unique_id, Count(distinct session_id)

, e.music_genre , e.subscription_type , e.locale

FROM events e

WHERE event_type = ‘_session.start’

AND date_part (dow,e.date ) in (6,7)

HAVING e.date> GETDATE() - 120

Use machine learning technology to learn business rules from your data

Machine learning automatically finds patterns in your data and uses them to make predictions

Better Way To Do it is…

Users with High probability to churn

Users with Low probability to churn

Machine learning automatically finds patterns in your data and uses them to make predictions

Your data + Machine Learning

Predictive applications in the app

Better Way To Do it is…

Users with High probability to churn

Users with Low probability to churn

Predict users with low probability to purchase in the app and send discount coupon via in-app notification

Predict users with high probability to churn from the app and send push them notification to re-engage

Identify users with high probability to share the app and reach out to them to do the same Recommend relevant content to users based on similar user’s behavioral patterns

A Few Examples of Leveraging Mobile App Data with Machine Learning

Amazon Mobile Analytics

Amazon Redshift

App events

InsightsStrategies

Predictions

Mobile app developer Amazon Machine

Learning

+

Now Build Predictive Applications Using Your Mobile App Data Easily

Your Mobile

App

QuickSight

+

Without worrying about infrastructure

On real devices in the cloud

Track and improve usage and monetization

DEVELOP TEST ENGAGE

AWS Mobile Services

Without worrying about infrastructure

On real devices in the cloud

Track and improve usage and monetization

DEVELOP TEST ENGAGE

AWS Mobile Services

ITERATE