Google Analytics _trackEvent проблемы - PullRequest
0 голосов
/ 14 ноября 2009

У меня возникли проблемы с Google Analytics и _trackEvent.

Использование этого кажется простым в документации, но я не могу получить это просто пример для работы. Вызов _trackEvent завершается с ошибкой «TypeError: o не определено»

Вызов _trackPageview выполняется успешно, и я вижу, что он обновлен на панели аналитики.

Я пытался заглянуть в ga.js, чтобы понять, в чем дело - просто показать головную боль!

Это мой первый набег в ГА - особенно с пользовательскими событиями. Аккаунт новый. Казалось бы, все правильно настроено - но я бы, наверное, не знал, если бы это было не так!

Кажется, все так просто - но, очевидно, я что-то упускаю. Любая помощь в удалении моих слепых складок очень ценится!

-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>

Ответы [ 2 ]

0 голосов
/ 14 ноября 2009

Оказывается, нужно вызывать _initData () перед вызовом _trackEvent.Не уверен, почему это так, но, похоже, сейчас работает.Надеюсь, это поможет кому-то еще.Модифицированный образец ..

<!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>
0 голосов
/ 14 ноября 2009

Ошибка 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>
...