Отслеживание электронной торговли

Из этого руководства вы узнаете, как собирать данные об электронной торговле с помощью analytics.js.

Обзор

Отслеживание электронной торговли позволяет узнать, сколько транзакций происходит на вашем веб-сайте и какой доход он вам приносит. Как правило, когда пользователь нажимает кнопку "Купить" в браузере, информация о покупке передается на веб-сервер, где выполняется транзакция. Если транзакция проходит успешно, пользователь перенаправляется на страницу с выражением благодарности или на страницу квитанции с подробными сведениями о покупке. С помощью библиотеки analytics.js вы можете отправлять данные с таких страниц в Google Analytics.

С помощью analytics.js можно передавать данные электронной торговли двух типов: transaction (транзакция) и item (товар).

Данные о транзакции

Транзакция – это денежная операция, выполненная на вашем сайте. Транзакция содержит следующие значения:

Ключ Тип значения Обязательно? Описание
id text Да Идентификатор транзакции. Пример: 1234.
affiliation text Нет Магазин или филиал, в котором произошла транзакция. Пример: Acme Clothing.
revenue currency Нет Общий доход или суммарная ценность транзакции. Пример: 11.99. Это значение может включать любые корректировки общего дохода (стоимость доставки, налоги и т. д.).
shipping currency Нет Общая стоимость доставки. Пример: 5.
tax currency Нет Общая сумма налогов. Пример: 129.

Данные о товаре

Товар – это отдельный предмет из корзины товаров. Товар содержит следующие значения:

Ключ Тип значения Обязательно? Описание
id text Да Идентификатор транзакции. Позволяет узнать, к какой транзакции относится тот или иной товар. Пример: 1234.
name text Да Название товара. Пример: "Розовый плюшевый кролик".
sku text Нет Код единицы складского учета. Пример: SKU47.
category text Нет Категория, к которой относится товар. Пример: "Мягкие игрушки".
price currency Нет Цена за единицу товара. Пример: 11.99.
quantity integer Нет Количество приобретенных единиц товара. Если в это поле передается дробное число, например 1.5, оно будет округлено до ближайшего целого.

Реализация

Обычно отслеживание электронной торговли реализуется после процесса покупки, как правило – на странице с выражением благодарности. Реализация состоит из следующих этапов:

Загрузка плагина электронной торговли

Чтобы сократить размер библиотеки analytics.js, в ее стандартной версии отслеживание электронной торговли не предусмотрено, поэтому вам нужно будет загрузить отдельный плагин.

Чтобы загрузить плагин электронной торговли, используйте следующую команду:

ga('require', 'ecommerce');

Это нужно сделать после того, как вы создадите объект отслеживания, но до того, как вы задействуете какие-либо функции электронной торговли.

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

Добавление транзакции

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

Чтобы добавить данные о транзакции в корзину покупок, используйте команду ecommerce:addTransaction:

ga('ecommerce:addTransaction', {
  'id': '1234',                     // Transaction ID. Required.
  'affiliation': 'Acme Clothing',   // Affiliation or store name.
  'revenue': '11.99',               // Grand Total.
  'shipping': '5',                  // Shipping.
  'tax': '1.29'                     // Tax.
});

Добавление товаров

Чтобы добавить товары в корзину покупок, используйте команду ecommerce:addItem:

ga('ecommerce:addItem', {
  'id': '1234',                     // Transaction ID. Required.
  'name': 'Fluffy Pink Bunnies',    // Product name. Required.
  'sku': 'DD23444',                 // SKU/code.
  'category': 'Party Toys',         // Category or variation.
  'price': '11.99',                 // Unit price.
  'quantity': '1'                   // Quantity.
});

Отправка данных

Настроив все данные в корзине покупок, отправьте их в Google Analytics, используя команду ecommerce:send:

ga('ecommerce:send');

Эта команда проверит корзину покупок и передаст данные о всех транзакциях и товарах в Google Analytics. После этого корзина покупок будет очищена, и ее можно будет использовать для следующей транзакции. Если до этого выполнялась ещё одна команда ecommerce:send, будут отправлены только новые данные о транзакциях и товарах.

Очистка данных

Если вы хотите вручную удалить все транзакции и товары из корзины покупок, используйте следующую команду:

ga('ecommerce:clear');

Как указать местную валюту

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

Местная валюта должна быть указана в соответствии со стандартом ISO 4217. Полный список валют, конвертация которых поддерживается в Google Analytics, можно найти в Справке по кодам валют.

Чтобы задать валюту для определенной транзакции и всех входящих в нее товаров, достаточно указать код валюты:

ga('ecommerce:addTransaction', {
  'id': '1234',
  'affiliation': 'Acme Clothing',
  'revenue': '11.99',
  'shipping': '5',
  'tax': '1.29',
  'currency': 'EUR'  // local currency code.
});

Вы также можете задать валюту для каждого товара:

  ga('ecommerce:addItem', {
    'id': '1234',
    'name': 'Fluffy Pink Bunnies',
    'sku': 'DD23444',
    'category': 'Party Toys',
    'price': '11.99',
    'quantity': '1',
    'currency': 'GBP' // local currency code.
  });

Поддержка нескольких счетчиков

Плагин электронной торговли также можно использовать, если вы реализовали на странице несколько трекеров с разными именами. Плагин работает точно так же, как и стандартный трекер, отличаясь от него только форматом:trackerName.pluginName:method. Допустим, вы создали трекер с именем myTracker:

ga('create', 'UA-XXXXX-Y', 'auto', {'name': 'myTracker'});

Загрузите плагин электронной торговли для этого счетчика:

ga('myTracker.require', 'ecommerce');

Чтобы отправить транзакцию, создайте объект транзакции и передайте его трекеру myTracker:

var transaction = {
  'id': '1234',                    // Transaction ID.
  'affiliation': 'Acme Clothing',  // Affiliation or store name.
  'revenue': '11.99',              // Grand Total.
  'shipping': '5' ,                // Shipping.
  'tax': '1.29'                    // Tax.
};

ga('myTracker.ecommerce:addTransaction', transaction);

При использовании этого синтаксиса объект транзакции можно применять в нескольких счетчика.

И наконец, передайте данные о транзакции:

ga('myTracker.ecommerce:send');

Пример

Большинство интернет-магазинов осуществляет транзакции на сервере, тогда как библиотека analytics.js отправляет данные в Google Analytics из браузера. Поэтому, чтобы информация правильно передавалась в Google Analytics, необходимо скоординировать работу сервера и браузера.

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

В PHP у вас обычно имеется представление данных электронной торговли. В нашем примере эти данные хранятся в ассоциативном массиве:

<?php
// Transaction Data
$trans = array('id'=>'1234', 'affiliation'=>'Acme Clothing',
               'revenue'=>'11.99', 'shipping'=>'5', 'tax'=>'1.29');

// List of Items Purchased.
$items = array(
  array('sku'=>'SDFSDF', 'name'=>'Shoes', 'category'=>'Footwear', 'price'=>'100', 'quantity'=>'1'),
  array('sku'=>'123DSW', 'name'=>'Sandles', 'category'=>'Footwear', 'price'=>'87', 'quantity'=>'1'),
  array('sku'=>'UHDF93', 'name'=>'Socks', 'category'=>'Footwear', 'price'=>'5.99', 'quantity'=>'2')
);
?>

Прежде всего необходимо разработать логические схемы для преобразования данных электронной торговли в строку JavaScript в соответствии с требованиями библиотеки analytics.js:

<?php
// Function to return the JavaScript representation of a TransactionData object.
function getTransactionJs(&$trans) {
  return <<<HTML
ga('ecommerce:addTransaction', {
  'id': '{$trans['id']}',
  'affiliation': '{$trans['affiliation']}',
  'revenue': '{$trans['revenue']}',
  'shipping': '{$trans['shipping']}',
  'tax': '{$trans['tax']}'
});
HTML;
}

// Function to return the JavaScript representation of an ItemData object.
function getItemJs(&$transId, &$item) {
  return <<<HTML
ga('ecommerce:addItem', {
  'id': '$transId',
  'name': '{$item['name']}',
  'sku': '{$item['sku']}',
  'category': '{$item['category']}',
  'price': '{$item['price']}',
  'quantity': '{$item['quantity']}'
});
HTML;
}
?>

Затем в теге <script> необходимо добавить дополнительный код PHP для динамического вывода данных о транзакциях и товарах:

<!-- Begin HTML -->
<script>
ga('require', 'ecommerce');

<?php
echo getTransactionJs($trans);

foreach ($items as &$item) {
  echo getItemJs($trans['id'], $item);
}
?>

ga('ecommerce:send');
</script>

После выполнения этого PHP-скрипта данные о транзакциях и товарах, необходимые библиотеке analytics.js, будут выведены на страницу. Когда JavaScript на этой странице отобразится в браузере, все данные электронной торговли будут отправлены в Google Analytics.

Типы валют

Тип валюты по умолчанию можно задать в интерфейсе управления. Когда вы отправляете значения валют с помощью analytics.js, они представляют собой итоговые величины.

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

1000.000001

После отправки в Google Analytics будет удален весь текст до первой цифры, дефиса (-) или десятичной точки (.). Таким образом,

$-55.00

примет следующий вид:

-55.00