Я разработал приложение Shiny и хотел бы отслеживать поведение пользователя (например, по каким кнопкам пользователь нажимал, какие входные данные они изменяли, ...) с помощью Google Analytics.
Я нашел эти два интересных "урока":
Однако мои знания javascript равны нулю, и у меня возникают проблемы с его реализацией в моем приложении Shiny.
У меня есть следующие вопросы:
- Как я могу отследить, на какую кнопку нажали пользователи? Что если у меня в приложении несколько кнопок, как в приведенном ниже коде. Могу ли я отследить, нажали ли пользователи на button1 или button2?
- Как я могу отследить, на какой вкладке они нажали?
- Где в моем коде я должен разместить эти трекеры событий?
Короткий воспроизводимый код:
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)