javascript - 将 Google Analytics 代码放入 JS 文件中

标签 javascript google-analytics

我们将 GA 代码添加到 JS 文件并从那里调用它。这是我们在 <head> 中得到的内容标签:

<script src="/public/tail/tail.js"></script>

这是我们目前在 .js 文件中得到的内容:

// Global site tag (gtag.js) - Google Analytics 
dynamicLoadJs('https://www.googletagmanager.com/gtag/js?id=UA-74793602-1','async');
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-849140015');
gtag('config', 'UA-74793602-1', { 'anonymize_ip': true });

但是,显然有一个问题,几天后,我没有得到统计数据!

有什么我需要更改的想法吗?

最佳答案

dynamicLoadJs 函数对网络进行异步调用以开始下载脚本,但您编写的代码会立即执行,甚至在 JS 文件完成下载之前。

您需要的是在脚本加载和执行后触发的“回调”。

因此您应该有效地拥有如下代码:

/*This function will load script and call the callback once the script has loaded*/
function loadScriptAsync(scriptSrc, callback) {
    if (typeof callback !== 'function') {
        throw new Error('Not a valid callback for async script load');
    }
    var script = document.createElement('script');
    script.onload = callback;
    script.src = scriptSrc;
    document.head.appendChild(script);
}

/* This is the part where you call the above defined function and "call back" your code which gets executed after the script has loaded */
loadScriptAsync('https://www.googletagmanager.com/gtag/js?id=UA-74793602-1', function(){
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'AW-849140015');
    gtag('config', 'UA-74793602-1', { 'anonymize_ip': true });
})

希望这在概念上也是清晰的。

关于javascript - 将 Google Analytics 代码放入 JS 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51833090/

相关文章:

google-analytics - 使用Async Google Analytics标记页面跟踪器事件

svn commit 触发谷歌分析注释?

javascript - 是否可以在 javascript 中检测电池供电的设备?

javascript - JQuery wrap() 问题

ios - Crashlytics 和 Google Analytics 以及缺失的 dSYM

使用 Google Analytics 的 Angular 4+

ios - 谷歌分析 iOS。如何使用 -send :params: ?

javascript - window.location.hash 包含点/句点的奇怪行为

javascript - 由于 Ext.getBody() 尚未定义,初始页面加载时出现 ExtJS 错误

javascript - 如何从struts html属性获取文档Id