Отправка данных в гугл аналитикс

Код электронной торговли Ecommerce

Отправка щелчка по ссылке

trackClick.html
<a href="#js-callback" onClick="if (typeof(ga) !== 'undefined') ga('send', 'pageview', '/ajax-call');"></a>

Работа с событиями

Отслеживание отосланных событий

Отправка события (просмотр страницы с не продающимся товаром)

event.php
<?php $showGAWarning = $itemIsAbsent || $itemIsDisabled; ?>
<?php if ($showGAWarning) { ?>
  <script type='text/javascript'>
  if (typeof(_gaq) !== 'undefined') _gaq.push(['_trackEvent', 'NotInStock', document.location.pathname, document.referrer]);
  </script>
<?php } ?>

Отслеживание почтового адреса и перехода по ссылке из письма

utm_links.php
class utmLinks {
 
  private static $letterId, $email;
 
  public static function setLetterId($id) {
    self::$letterId = $id;
  }
 
  public static function _($text, $email) {
    self::$email = $email;
    return preg_replace_callback('#<a([^>]*)?href([^>=]*)?=([^>"\']*)?["|\']([^"\']*)?["|\']#msi', "self::replaceURI", $text);
  }
 
  private static function replaceURI($matches) {
    $uri = &$matches[4];
    if(preg_match('#^mailto:#msi', $uri, $_m)) return $matches[0];
    return '<a'.$matches[1].'href="'.$uri.(mb_strpos($uri, '?') !== false ? '&' : '?').self::makeUtmSfx(self::$email).'"';
  }
 
  private static function makeUtmSfx($email) {
    return 'utm_source=newsletter&utm_medium='.urlencode($email).'&utm_content='.self::$letterId.'&utm_campaign=link';
  }
 
}
 
utmLinks::setLetterId($itemId);
$message = utmLinks::_($text, $email); // заменяем все ссылки на специальные для отслеживания перехода