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

AES*_*AES 7 javascript google-analytics r event-tracking shiny

我开发了一个 Shiny 应用程序,我想使用 Google Analytics 跟踪用户行为(例如,用户点击了哪些按钮,他们更改了哪些输入,......)。我发现了这两个有趣的“教程”:

但是,我对 javascript 的了解为零,并且在我的 Shiny 应用程序中实现它时遇到了问题。

我有以下问题:

  1. 如何跟踪用户点击了哪些按钮?如果我的整个应用程序中有多个按钮怎么办,就像下面的代码一样。我可以跟踪用户是否点击了 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)
Run Code Online (Sandbox Code Playgroud)

Eva*_*vaa 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>;
Run Code Online (Sandbox Code Playgroud)

回答你的第二个问题:它与上面完全相同。您可以将这些自定义函数放在任何您想要的地方。

回答你的第三个问题:在你的组件的操作中