使用 Google Analytics 跟踪网站上的社交推文
Tracking Social Tweets on Website with Google Analytics
我们有一个包含 Twitter Tweet 按钮的网站。我们希望跟踪点击推文按钮的社交事件。
我们正在使用较新的 Universal Analytics 并遵循以下示例:
https://developers.google.com/analytics/devguides/collection/analyticsjs/social-interactions
对于 twitter,我们包含他们的 JS,如下所示:
<script async defer>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
</script>
我们在绑定到 tweet 事件时遇到问题,如 Twitter 上所述:
https://dev.twitter.com/web/javascript/events
问题是'twttr is not defined'。这里有一个类似的问题:
我已尝试在此处实施相同的方法,但我没有看到任何控制台日志?
<script>
window.addEventListener("load", function() {
document.getElementById('twitter-wjs').addEventListener('load', function() {
console.log('1');
twttr.ready(function (twttr) {
console.log('2');
twttr.events.bind('tweet', function(e){
console.log('3');
if(!e) return;
ga('send', 'social', 'twitter', 'tweet', theURL);
console.log('tweet');
})
});
}, false);
}, false);
</script>
我们如何在 GA 中跟踪 Twitter 推文点击次数?
问题是您要在 window
对象的 load
事件回调中为 Twitter 小部件脚本添加 load
事件处理程序。如果 Twitter 小部件的脚本代码是页面初始内容的一部分,那么浏览器将下载该脚本并 运行 它会在触发 window
的 load
事件之前。
换句话说,您脚本的 load
处理程序永远不会 运行ning 因为它的 load
事件已经发生了——在您为其添加侦听器之前。
您可以更新代码以在为脚本添加 load
侦听器之前检查 twttr
对象是否存在:
window.addEventListener("load", function() {
function onTwttrReady() {
twttr.events.bind('tweet', function(e){
if(!e) return;
ga('send', 'social', 'twitter', 'tweet', theURL);
console.log('tweet');
})
}
if (window.twttr) {
onTwttrReady();
} else {
document.getElementById('twitter-wjs')
.addEventListener('load', onTwttrReady);
}
});
我们有一个包含 Twitter Tweet 按钮的网站。我们希望跟踪点击推文按钮的社交事件。
我们正在使用较新的 Universal Analytics 并遵循以下示例: https://developers.google.com/analytics/devguides/collection/analyticsjs/social-interactions
对于 twitter,我们包含他们的 JS,如下所示:
<script async defer>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
</script>
我们在绑定到 tweet 事件时遇到问题,如 Twitter 上所述: https://dev.twitter.com/web/javascript/events
问题是'twttr is not defined'。这里有一个类似的问题:
我已尝试在此处实施相同的方法,但我没有看到任何控制台日志?
<script>
window.addEventListener("load", function() {
document.getElementById('twitter-wjs').addEventListener('load', function() {
console.log('1');
twttr.ready(function (twttr) {
console.log('2');
twttr.events.bind('tweet', function(e){
console.log('3');
if(!e) return;
ga('send', 'social', 'twitter', 'tweet', theURL);
console.log('tweet');
})
});
}, false);
}, false);
</script>
我们如何在 GA 中跟踪 Twitter 推文点击次数?
问题是您要在 window
对象的 load
事件回调中为 Twitter 小部件脚本添加 load
事件处理程序。如果 Twitter 小部件的脚本代码是页面初始内容的一部分,那么浏览器将下载该脚本并 运行 它会在触发 window
的 load
事件之前。
换句话说,您脚本的 load
处理程序永远不会 运行ning 因为它的 load
事件已经发生了——在您为其添加侦听器之前。
您可以更新代码以在为脚本添加 load
侦听器之前检查 twttr
对象是否存在:
window.addEventListener("load", function() {
function onTwttrReady() {
twttr.events.bind('tweet', function(e){
if(!e) return;
ga('send', 'social', 'twitter', 'tweet', theURL);
console.log('tweet');
})
}
if (window.twttr) {
onTwttrReady();
} else {
document.getElementById('twitter-wjs')
.addEventListener('load', onTwttrReady);
}
});