Отправляем данные заказа в Google Analytics (PHP)


Добрый день.

Чаще всего данные в GA отправляются через JS. По опыту это не лучший вариант и ну совсем не удобный.
Поэтому, при поступлении новой заявки решено было сделать через Measurement Protocol. Полезная информация есть, например, здесь (за что ребятам спасибо).

Набросал простой класс и снабдил его подробными комментариями, думаю кому-то пригодиться.
Использовать можно где угодно: в своём сниппите или в плагине на событие «msOnCreateOrder».

Пример использования:
if(include_once($modx->getOption('core_path').'/ga.class.php')) {
        $GA = new GA($modx,$orderID);
        $GA->action();
}

Код: ga.class.php

Важно: у меня этот класс гораздо шире (особенности проекта), это усечённый вариант и я его особо не тестировал, но должен работать нормально.

UPD: Посмотрел на более свежую голову: исправил 1 ошибку + немного оптимизировал код. По ссылке — обновлённый файл.
31 августа 2017, 11:55    Алексей   
1    229 +6

Комментарии (15)

  1. Павел Гвоздь 31 августа 2017, 12:23 # 0
    Круто! И все же может лучше на гитхаб разместить класс?)
    1. Алексей 31 августа 2017, 12:32 # 0
      Надо бы )
      Самому смешно, но руки не доходят отладить гит.
      Кстати, можно же вообще компонент собрать и выложить бесплатно в макет.
      Может у кого есть время?
      1. Павел Гвоздь 31 августа 2017, 12:35 # 0
        Займусь, если дадите добро.
        1. Алексей 31 августа 2017, 12:36 # +1
          Разумеется: добро.
          1. Павел Гвоздь 31 августа 2017, 12:36 # 0
            Ок. В ближайшие дни будет пакет.
            1. Алексей 31 августа 2017, 12:45 # 0
              Отлично!
              Ну а кто-то, кому нечто особое нужно, заюзает класс дополнив его…
              1. Павел Гвоздь 31 августа 2017, 22:01 # +1
    2. Воеводский Михаил 31 августа 2017, 12:31 # +1
      Или даже собрать небольшой свободный компонент.
      1. Алексей 31 августа 2017, 12:33 # 0
        Пока писал ответ на предыдущий коммент, появилось это предложение )
      2. Пётр Молчанов 11 сентября 2017, 11:23 # 0
        А я наоборот ушел от отправки данных с помощью php в сторону js. При js гугл сам подхватывает нужные данные текущей сессии пользователя и, что самое важное, текущий 100% корректный гугл-id пользователя
        1. Алексей 11 сентября 2017, 11:32 # 0
          Такой задачи не ставили, не могу сказать, насколько это важно.
          Если будут данные, отпишусь.
          1. Пётр Молчанов 11 сентября 2017, 11:43 # 0
            Ну как же, а отслеживание рекламных активностей (по источнику перехода, по utm-меткам), привлеченные средства по этим же активностям, пути пользователя до заказа, кол-во дней с первого посещения до заказа и т.п. Всё, что нужно для эффективного маркетинга
            1. Алексей 11 сентября 2017, 11:47 # 0
              Мы же разработчики. Маркетологи задачу поставили, мы реализовали.
              Если будут новые вводные, возможно придётся вернуться к js, совсем не спорю )
              1. Пётр Молчанов 11 сентября 2017, 12:36 # +1
                Имейте ввиду ;)
                Доки
                developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce?hl=ru
                Но я рекомендую сразу реализовывать расширенную эл. торговлю, т.к. только в ней можно отправлять транзакции для отказанных заказов
                developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce?hl=ru
                1. Алексей 11 сентября 2017, 12:37 # 0
                  Благодарю, лишним точно не будет!
        Вы должны авторизоваться, чтобы оставлять комментарии.