Shoora
3/31/2019 - 4:24 PM

Подключаем события (метки яндекс, гугл ).

Подключаем события (метки яндекс, гугл ).

// события
// Пример использования:
seo_events({
  category: 'button',
  action: 'ostavil_otziv',
  label: '',
  ya_label: 'ostavil_otziv'
});

function seo_events(params) {
  /* Включить вывод события в консоль */
  var seo_events_debug = true;
  var seo_events_counters = [];
  /* Массив с ID метрики */
  var seo_mertic_ids = ['22753825'];
  /* Проверяем на существование параметров переданных в функцию */
  if (typeof params !== 'undefined') {
    /* Проверяем на существование всех необходимых параметров */
    if (
      typeof params.category !== 'undefined' &&
      typeof params.action !== 'undefined' &&
      typeof params.label !== 'undefined'
    ) {
      /* Ищем счетчик ga.js */
      if (typeof _gaq !== 'undefined') {
        _gaq.push([
          '_trackEvent',
          params.category,
          params.action,
          params.label
        ]);
        seo_events_counters.push('_gaq');
      }
      /* Ищем счетчик analytics.js */
      if (typeof ga !== 'undefined') {
        ga(
          'send',
          'event',
          params.category,
          params.action,
          params.label
        );
        seo_events_counters.push('ga');
      }
      /* Ищем счетчик pageTracker */
      if (typeof pageTracker !== 'undefined') {
        pageTracker._trackEvent(
          params.category,
          params.action,
          params.label
        );
        seo_events_counters.push('pageTracker');
      }
      /* Перебираем ID метрики */
      for (i = 0; i < seo_mertic_ids.length; i++) {
        /* Если существует функция с текущем ID */
        if (
          typeof window['yaCounter' + seo_mertic_ids[i]] !==
          'undefined'
        ) {
          if (typeof params.mp !== 'undefined') {
            /* Вызываем событие метрики с параметрами */
            if (typeof params.ya_label !== 'undefined') {
              window['yaCounter' + seo_mertic_ids[i]].reachGoal(
                params.ya_label,
                params.mp
              );
            } else {
              window['yaCounter' + seo_mertic_ids[i]].reachGoal(
                params.label,
                params.mp
              );
            }
          } else {
            /* Вызываем событие метрики без параметров */
            if (typeof params.ya_label !== 'undefined') {
              window['yaCounter' + seo_mertic_ids[i]].reachGoal(
                params.ya_label
              );
            } else {
              window['yaCounter' + seo_mertic_ids[i]].reachGoal(
                params.label
              );
            }
          }
          seo_events_counters.push('yaCounter' + seo_mertic_ids[i]);
        }
      }
      if (seo_events_counters.length === 0) {
        seo_events_counters.push('none');
      }
      if (seo_events_debug === true) {
        if (typeof params.ya_label !== 'undefined') {
          console.log(
            'event reached:\n\t[category:' +
              params.category +
              ']\n\t[action  :' +
              params.action +
              ']\n\t[label   :' +
              params.label +
              '\n\t[ya_label   :' +
              params.ya_label +
              ']\nevent counters:\n\t' +
              seo_events_counters
          );
        } else {
          console.log(
            'event reached:\n\t[category:' +
              params.category +
              ']\n\t[action  :' +
              params.action +
              ']\n\t[label   :' +
              params.label +
              ']\nevent counters:\n\t' +
              seo_events_counters
          );
        }
      }
    }
  }
}