retailCRM Документация

Интеграция системы c Google Analytics

Для отслеживания информации об источниках система использует данные, собранные сервисом Google Analytics стандартом Universal Analytics.

Добавление сайта в Google Analytics

Для того, чтобы ваш сайт был зарегистрирован в Google Analytics, необходимо иметь аккаунт Google.

Создадим аккаунт Universal Analytics.

Universal Analytics — это расширенный стандарт Google Analytics. Далее под словами «Google Analytics» будет подразумеваться сервис в целом, а «Universal Analytics» - только настраиваемый функционал.

Google рекомендует создавать новый аккаунт Universal Analytics для каждого сайта.

Создание аккаунта Universal Analytics:

  1. Укажите, что желаете отслеживать: веб-сайт или мобильное приложение.
  2. Введите название и URL своего сайта.
  3. Выберите категорию бизнеса, к которой имеет отношение Ваш сайт.
  4. Укажите часовой пояс, по которому будут определяться дни в отчетах.
  5. Введите название нового аккаунта.
  6. Выберите нужные настройки доступа к данным.
  7. Нажмите кнопку Получить идентификатор отслеживания.

Справка по созданию аккаунта Universal Analytics

После создания аккаунта Universal Analytics Вы автоматически перейдете на страницу своего профиля Google Analytics, где будет показано название вашего сайта, который нужно отслеживать, и номер аккаунта Universal Analytics в формате UA-XXXXXXXX-X. Этот код называется «идентификатор веб-ресурса Google Analytics» и является уникальным для каждого отслеживаемого ресурса.

Настройка отслеживания электронной торговли аккаунта Google Analytics

После того, как Вы зарегистрировали аккаунт Universal Analytics, нужно настроить отслеживание электронной торговли.

Если у вас такая настройка уже проведена, то можно перейти к пункту Интеграция с системой.

Примечание: в демо-версии системы загрузка из Google Analytics не производится.

Настройки в Google Analytics

Чтобы включить отслеживание электронной торговли в Google Analytics, проделайте следующие шаги:

  1. Перейдите в раздел Администратор.
  2. В столбце Представление выберите Настройка представления.
  3. В пункте Настройки электронной торговли выберите Отслеживание электронной торговли.
  4. Нажмите кнопку Применить.


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

Получение кода отслеживания

Код отслеживания Universal Analytics — это скрипт на языке Javascript, который выполняется браузером посетителя Вашего сайта. С помощью кода отслеживания данные о действияx посетителя на вашем сайте будут отправляться в Google Analytics.

Чтобы получить код отслеживания, нужно:

  1. В верхней части любой страницы нажать Администратор.
  2. В столбце Ресурс выбрать Код отслеживания.

Вы увидите такой код:

<script type="text/javascript">
 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 ga('create', 'UA-XXXXXXXX-X', 'example.com');
 ga('send', 'pageview');
</script>

Нужно будет скопировать с Universal Analytics Ваш код отслеживания целиком. В нём вместо UA-XXXXXXXX-X будет находиться Ваш действительный идентификатор отслеживания.

Настройки на сайте

Теперь нужно добавить код отслеживания на страницы вашего сайта, для этого скопируйте код отслеживания на все страницы вашего сайта перед закрывающим тегом </head>.

Для того, чтобы в Google Analytics попадала информация о совершенных заказах, нужно на странице извещения пользователя о завершении заказа модифицировать код отслеживания, добавив в него информацию о заказе.

Модифицировать код нужно только на страницах, которые пользователь видит после завершения/подтверждения заказа; таким образом, модифицированный код должен выполниться только один раз для каждого заказа.

В отличие от модифицированного, обычный код отслеживания должен исполняться при каждом просмотре любой страницы.

Для Universal Analytics необходимо модифицировать код отслеживания следующим образом:

<script type="text/javascript">
 ...
 ga('send', 'pageview'); // здесь оканчивается немодифицированный код отслеживания. Добавляем следующие команды:

 ga('require', 'ecommerce', 'ecommerce.js');  // функция, которая подключает модуль электронной торговли. 
 ga('ecommerce:addTransaction', {
  'id': '1234',                   // ID транзакции
  'affiliation': 'example.com',   // Название магазина
  'revenue': '1500',              // Общая стоимость заказа
  'shipping': '250',              // Стоимость доставки
  'tax': ''                          // Налог
 });

 // метод addItem нужно вызвать для каждого товара (позиции) в заказе:
 ga('ecommerce:addItem', {
  'id': '1234',                    // ID транзакции
  'name': 'Mouse Logitech',        // Название товара
  'sku': 'AAA000',                 // Артикул или SKU
  'category': 'Wireless',          // Размер, модель, категория или еще какая-то информация
  'price': '750',                  // Стоимость товара
  'quantity': '2'                  // Количество товара
 });

 ga('ecommerce:send');             // Отправка данных
</script>

В этом коде можно указывать поля в любом порядке. Обязательными являются только поля, содержащие ID транзакции и название товара. Названия полей должны быть заданы маленькими английскими буквами, например, category, а не Category, и не CATEGORY.

В коде видны следующие функции:

ga('require', 'ecommerce', 'ecommerce.js'); — функция, которая подключает модуль электронной торговли.

ga('ecommerce:addTransaction', — функция, которая передает информацию о самом заказе.

Поля, которые необходимо передать в функцию:

ga('ecommerce:addItem', — функция, которая передает информацию о товарах в заказе.

Поля, которые необходимо передать в функцию:

ga('ecommerce:send'); — функция, подтверждающая отправление данных.

С полным списком возможных полей можно ознакомиться в официальной документации (англ.)

Интеграция с системой

Примечание Выгрузка заказов из магазина в систему происходит с серверной стороны сайта магазина. Настройка выгрузки производится разработчиком или веб-мастером магазина через REST API.

Выгружаемые заказы могут содержать:

Из магазина в Google Analytics данные выгружаются со стороны клиента, то есть непосредственно с компьютера посетителя магазина.

Эти данные состоят из двух частей:

Код, выгружающий транзакции, должен выполняться только при подтверждении заказа пользователем.

Транзакции содержат уникальный (в пределах магазина) идентификационный номер (ID транзакции). Он должен соответствовать либо внешнему или внутреннему ID, либо номеру заказа в данных, выгружаемых в систему. Это требуется для связи данных транзакций Google Analytics с данными внутри системы.

Для того, чтобы успешно провести интеграцию системы и вашего аккаунта Universal Analytics необходимо выполнить следующее:

1. Получить идентификатор представления интернет-магазина в Google Analytics. Для этого нужно в Google Analytics выбрать Администратор > Настройки представления и скопировать Идентификатор представления.


2. В системе перейти в раздел Администрирование > Интеграция.


3. Выбрать интеграцию с Universal Analytics. Активировать Интеграцию посредством выставления галочки.


4. Указать, каким данным, которые выгружаются из магазина в систему, соответствует ID транзакции.


Внимание! Если при выгрузке данных в систему номер заказа не установлен, он будет сгенерирован автоматически на основе внешнего ID. В этом случае ID транзакции должен соответствовать внешнему ID заказа, а в настройках интеграции необходимо указать связывание через внешний ID.
5. Добавить пользовательский параметр/переменную, которая нужна для хранения данных о визитах.

В Universal Analytics — это пользовательский параметр (custom dimension). Нужно зайти в раздел Администратор > Ресурс > Пользовательские определения > Пользовательские параметры и добавить Параметр retailCRMVisitorID. Ему будет соответствовать номер индекса, который следует запомнить.

6. Указать идентификатор профиля/представления Universal Analytics.


Кроме идентификатора профиля/представления Universal Analytics, на странице Интеграции нужно будет ввести номер индекса, который появился при добавлении пользовательского параметра.

Галочка «Переводить распространенные имена источников и каналов» позволяет отображать источники и каналы в общепринятом написании. То есть, вместо mail.yandex.ru, будет отображаться «Яндекс.Почта».

7. Скопировать имя пользователя системы. Это робот, собирающий данные из Google Analytics для системы.


8. Добавить пользователя в аккаунт Universal Analytics. В Google Analytics нужно выбрать Администратор > Аккаунт > Управление пользователями. Добавляемый пользователь должен обладать правами «Читать и анализировать».


9. Добавить в код счетчика в Universal Analytics
/**
 * Get cookie value by name. retailCRM integration with Universal Analytics uses it.
 * Name should match pattern [a-zA-Z0-9_]+
 *
 * @param string name
 *
 * @return mixed
**/
function getRetailCrmCookie(name) {
    var matches = document.cookie.match(new RegExp(
        '(?:^|; )' + name + '=([^;]*)'
    ));

    return matches ? decodeURIComponent(matches[1]) : '';
}

ga('set', 'dimension1', getRetailCrmCookie('_ga'));

Вставить ее нужно будет перед ga('send', 'pageview'); в коде отслеживания на все страницы вашего сайта.

Важно! В последней строке добавляемого кода, ga('set', 'dimension1', getRetailCrmCookie('_ga'));, единицу в конце dimension1 нужно заменить на индекс пользовательского параметра в случае, если он не равен 1.

Google Analytics идентифицирует посетителей сайта при помощи временных файлов — cookie, которые хранятся на компьютере у пользователя. Один из них содержит уникальную метку пользователя. Скрипт, который добавляется в код отслеживания, читает уникальную метку и затем отправляет это значение в Google Analytics, где она хранится в пользовательской переменной (в пользовательском параметре Client ID в Universal Analytics).

Cookie _ga содержит уникальный идентификатор в формате GA1.2.XXXXXXX.YYYYYY, например, GA1.2.1129978185.1425645525, где саму метку составляет только значение 1129978185.1425645525 (clientId). В систему можно передавать как полное значение cookie (что произойдет, если вы будете использовать вышеуказанный код), так и только clientId без префикса.

10. После того, как Вы осуществите интеграцию с Google Analytics, на странице интеграции в системе будут появляться даты, когда последний раз производилась загрузка:

Загрузка данных по событиям

Например, кроме покупки в Вашем магазине, посетитель может заказать звонок или заполнить форму обратной связи. При этом создается заказ в retailCRM. Но Вы не хотите создавать транзакцию в модуле электронной торговли Universal Analytics, так как соответствующее событие не является покупкой. В таком случае, в Universal Analytics можно настроить событие и забирать данные веб-аналитики для этого клиента через него (источники, каналы, кампании, визиты и прочие данные).

В случае, если Вы выбрали вариант связывания заказов через события, ниже появятся два поля ввода данных для загрузки событий: «Категория» и «Действия».

В этих полях необходимо указать категории и действия для событий, в ярлыках которых передаются идентификаторы, соответствующие заказам в системе. Можно указать только категорию или только ярлык, в этом случае по другому полю фильтрация загружаемых событий производится не будет.

Обратите внимание, что необходимо заполнить категорию и действие, но ярлык необходимо оставить пустым, т.к. в нём будет отправляться ID заказа для связи. На стороне сайта на нужное Вам действие (клик, отправка формы и т.д.) регистрируете отправку событий в Google Analytics. Обязательно указывайте в качестве ярлыка ID заказа.

Как создавать, изменять и публиковать цели Вы можете прочитать в справке Google.

Выгрузка данных из системы в Google Analytics

Так же есть возможность передавать из системы в Google Analytics информацию по офлайн-заказам. Для этого необходимо в блоке «Способы оформления для выгрузки» отметить галочками те способы оформления заказов, информацию о которых необходимо передавать в GA. С помощью галочки «Не выгружать заказы без товаров» также можно установить, будут ли выгружаться заказы, в составе которых отсутствуют товары.

По заказам, у клиентов которых известен Client ID, с периодичностью раз в 2 часа данные передаются в ваш аккаунт Universal Analytics, офлайн-транзакции выгружаются только по тем клиентам, чьи Client ID знает система, т.е. клиент должен до этого сделать хотя бы один заказ или заявку через сайт.

Данная настройка полезна в тех случаях, когда заказы поступают не только через сайт, а также для определения реальной эффективности рекламных источников. Эта возможность особенно полезна при интеграции системы с системами динамического коллтрекинга, например, CallTouch. Более подробно читайте в статье Интеграция с CallTouch.

Дополнительная информация по параметру Client ID и сценарии его использования

Метки клиентов (Client ID) - это служебная информация, которую вручную специально указывать не надо. Они автоматически генерируются на компьютере пользователя и сохраняются со всей информацией в Universal Analytics.

В этом случае могут быть такие сценарии использования:

1. В связке с CallTouch. Заказ создается по телефону, при этом CallTouch через свои системы передает некоторые данные (Client ID, источник) в системе, и мы отправляем их в Universal Analytics.
2. По уже известному Client ID. Например, есть стандартная интеграция с Universal Analytics и клиент, оформлявший заказы на сайте. Тогда в системе есть его Client ID, полученный из Universal Analytics. После этого новый заказ этого клиента создается по телефону, но за счет знания Client ID мы можем отправить его в Universal Analytics, как если бы он был создан на сайте.

Во втором случае неважно, откуда был получен Client ID - из GA или из первого случая, хотя в последнем варианте будут также получены данные из CallTouch.

Если Client ID приходит к клиенту не из Universal Analytics, а, например, из CallTouch, то при очередной загрузке данных из Universal Analytics система попробует подтянуть данные по этому клиенту.

Например, клиент бродил по магазину и визиты зафиксировались в Universal Analytics, сделал заказ по телефону и данные передались в систему через CallTouch, тогда и визиты должны подтянуться в систему.

Загрузка в Google Analytics задним числом

Данная настройка позволяет указать, насколько давние записи будут считываться при загрузке за более короткий срок. Это необходимо для аккаунтов Universal Analytics с большими нагрузками, данные в которые попадают с запаздыванием.

Чтобы включить данную настройку, необходимо перейти в раздел Администрирование > Интеграция > Universal Analytics. В поле «Запаздывание данных» выставляете нужное Вам время считывания.

Особенности настройки интеграции с InSales

InSales, наверное, самая удобная CMS для интеграции с точки зрения настройки клиентского сайта. Для этого нужно зайти в Настройки. Код отслеживания добавляется в поле javascript-код для вывода на всех страницах магазина. Пример (во всех примерах UA-XXXXXXXX-X нужно будет заменить на реальный идентификатор ресурса!):


<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-X', 'auto');

  function getCookie(name) {
    var matches = document.cookie.match(new RegExp(
        "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" 
    ));

    return matches ? decodeURIComponent(matches[1]) : "";
 }

  ga('set', 'dimension1', getCookie("_ga"));
  ga('send', 'pageview');
</script>

Так как InSales помещает этот код не в начало страницы, то нужно его дублировать. Поэтому код выгрузки транзакции нужно поместить в поле javascript-код для вывода на странице успешного оформления заказа, добавив в его начало вышеприведенный код (и, по сути, продублировав его в пределах страницы). Пример:


<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-X', 'auto');

  function getCookie(name) {
    var matches = document.cookie.match(new RegExp(
        "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" 
    ));

    return matches ? decodeURIComponent(matches[1]) : "";
 }

  ga('set', 'dimension1', getCookie("_ga"));
  ga('send', 'pageview');

  // UA transaction upload code starts here
  ga('require', 'ecommerce', 'ecommerce.js');
  ga('ecommerce:addTransaction', {
    'id': {{order.number}},
    'affiliation': 'site.ru', // заменить на реальное доменное имя
    'revenue': {{order.total_price}}
  });
  {% for item in order.items %}
    ga('ecommerce:addItem', {
      'id': {{order.number}},
      'price': {{item.sale_price}},
      'quantity': {{item.quantity}}
     });
  {% endfor %} 
  ga('ecommerce:send');
</script>

Внимание! При интеграции с InSales в настройках аналитики нужно указать "Связывать транзакции через Номер заказа", что не совпадает с настройкой по умолчанию. В настройках InSales есть также поле Код Google Analytics для анализа посетителей на сайте. Его заполнять не нужно: во-первых, будет сгенерирован GA-, а не UA-код; во-вторых, код будет генерироваться "из коробки" и не позволит вам добавить в него запись уникальной метки из cookie в custom dimension.


Редакция от 08.09.2017 14:16