google-analytics - Google Analytics(分析)无法与 Meteor 配合使用

标签 google-analytics meteor meteorite iron-router

我正在尝试使用这种技术 http://www.bicobic.com/posts/BkFDo4CqcSnGcGtri将谷歌分析添加到 Meteor,但它不起作用(我已经使用谷歌分析调试器检查过)。我正在尝试使用 Universal Analytics 代码。

这是我的代码

<template name="ganalytics"> 
   <div id="ganalytics"> 
   </div>    
 </template> 


 Meteor.startup(function() {
   isGanalyticsLoaded = false;

   //a scriptloaderfunction
   //if the script jsE1 loaded the callback is executed
   myScriptLoader = function funcMyScriptLoader(jsEl, callback) {
         if (window.attachEvent) {

 // for IE (sometimes it doesn't send loaded event but only complete)
        jsEl.onreadystatechange = function funcOnReadyStateChange() {
            if (jsEl.readyState === 'complete') {
               jsEl.onreadystatechange = "";
        } else if (jsEl.readyState === 'loaded') {
                jsEl.onreadystatechange = "";
        }

    if (typeof callback === 'function') {
      callback();
    }
  };
} else {
  // most browsers
  jsEl.onload = function funcOnLoad () {
    if (typeof callback === 'function') {
      callback();
    }
  };
}
 };  
});


Template.ganalytics.rendered = function() {  
   if(!isGanalyticsLoaded) {
      window['GoogleAnalyticsObject']='ga';
      window['ga']=window['ga']||function(){
         (window['ga'].q=window['ga'].q||[]).push(arguments)
      }, window['ga'].l=1*new Date();    

      var myGAJs = document.createElement('script'),
         s = document.getElementsByTagName('script')[0];
            myGAJs.type ='text/javascript';
            myGAJs.async = true;
            myGAJs.src = '//www.google-analytics.com/analytics.js';

    myScriptLoader(myGAJs, function funcEventLoaded() {
        isGanalyticsLoaded = true;
        ga('create', 'UA-XXXXXX', 'url');
        ga('send', 'pageview');  
     });
        s.parentNode.insertBefore(myGAJs, s);
    }
 };


 <template name="layout">
      <div>
      {{yield}}
    </div>
      {{yield 'ganalytics'}}
</template> 

我的代码可能有什么问题?

提前致谢。

最佳答案

较新的 Google Analytics 代码段似乎不适用于 Meteor,但将这种较旧的优化样式放入 HEAD 中却可以:

var _gaq=[['_setAccount','UA-xxx'],['_setDomainName', 'example.com'],['_trackPageview']];
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
s.parentNode.insertBefore(g,s)}(document,'script'));

您还可以执行此操作将客户端错误记录到 GA:

// log client-side errors to Google Analytics
window.onerror = function(message, file, line) {
  _gaq.push(['_trackEvent', 'JS Error', file + ':' + line + '\n\n' + message]);
};

关于google-analytics - Google Analytics(分析)无法与 Meteor 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224129/

相关文章:

javascript - 无法部署待办事项;无法删除容器 (todos-frontend)

javascript - Meteor.js 公用文件夹不提供 .html 文件

javascript - 模拟 _gaq_push 函数的函数

ios - 在 iOS 记录事件后从 Firebase Analytics 发送邮件

google-analytics - GA:来源/媒介无法正确跟踪网址参数化

javascript - Meteor、NPM 模块和光纤回调

javascript - 如何重命名 Meteor 包?

javascript - Python处理如何与Meteor链接

javascript - meteor .js : How to periodically query collection documents from view

android - 当我添加谷歌分析时,发生classcastException