我希望使用事件跟踪来记录对另一个网站的特定链接类型的点击.我正在使用jQuery,我目前的代码是:
$('a.website').click(function(event) {
var href = $(this).attr('href');
try {
_gaq.push(['_trackEvent', 'website', 'click', href]);
} catch(err) {}
});
Run Code Online (Sandbox Code Playgroud)
然而,从其他网站看到引荐信息后,我也不敢相信这是准确跟踪点击,可能是因为_gaq.push是异步的,并请求的浏览器导航到URL之前尚未收到,并终止任何JavaScript的运行当前页面.
有没有办法检测到该_gaq.push功能是否已成功完成,所以我可以在记录事件后使用event.preventDefault()和document.location导航到该链接?
我正在尝试将分析事件跟踪添加到onclick事件中,以便在表单上提交输入.
我尝试了多个不同的例子,并引用了几个不同的SO帖子来达到这一点.我可以让onclick提交表单或触发跟踪事件,但不能同时触发.
第一个例子:(将表单+日志提交到控制台,但不会触发事件)
<!-- Analytics tracking code -->
<form action="test.php" id="form" method="post">
<input type="text" name="name" id="name">
<!-- Submits form + logs to console but doesn't fire event -->
<input type="submit" name="submit" value="Submit" onclick="
var _this = this;
_gaq.push(
['_trackEvent', 'Forms', 'Submit', 'Home Contact'],
function() {
console.log('submitting');
$(_this).parents('form').submit();
}
);
">
</form>
Run Code Online (Sandbox Code Playgroud)
第二个例子:(触发事件+日志到控制台,但不提交表单)
<!-- Analytics tracking code -->
<form action="test.php" id="form" method="post">
<input type="text" name="name" id="name">
<!-- Fires event + logs to console but doesn't submit form -->
<input …Run Code Online (Sandbox Code Playgroud) 我有一个指向我的网页的链接,我希望在将用户重定向到外部页面之前使用 Google Analytics 和 Google Tag Manager 跟踪用户。
我想确保在执行重定向之前完成 GA 和 GTM。最好的方法是什么?
一个简单的方法是使用 setTimeout。但是 1000 毫秒是太长还是太短?如果可以在跟踪实际完成时进行重定向,会更喜欢吗?。GTM 和 GA 跟踪是否在文档准备好之前完成?如果不能,这可以强制吗?
<html lang="sv">
<head>
<title></title>
<meta charset="utf-8"/>
<script src="~/Scripts/jquery-2.1.0.min.js"></script>
<!-- ANALYTICS CODE -->
</head>
<body>
<!-- TAG MANAGER CODE -->
<script language="javascript">
$(function() {
setTimeout(function() {
window.location.replace("http://externalwebsite.com");
},1000);
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在 GTM 存储桶中,我有 Twitter 和 Facebook 再营销标签。
更新的解决方案
我已经更新了我的解决方案。因为我最感兴趣的是确保 GA 在重定向之前绝对触发,这会更好。
<html lang="sv">
<head>
<title></title>
<meta charset="utf-8"/>
<script src="~/Scripts/jquery-2.1.0.min.js"></script>
<script language="javascript">
var redirect = function(waitFor) {
return function(signal) {
waitFor[signal] …Run Code Online (Sandbox Code Playgroud)