Как использовать Google Analytics и отслеживание событий для отслеживания поведения пользователя в приложении Shiny? - PullRequest
0 голосов
/ 01 мая 2018

Я разработал приложение 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)
...