2014-01-19 3 views
1

Я пытаюсь использовать эту технику http://www.bicobic.com/posts/BkFDo4CqcSnGcGtri, чтобы добавить аналитику google в Meteor, но она не работает (я уже проверял с помощью отладчика Google Analytics). И я пытаюсь использовать код Universal Analytics.Google Analytics не работает с Meteor

Вот мой код

<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> 

Что может быть не так с моим кодом?

Заранее спасибо.

ответ

2

Поздний Google Analytics фрагмент кода не похожа на работу в Метеоре, но положить этот старый, оптимизированный стиль в голове делает:

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')); 

Вы также можете сделать это, чтобы войти на сторону клиента ошибку в ГА:

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

Спасибо, я положил это прямо в голову (внутри тега скрипта)? – swayziak

+0

Да! (... обивка ...) – alanning

Смежные вопросы