Из этого руководства вы узнаете, как собирать данные об электронной торговле с помощью analytics.js.
Обзор
Отслеживание электронной торговли позволяет подсчитывать количество транзакций на вашем сайте и доход, который они приносят. Многие сайты электронной торговли работают следующим образом: когда пользователь нажимает кнопку "Купить" в браузере, информация о покупке передается на веб-сервер, где выполняется транзакция. Если транзакция проходит успешно, пользователь перенаправляется на страницу с выражением благодарности или на страницу квитанции с подробными сведениями о покупке. С помощью библиотеки analytics.js вы можете отправлять данные с таких страниц в Google Analytics.
С помощью analytics.js можно передавать данные электронной торговли двух типов: transaction (транзакция) и item (товар).
Данные о транзакции
Транзакция – это денежная операция, выполненная на вашем сайте. Транзакция содержит следующие значения:
Ключ | Тип значения | Обязательное поле | Описание |
---|---|---|---|
id |
Текст | Да | Идентификатор транзакции. Пример: 1234. |
affiliation |
Текст | Нет | Магазин или филиал, в котором произошла транзакция. Пример: Acme Clothing. |
revenue |
Валюта | Нет | Общий доход или суммарная ценность транзакции. Пример: 11.99. Это значение может включать любые корректировки общего дохода (стоимость доставки, налоги и т. д.). |
shipping |
Валюта | Нет | Общая стоимость доставки. Пример: 5. |
tax |
Валюта | Нет | Общая сумма налогов. Пример: 129. |
Данные о товаре
Товар – это отдельный предмет из корзины товаров. Товар содержит следующие значения:
Ключ | Тип значения | Обязательное поле | Описание |
---|---|---|---|
id |
Текст | Да | Идентификатор транзакции. Позволяет узнать, к какой транзакции относится тот или иной товар. Пример: 1234. |
name |
Текст | Да | Название товара. Пример: "Розовый плюшевый кролик". |
sku |
Текст | Нет | Код единицы складского учета. Пример: SKU47. |
category |
Текст | Нет | Категория, к которой относится товар. Пример: "Мягкие игрушки". |
price |
Валюта | Нет | Цена за единицу товара. Пример: 11.99. |
quantity |
Целое число | Нет | Количество приобретенных единиц товара. Если в это поле передается дробное число, например 1.5, оно будет округлено до ближайшего целого. |
Реализация
Обычно отслеживание электронной торговли реализуется на странице, которая загружается после транзакции: например, "Спасибо за покупку". Реализация состоит из следующих этапов:
- Загрузка плагина электронной торговли
- Добавление транзакции
- Добавление товаров
- Отправка данных
- Очистка данных
Загрузка плагина электронной торговли
Чтобы сократить размер библиотеки analytics.js, в ее стандартной версии не предусмотрено отслеживание электронной торговли, поэтому вам нужно будет загрузить отдельный плагин.
Чтобы загрузить плагин электронной торговли, используйте следующую команду:
ga('require', 'ecommerce');
Эта команда должна выполняться после создания объекта отслеживания, но до использования каких-либо функций электронной торговли.
Когда вы загрузите плагин, в стандартном объекте отслеживания станет доступно несколько новых команд, предназначенных специально для отслеживания электронной торговли.
Добавление транзакции
После загрузки плагин создаст прозрачный объект корзины покупок. Вы можете добавить в этот объект данные о транзакции и товаре, а затем передать сразу все эти сведения в Google Аналитику.
Чтобы добавить данные о транзакции в объект корзины покупок, используйте команду 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 Аналитику, используя команду ecommerce:send
:
ga('ecommerce:send');
Эта команда проверит объект корзины и передаст данные о всех транзакциях и товарах в Google Аналитику. После этого корзина покупок будет очищена и ее можно будет использовать для следующей транзакции. Если до этого выполнялась ещё одна команда ecommerce:send
, будут отправлены только новые данные о транзакциях и товарах.
Очистка данных
Если вы хотите вручную удалить все транзакции и товары из корзины покупок, используйте следующую команду:
ga('ecommerce:clear');
Как указать местную валюту
Вы задаете глобальную валюту (общую для всех транзакций и товаров) через веб-интерфейс Google Аналитики. По умолчанию глобальная валюта используется для всех транзакций и товаров. Если на вашем сайте доступна оплата в разной валюте, то с помощью плагина электронной торговли вы можете указать валюту для транзакции, а также для отдельных товаров.
Местная валюта должна быть указана в соответствии со стандартом ISO 4217
. Полный список валют конверсии, доступных в Google Аналитике, можно найти в справочном руководстве по кодам валют.
Чтобы задать валюту для определенной транзакции и всех входящих в нее товаров, достаточно указать код валюты:
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 Аналитику из браузера. Поэтому, чтобы информация правильно передавалась в Google Аналитику, необходимо скоординировать работу сервера и браузера.
Многие сайты электронной торговли показывают страницу "Спасибо за покупку", создавая ее по шаблону на сервере. В этом случае вам нужно добавить код отслеживания электронной торговли в шаблон на сервере и реализовать на сервере динамическую запись данных электронной торговли на итоговую страницу. Ниже приведен пример того, как это будет выглядеть в 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'=>'Sandals', '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.js, они представляют собой итоговые величины.
В качестве разделителя между целым числом и дробной частью можно использовать точку. После десятичной точки может идти до 6 знаков. Пример допустимого значения в поле валюты:
1000.000001
После отправки в Google Аналитику будет удален весь текст до первой цифры, дефиса (-
) или десятичной точки (.
). Допустим, к примеру, что вы отправили следующую строку:
$-55.00
После преобразования она будет выглядеть так:
-55.00