【问题标题】:Event Tracker with R Shiny Inputs and Google Analytics带有 R Shiny Inputs 和 Google Analytics 的事件跟踪器
【发布时间】:2020-12-01 11:36:53
【问题描述】:

有人知道使用 Google Analytics 和 R Shiny 跟踪事件的语法吗?

我想跟踪用户在与我的应用交互时选择了哪些输入。所以在这个例子中,我想知道用户何时使用并更改了“PointUseInput”复选框输入。

我尝试按照here 的建议进行操作,但我对 JavaScript 不是很熟悉,所以我不确定如何构造 ga 函数。

# ################################################################################################
# ################################################################################################
# # Sec 1a. Needed Libaries & Input Files

library(shiny)
library(shinydashboard)
library(leaflet)
library(dplyr)

##The Data
Map_DF <- data.frame("Point_ID" = c("A1", "B1", "C3"), 
                     "Latitude" = c(38.05, 39.08, 40.05), 
                     "Longitude" = c(-107.00, -107.05, -108.00),
                     "PointUse" = c("farm", "house", "well"))


################################################################################################
################################################################################################
#UI
ui <- dashboardPage(
    
    dashboardHeader(), 
    
    dashboardSidebar(
        

       ### tags$head(includeHTML(("google-analytics.html"))),  #Google Analytics html tag here
        
        
        checkboxGroupInput(inputId = "PointUseInput", label = "Select Point Use", choices = Map_DF$PointUse, selected = Map_DF$PointUse)
    ), 
    
    dashboardBody(
        fluidRow(leafletOutput(outputId = 'mapA'))
    )
)

################################################################################################
################################################################################################
server <- function(input, output, session) {
    
    ## The Filter
    filterdf <- reactive({
        Map_DF %>% 
            filter(PointUse %in% input$PointUseInput)
    })
    
    ## Base Map Creation
    output$mapA <- renderLeaflet({
        
        leaflet() %>%
            addProviderTiles(
                providers$Esri.DeLorme,
                options = providerTileOptions(
                    updateWhenZooming = FALSE,
                    updateWhenIdle = TRUE)
            ) %>%
            setView(lng = -107.50, lat = 39.00, zoom = 7)
    })
    
    ## Update Map with Filter Selection
    observe({
        leafletProxy("mapA", session) %>% 
            clearMarkers() %>% 
            addCircleMarkers(
                data = filterdf(),
                radius = 10,
                color = "red",
                lat = ~Latitude,
                lng = ~Longitude,
                popupOptions(autoPan = FALSE),
                popup = ~paste("PointUse: ", filterdf()$PointUse))
    })
    
}

################################################################################################
################################################################################################
shinyApp(ui = ui, server = server)

使用随附的 google-analytics JavaScript 代码...

  $(document).on('change', 'select', function(e) {
    ga('send', 'event', 'category', 'action', 'label', value);
  });

【问题讨论】:

    标签: javascript r shiny google-analytics


    【解决方案1】:

    google-analytics JavaScript 代码中设置以下语法对我有用:

    gtag('event', <action>, {
      'event_category': <category>,
      'event_label': <label>,
      'value': <value>
    });
    

    所以,而不是:

     $(document).on('change', 'select', function(e) {
        ga('send', 'event', 'category', 'action', 'label', value);
      });
    

    试试:

     $(document).on('change', 'select', function(e) {
        gtag('event', 'action', {
         'event_category': 'category',
         'event_label': 'label',
         'value': <value>
        });
      });
    

    你也可以试试:

     $('#selectInputId').on('change', function(e) {
        gtag('event', 'action', {
         'event_category': 'category',
         'event_label': 'label',
         'value': <value>
        });
      });
    

    这是我在关注您链接的the same article 时所做的唯一更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 2011-12-03
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多