Вставьте код отслеживания Google Analytics в блестящее приложение - PullRequest
0 голосов
/ 26 мая 2018

Я использую Google Analytics для отслеживания активности в блестящем веб-приложении, используя следующую строку в верхней части моего ui.R:

shinyUI(fluidPage(
    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', 'XXXXXXX', 'auto');
        ga('send', 'pageview');

        </script>"
      )),
...
)

Однако недавно я зарегистрировал новое приложение и код отслеживания.Я получаю от Google Analytics:

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

  gtag('config', 'XXXXX');
</script>

Следуя инструкциям RStudio Я сохранил это как google-analytics.js и вместо tags$head(HTML("...")) У меня есть:

includeScript("google-analytics.js")

Однако это не работает.Инструкции из приведенной выше ссылки гласят:

Предупреждение: функция includeScript помещает содержимое сценария в пару тегов сценария.Если вы копируете и вставляете код Javascript в файл .js, обязательно удалите эти теги

Я экспериментировал с удалением <script> и </script>, а также с тегами html, окружающими async src="https://www.googletagmanager.com/gtag/js?id=XXXXX"но ни одна из них не работает

Кто-нибудь может пролить свет на то, как это работает правильно?

1 Ответ

0 голосов
/ 07 июня 2018

На основании этой статьи Дугласа Уотсона все, что вам нужно сделать, это:

  1. Скопируйте фрагмент HTML-кода аналитики в текстовый файл.(создал файл с именем google_analytics.R, в том же каталоге, что и ui.R)
  2. Включить его в ui.R

    shinyUI(fluidPage( tags$head(includeHTML(("google-analytics.html"))), ...

...