Universal Analyitics不跟踪导致弹出窗口的链接

时间:2015-06-02 15:52:22

标签: php html google-analytics universal-analytics event-tracking

我最近接手了一个小型学校网站,该网站使用了一些非常复杂的分析,比如UA和GA的混合。因此,我删除了所有旧的分析代码,创建了一个新帐户,并使用UA运行所有内容。我只跟踪链接点击,因此代码不是太复杂。我遇到的问题是导致弹出窗口的链接不会发送事件。当我实时观看事件时,通向新页面的链接可以完美地发送事件,但只会导致弹出窗口的链接不能。在下面的代码段中,第一个链接指向另一个页面和轨道,第二个链接生成弹出窗口但不跟踪。

<tr>
<td class="tableCenterBoxes">
	<a href="http://bit.ly/nutritionCalculator"
	   target="_blank"
	   onclick="ga('send', 'event', 'quickLinks', 'nutritionCalculator');">
		Nutrition Calculator
	</a>
</td>
</tr>
<tr>
<td class="tableCenterBoxes">
	<a href="popups/ClubsAndOrganizationsFall2015.pdf"
	   rel="clearbox[gallery=Resources,,width=650,,height=500,,title=Clubs and Organizations]"
	   onclick="ga('send', 'event', 'quickLinks', 'clubsAndOrganizations');">
		Clubs and Organizations
	</a>
</td>
</tr>

我不知道为什么会这样,所以非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

绑定事件

我看到你使用了一些clearbox插件,这个插件是由rel参数设置的。页面加载后,clearbox中的脚本会在每个rel = clearbox参数上设置事件侦听器并设置其新行为。它可能解除了以前的onclick元素,例如你的GA代码。这是一个问题,您可以尝试以几种不同的方式解决它。

又快又脏

在页面加载后用javascript设置这个onclick监听器有一些延迟 - 例如上传后1-2秒。这只是在ClearBox的弹出链接中为现有配置添加了一个onclick事件。

正确的方法

Clearbox库有一些回调函数。

CB_AllowExtFunctLoad ='on'调用函数CB_ExternalFunctionLoad();每次加载新内容后。在此功能中,您可以自定义ga(“发送”...)呼叫...

<强> '上' CB_AllowExtFunctPageLoad = 调用名为CB_ExternalFunctionPageLoad()的函数;页面完全加载后。这是在全球范围内设置自定义事件监听器的正确位置。

您可以在以下部分的clearbox文档中阅读更多内容:Clearbox专业设置:http://kreaturamedia.com/clearbox/index_en.html

更新

你设置的事件监听器看起来像(jQuery示例):

的jQuery

<a href="popups/ClubsAndOrganizationsFall2015.pdf"
 rel="clearbox[gallery=Resources,,width=650,,height=500,,title=Clubs and Organizations]"
 data-description="clubsAndOrganizations">
    Clubs and Organizations
</a> 

<script>
var CB_AllowExtFunctPageLoad = function(){
 $(".tableCenterBoxes a").onclick(function(){
   var desc = $(this).attr("data-description");
   ga('send', 'event', 'quickLinks', desc);
 }); 
}
</script>

Pure Javascript

<script>

function CB_ExternalFunctionLoad() { 

    var classname = document.getElementsByClassName("popup");

    var gaSetter = function() {
        var cat = this.getAttribute("data-category");
        var desc = this.getAttribute("data-description");
        ga('send', 'event', cat, desc);      
    };  

    for(var i=0;i<classname.length;i++){
       classname[i].addEventListener('click', gaSetter, false);
    }

}
</script>