2017-10-04 162 views
2

我有一個很好的整理R閃亮(shinydashboard)應用程序在服務器上運行。我希望能夠跟蹤其使用情況,並知道谷歌分析是一個很好的解決方案。但是我遇到了一個設置它的問題。谷歌分析閃亮儀表板應用程序

我試圖在這裏描述https://shiny.rstudio.com/articles/google-analytics.html

他們認爲含有從谷歌全球網站標籤的谷歌,analytics.js的腳本的創作方向如下:

<!-- Global Site Tag (gtag.js) - Google Analytics --> 
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-4XXXXX5-2"> 
</script> 
<script> 
window.dataLayer = window.dataLayer || []; 
function gtag(){dataLayer.push(arguments);} 
gtag('js', new Date()); 

gtag('config', 'UA-4XXXXX5-2'); 
</script> 

然後,他們認爲,這種「 google-analytics.js「腳本文件在閃亮的應用程序標題中調用,如下所示:

#ui.r 
library(shiny) 
shinyUI(fluidPage(

    tags$head(includeScript("google-analytics.js")), 
    includeCSS("cerulean.css"), 

    titlePanel("Sunlight in the US"), 

但是因爲我正在使用shin Ÿ儀表盤我的閃亮佈局不同...

#ui.r 
library(shiny) 
library(shinydashboard) 

dashboardPage(

    dashboardHeader(title = "Single Cell Database"), 

    dashboardSidebar(
    sidebarMenu(
     menuItem("P15 Clustering", tabName = "P15_Cluster", icon = icon("th")), 
     menuItem("P15 Violin Plots", tabName = "P15_Violin", icon = icon("th")) 
    )), 

    dashboardBody(
    tabItems(
     tabItem(tabName = "P15_Cluster", 

我似乎無法弄清楚在何處放置...

tags$head(includeScript("google-analytics.js")), 

......在閃亮的儀表盤格式。另外,由於googles代碼格式不再與示例相匹配,我不相信腳本函數的新格式。

任何有關如何在閃亮的儀表板標題中調用「google-analytics.js」腳本或如何格式化「google-analytics.js」文件中的代碼的幫助或建議將非常感謝!

回答

1

我和你有同樣的問題。我可以解決這個問題,並在之後https://shiny.rstudio.com/articles/usage-metrics.html

第一步教程之後的工作原理:您可以使用下面的代碼在谷歌,analytics.js的文件:

(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', 
    'https://www.google-analytics.com/analytics.js','ga'); 
ga('create', 'UA-4XXXXX5-2', 'auto'); 
ga('send', 'pageview'); 

$(document).on('change', 'select', function(e) { 
    ga('send', 'event', 'widget', 'select data', $(e.currentTarget).val()); 
}); 

$(document).on('click', 'button', function() { 
    ga('send', 'event', 'button', 'plot data'); 
}); 

;第二,你可以調用在「dashboardBody」中輸入「google-analytics.js」。如下面的語法:

dashboardBody(
    tags$head(includeScript("google-analytics.js")), 
    tabItems(
     tabItem(tabName = "P15_Cluster",