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

时间:2018-05-01 07:52:47

标签: javascript r google-analytics shiny event-tracking

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

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

我有以下问题:

  1. 如何跟踪用户点击的按钮?如果我的应用程序中有多个按钮,如下面的代码,该怎么办?我可以跟踪用户是否点击了button1或button2?
  2. 如何跟踪他们点击了哪个标签?
  3. 在我的代码中,我必须放置这些事件跟踪器吗?
  4. 简短的可重现代码:

    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)
    

0 个答案:

没有答案
相关问题