2009-11-14 146 views
0

我在使用Google Analytics和_trackEvent时遇到了一些小问题。Google Analytics(分析)_trackEvent问题

使用似乎在文档中向前伸直,但我不能让这个简单的例子 工作。以_trackEvent调用失败,“类型错误:○未定义”

对_trackPageview的调用是成功的,我可以看到它在分析仪表盘更新。

我试图在偷看的ga.js明白这是怎么回事 - 只是头痛显示它!

这是我首次涉足GA - 尤其是自定义事件。该帐户是新的。 一切似乎都设置正确 - 但我可能不知道它是不是!

它似乎很简单 - 但显然我失去了一些东西。 任何帮助消除我的盲目褶皱非常感谢!

-vs

HTML示例 - 仅需要跟踪代码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
    <script type="text/javascript"> 
     var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
     document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
    </script> 
    <script type="text/javascript"> 
     var pageTracker; 
     try { 
     pageTracker = _gat._getTracker("UA-XXXXXX-1"); 
     pageTracker._trackPageview();   
     } catch(err) { 
     console.log(err.toString()); 
     } 
     $(document).ready(function() { 
      try { 
      pageTracker._trackEvent('my_category', 'my_action', 'my_optional_label', 42); 
      } catch(err) { 
      console.log('trackEvent ' + err.toString()); 
      } 
     }); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 

回答

0

noob错误的代码块!这里是完整版本。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
    <script type="text/javascript"> 
     var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
     document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
    </script> 
    <script type="text/javascript"> 
     var pageTracker; 
     try { 
     pageTracker = _gat._getTracker("UA-xxxxxxx-1"); 
     pageTracker._trackPageview();   
     } catch(err) { 
     console.log(err.toString()); 
     } 
     $(document).ready(function() { 
      try { 
      pageTracker._trackEvent('my_category', 'my_action', 'my_optional_label', 42); 
      } catch(err) { 
      console.log('trackEvent ' + err.toString()); 
      } 
     }); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 
0

原来,在调用_trackEvent之前需要调用_initData()。不知道为什么会出现这种情况,但似乎现在起作用。希望它可以帮助别人。 修改后的样本..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
    <script type="text/javascript"> 
     var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
     document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
    </script> 
    <script type="text/javascript"> 
     var pageTracker; 
     try { 
     pageTracker = _gat._getTracker("UA-xxxxx-1"); 
     pageTracker._trackPageview();   
     } catch(err) { 
     alert(err.toString()); 
     } 
     $(document).ready(function() { 
      try { 
      pageTracker._initData(); // <<--- The addition. 
      pageTracker._trackEvent('my_category', 'my_action', 'my_optional_label', 42); 
      } catch(err) { 
      alert('trackEvent ' + err.toString()); 
      } 
     }); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 
相关问题