我开发了一个Shiny应用程序,希望使用Google Analytics跟踪用户行为(例如用户单击哪些按钮,更改了哪些输入...)。
我找到了这两个有趣的"教程":
- https://shiny.rstudio.com/articles/google-analytics.html
- https://shiny.rstudio.com/articles/usage-metrics.html
然而,我的JavaScript知识为零,我在我的Shiny应用程序中实现它时遇到了问题。
我的问题如下:
- 我如何追踪用户单击了哪个按钮?如果我在应用程序中有多个按钮,例如下面的代码中的button1或button2,我能否追踪用户是否单击了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)