在 Shiny 应用程序中跟踪用户活动

Posted

技术标签:

【中文标题】在 Shiny 应用程序中跟踪用户活动【英文标题】:Track user activity in Shiny app 【发布时间】:2016-02-10 18:33:58 【问题描述】:

我有一个闪亮的仪表板应用程序,可以通过在文本框中输入电子邮件地址来访问它。成功登录后,我为每个用户提供了 3 个选项卡和一个通知菜单。这非常有效。但是,我想跟踪用户在我的应用上的活动。

我知道通过使用 session$clientData,我可以记录用户的 IP 地址,但我希望能够跟踪哪些用户访问了哪些选项卡,以及他们是否点击了任何通知。无论如何我可以为创建的每个会话执行此操作吗?我知道谷歌分析(here) 是一个解决方案,但没有其他办法吗?感谢任何帮助。谢谢

【问题讨论】:

我不认为有一种自动化的方法,但我为每个用户创建反应值来记录他们的活动。您需要在服务器端执行此操作,因此当单击按钮时,只需让服务器修改该反应变量。退出时,保存所有内容 @OganM,我确实想到了这一点,但是我需要为每个会话存储这些值,并且不确定它是否会按照您提到的方式工作。感谢您的帮助! 是的,对于您需要创建反应值的每个会话。据我所知,它确实有效。我使用@daattali的博客文章中描述的rdrop2包来为每个用户指纹创建一个文件(ip +浏览器fingerpint。如果你在shinyapps.io上运行它,ip并不总是可用的。可以按照以下说明获取指纹:gist.github.com/srvanderplas/6049567)。或者,您可以在用户执行操作时修改文件,但这会在用户操作之间偷偷进行读写操作,这可能会根据您的日志记录频率减慢用户的速度。 @OganM 是正确的,应该可以工作 非常有帮助@OganM!谢谢。 【参考方案1】:

如果您不想使用 Google Analytics,您可以将所需的信息写入文件或第三方数据库/文件存储系统。 This article on persistent storage in shiny 可以给你一些关于如何做到这一点的想法

【讨论】:

这真的很有帮助。谢谢! 使用您共享的链接,我知道我可以存储我拥有的文本框中的值,但是有没有办法可以跟踪用户是否选择了任何选项卡? 您只需要编写自己的代码来跟踪是否单击了选项卡。例如,您可以有一个反应变量来跟踪单击的选项卡,并且当单击选项卡时,它会更改变量。 (如果您在tabsetPanel 中添加“id”属性,那么您可以使用input$id 了解何时单击选项卡) 我实际上使用了您编写的 shinjs 包中的 onclick 选项。它对我来说效果很好,但我仍然有一些困难,我将在另一个问题中提出。不过谢谢!

以上是关于在 Shiny 应用程序中跟踪用户活动的主要内容,如果未能解决你的问题,请参考以下文章

在 plotly r shiny 应用程序中动态添加跟踪

如何使用 `renderUI` 响应式更新 Shiny 应用程序中的活动菜单项?

我们能否在Python Flask中跟踪当前活动的会话

是否有可用于跟踪用户活动的框架?

在 Shiny 应用中存储用户上传的数据

通过感知哈希算法跟踪视觉相似图像的恶意软件活动