我是一名数字分析师,正在尝试学习 Javascript,尤其是我们的组织现在使用 Google 跟踪代码管理器。
今天早上,我的网站设置为跟踪某些出站链接(点击应用商店)作为事件。自定义 HTML 是:
<script type="text/javascript">
$(document).ready(function(){
$('.app-cta a').click(function(){
dataLayer.push({ 'event':'GAevent', 'eventCategory':'App', 'eventAction':'Click to App Store', 'eventLabel':'iOS' })
});
});
</script>
但是有一个问题(显然很常见),当一个人点击退出链接时,浏览器在 Javascript 有时间将参数传递给 Google Analytics 之前点击了新站点。建议的解决方法是添加 500 毫秒的延迟,因此:
<script type="text/javascript">
setTimeout(function(){
$(document).ready(function(){
$('.app-cta a').click(function(){
dataLayer.push({ 'event':'GAevent', 'eventCategory':'App', 'eventAction':'Click to App Store', 'eventLabel':'iOS' })
});
});
},500);
</script>
这让我感觉很棒,因为这是我第二次或第三次使用 Javascript。
然后我想大胆一点。我想让代码“更整洁”,并尝试从分析函数中创建一个变量,然后针对该变量运行 setTimeout 方法。这是我尝试过的:
<script type="text/javascript">
setTimeout(function(){track_app},500);
var track_app = $(document).ready(function(){
$('.app-cta a').click(function(){
dataLayer.push({ 'event':'GAevent', 'eventCategory':'App', 'eventAction':'Click to App Store', 'eventLabel':'iOS' })
});
});
</script>
我意识到这必须看起来非常基本,但如果有人能指出为什么最后一次尝试没有奏效,我将不胜感激?我最初的尝试(这是有效的,我可以很容易地恢复)是向分析功能添加 500 毫秒延迟的“最简洁”方式吗?集成 setTimout 方法的最佳方法是什么?