我正在基于热毛巾模板构建应用程序。Google Analytics 遇到问题。我对此完全陌生,这是我到目前为止所做的:
1)在谷歌分析帐户中注册
2)在我粘贴的结束标记之前的 index.cshtml 文件中:
<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');
</script>
3) 将 TypeScript 定义从 nuget 添加到 shell.ts 文件(我将其重写为 TypeScript)
/// <reference path="../../scripts/typings/google.analytics/ga.d.ts" />
版本为 0.0.9。
后期激活方法:
this.router.on('router:navigation:complete', (instance, instruction) => {
ga('create', 'UA-XXXXX-1', { 'cookieDomain': 'none' });
ga('send', 'pageview');
});
但无法编译文件 - ga.d.ts 中的 ga 对象定义没有声明任何函数 - 只有属性。
我做了一些研究并找到了可行的解决方案:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-51465809-1']);
_gaq.push(['_setCookieDomain', 'none']);
_gaq.push(['_gat._anonymizeIp']);
_gaq.push(['_trackPageview']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_setAllowHash', false]);
_gaq.push(() => {
var tracker = _gat._getTrackerByName('UA-51465809-1');
tracker._trackPageview();
});
但它似乎适用于以前的谷歌分析版本——不是最新的。
试图使用站点http://petermorlion.blogspot.com/2014/04/using-google-analytics-in-durandal-spa.html的信息但没有成功 - ga.d.ts 中的 ga 对象定义没有t 没有声明任何函数。
任何帮助表示赞赏。