利用Amazon Mobile Analytics与R深入探究移动应用的使用模式

作者:Sandeep Atluri 亚马逊数据科学家


要真正鼓励用户使用我们的移动应用程序,最重要的前提就是深入了解用户使用应用程序时的行为模式,而后据此作出体验优化。不过通过应用程序事件数据来找出有意义的模式往往极具挑战性,而标准KPI所提供的诸如月度活跃用户(简称MAU)以及每日活跃用户(简称DAU)并不足以勾勒出完整的图景。举例来说,所发布应用在过去三十天中的用户开启次数能够帮助大家了解用户对相关应用的使用模式,但MAU本身则只能提供当月使用过该应用的具体用户数量。因此,具备针对应用使用事件及指标进行自定义分析的能力对于应用程序的推广非常重要,大家可以据此制定出更理想的决策,包括如何调整应用的使用体验以提升用户吸引力等。

Amazon Mobile Analytics最近刚刚推出了Auto Export功能,它能够将应用程序当中的事件数据导出至Amazon S3与Amazon Redshift。利用这些数据,大家现在可以充分发挥R、Tableau以及SQLWorkbench等外部工具的作用,从而将冷冰冰的数字转化为真正有意义的分析结论及可视化图表。在今天的文章中,我们将一同了解如何分步将R(一套免费软件环境,主要用于处理统计性计算与图形)同Amazon Redshift中的Amazon Mobile Analytics数据加以结合。此外,我们还将着眼于一部分示例代码,学习如何利用R查询Amazon Redshift数据并执行基础分析任务。

首先,大家需要完成R的安装工作。如果各位之前还没有完成安装任务,请首先开启Amazon Mobile Analytics中的Auto Export功能。具体开启命令请点击此处查阅相关说明文档。

第一步:

打开R,使用R命令提示符并安装RPostgreSQL软件包:

install.packages("RPostgreSQL") 

第二步:

使用以下库函数以加载并访问该软件包:

  library(RPostgreSQL)  

第三步:

使用以下命令将R与Amazon Redshift相对接:

postgressdriver <- dbDriver("PostgreSQL")
 
redshift_connect<- dbConnect(postgressdriver
,host="<<ENTERHOSTDETAILSHERE>>"
,port="<<ENTERPORTDETAILSHERE>>"
,dbname="<<ENTERDBNAMEHERE>>"
,user="<<ENTERUSERNAMEHERE>>"
,password="<<ENTERPASSWORDHERE>>")  

第四步:

使用以下命令对Amazon Redshift当中的数据进行查询,并将其载入至R中的数据帧内:

sampledata <- dbGetQuery(redshift_connect,   
 "Select   
    application_app_id AS "app id",  
    COUNT(DISTINCT client_cognito_id) AS "users"   
  from   
     AWSMA.event   
  WHERE  
     event_type = '_session.start' AND  
     event_timestamp BETWEEN getdate() - 30 AND getdate() + 1  
  GROUP BY  
     application_app_id ") 

现在让我们查看部分用例与代码。

用例:分析过去七天当中所发布应用的用户开启情况

postgressdriver <- dbDriver("PostgreSQL")  
 
con <- dbConnect(postgressdriver
,host="<<ENTERHOSTDETAILSHERE>>"
,port="<<ENTERPORTDETAILSHERE>>"
,dbname="<<ENTERDBNAMEHERE>>"
,user="<<ENTERUSERNAMEHERE>>"
,password="<<ENTERPASSWORDHERE>>") 
 
df <- dbGetQuery(con,  
  "SELECT   
      client_cognito_id AS "users",   
      COUNT(*) AS "appopens"   
   FROM    
      AWSMA.v_event   
   WHERE   
      event_type = '_session.start' AND   
      event_timestamp BETWEEN getdate() - 7 AND getdate() + 1   
   GROUP BY   
      client_cognito_id ")  
 
##plot the histogram
 
hist(df$appopens,main="App opens distribution"
,xlab="Number of app opens in the last 7days"
,ylab="Number of players"
,breaks=seq(0,14,1) 
,col="green")   

用例:了解过去三十天当中不同系统平台上的活跃用户数量

postgressdriver <- dbDriver("PostgreSQL")
  
con <- dbConnect(postgressdriver
,host="<<ENTERHOSTDETAILSHERE>>"
,port="<<ENTERPORTDETAILS HERE>>"
,dbname="<<ENTERDBNAMEHERE>>"
,user="<<ENTERUSERNAMEHERE>>"
,password="<<ENTERPASSWORDHERE>>")
  
df <- dbGetQuery(con,  
 "SELECT   
     device_platform_name AS "platform",   
     COUNT(DISTINCT client_cognito_id) AS "active_users"   
  FROM    
     AWSMA.v_event   
  WHERE   
     event_type = '_session.start' AND   
     event_timestamp BETWEEN getdate() - 30 AND getdate() + 1   
  GROUP BY 
     device_platform_name") 
 
## plot a pie chart
 
pct <- round(df$active_users/sum(df$active_users)*100)  
lbls <- paste(df$platform, pct) # add percents to labels   
lbls <- paste(lbls,"%",sep="") # ad % to labels   
pie(df$active_users, labels = lbls
, main="Distribution of active users across platforms"  
,col=rainbow(length(lbls)))   

总结

通过将事件数据从应用程序内导出至Amazon MobileAnalytics,我们可以利用各种分析工具提取分析结论,从而帮助自己了解并推动移动应用业务的进一步发展。有了AmazonRedshift的强大支持,大家能够利用SQL查询命令直接对数据进行查询。而且如本文所示,大家还可以利用R轻松对提取出的结果进行可视化处理。希望大家能够在Amazon MobileAnalytics与Amazon Redshift的帮助下从相关数据中发掘出最具价值的信息。感兴趣的朋友也可以点击此处访问我们的论坛,并在评论当中留下您的宝贵意见。

原文链接:

http://mobile.awsblog.com/post/Tx22DB1H8UNCDS9/Get-insights-into-your-mobile-app-usage-patterns-using-Amazon-Mobile-Analytics-a

核子可乐译

猜你喜欢

转载自blog.csdn.net/u012365585/article/details/48134209
今日推荐