如何在Shiny应用程序中使用Google Analytics和事件跟踪来跟踪用户行为?

12

我开发了一个Shiny应用程序,希望使用Google Analytics跟踪用户行为(例如用户单击哪些按钮,更改了哪些输入...)。

我找到了这两个有趣的"教程":

然而,我的JavaScript知识为零,我在我的Shiny应用程序中实现它时遇到了问题。

我的问题如下:

  1. 我如何追踪用户单击了哪个按钮?如果我在应用程序中有多个按钮,例如下面的代码中的button1或button2,我能否追踪用户是否单击了button1或button2?
  2. 我如何追踪用户单击了哪个选项卡?
  3. 我在代码中的哪里放置这些事件跟踪器?

一个简短的可重现代码:

ui <- navbarPage("Test app", id = "inTabSet",
                 header = singleton(tags$head(HTML(
                   "<script>
                   (function(i,s,o,g,r,a,m){
                   i['GoogleAnalyticsObject']=r;i[r]=i[r]||
                   function(){
                   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();
                   a=s.createElement(o), m=s.getElementsByTagName(o)[0];
                   a.async=1;
                   a.src=g;m.parentNode.insertBefore(a,m)
                   })
                   (window, document, 'script',
                   '//www.google-analytics.com/analytics.js','ga');

                   ga('create', 'UA-XXXXXXXXX-1', 'auto');
                   ga('send', 'pageview');


                   </script>"
                 ))),

                 tabPanel("Informatie",
                          h2("Welcome!"),
                          br(),
                          actionButton('button1', 'First button')
                 ),

                 tabPanel("First tab",
                          h2("Welcome to the first tab!"),
                          uiOutput('first_tab')

                 )

)


server <- function(input, output, session){
  output$first_tab <- renderUI({
    sidebarLayout(
      div(id = "Sidebar", sidebarPanel(
        sliderInput('slider', "Slider input", min = 0, max = 100, value = 50),
actionButton('button2', 'Second button')
      )),
      mainPanel(
        h2("This is the mainpanel")
      )
    )
  })
}

shinyApp(ui, server)

我们在同一艘船上。你有什么头绪吗? - Atakan
也在寻找解决这个确切问题的方法 - 有进展吗? - Kodiakflds
四年过去了,仍在寻找解决方案。 - Brooke Gibbons
1个回答

0

回答你的第一个问题:是的,你可以。分析工具让你定义任何你想要的自定义事件: 自定义事件。通过在onclick中添加事件就可以实现。例如,你可以把第一个按钮的事件命名为clickedOnBtn1,第二个按钮的事件命名为clickedOnBtn2,并将它们放在onclick中。在你的分析控制台中,你将在根据名称部分找到这些事件。请参阅您亮闪闪的文件中的第4步-创建事件跟踪器

<a href="http://www.example.com" 
   onclick="ga('send', 'event', 'click', 'link', 'IKnow', 1)">
   I know when you click me
</a>;

回答你的第二个问题:就像上面一样。你可以把这些自定义函数放在任何你想要的地方。
回答你的第三个问题:在你组件的动作中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接