Плагин расширенной электронной торговли для analytics.js позволяет узнать, как пользователи взаимодействуют с товарами в интернет-магазинах. С его помощью можно отслеживать показы и клики, просмотр информации о товаре, добавление в корзину и удаление из нее, переход к оформлению покупки, транзакции и возвраты.
Перенос и совместимость с плагином обычной электронной торговли (ecommerce.js)
Если вы уже настроили отслеживание обычной электронной торговли, вы можете перейти на расширенную электронную торговлю любым из двух основных способов, описанных ниже.
Использование нового ресурса
Вы можете добавить дополнительный счетчик для нового ресурса и включить для этого ресурса расширенную электронную торговлю. Подробнее о том, как отправлять данные на несколько ресурсов с одной страницы…
Перевод существующего ресурса на расширенную электронную торговлю
Чтобы перейти с плагина обычной электронной торговли на плагин расширенной электронной торговли для analytics.js, необходимо отредактировать и заменить все вызовы кода, указав код плагина расширенной электронной торговли.
Если вы используете ga.js, то сначала вам нужно перейти на analytics.js.
Переход не повлияет на данные о транзакциях и товарах, полученные ранее с помощью плагина ecommerce.js. Они будут доступны в тех же ресурсах и профилях, что и раньше.
Типы данных и отслеживаемые действия
С помощью плагина расширенной электронной торговли можно отправлять следующие данные:
Данные о показе
Информацию о том, какие именно данные о товаре были просмотрены, можно получить с помощью объекта impressionFieldObject
, который содержит следующие поля:
Ключ | Тип значения | Обязательное поле | Описание |
---|---|---|---|
id |
Текст | Да* |
Идентификатор или код товара. Пример: P67890. *Должен быть указан один из параметров ( |
name |
Текст | Да* |
Название товара. Пример: "Футболка Android". *Должен быть указан один из параметров ( |
list |
Текст | Нет | Список или коллекция, куда входит товар. Пример: "Результаты поиска". |
list_name |
Текст | Нет | Список или коллекция, куда входит товар. Пример: "Результаты поиска". |
brand |
Текст | Нет | Бренд, к которому относится товар. Пример: Google. |
category |
Текст | Нет |
Категория, к которой относится товар. Пример: "Одежда". Вы можете указать до 5 уровней иерархии, используя в качестве разделителя косую черту (/ ). Пример: "Одежда/Мужская одежда/Футболки".
|
variant |
Текст | Нет | Вариант товара. Пример: "Черный". |
position |
Целое число | Нет | Позиция товара в списке или коллекции. Пример: 2. |
list_position |
Целое число | Нет | Позиция товара в списке или коллекции. Пример: 2. |
price |
Число | Нет | Цена товара. Пример: 29,20. |
Данные о товаре
Данные об отдельных товарах, которые были просмотрены, добавлены в корзину покупок и т. д., передаются с помощью объекта productFieldObject
. Он содержит следующие значения:
Ключ | Тип значения | Обязательное поле | Описание |
---|---|---|---|
id |
Текст | Да* |
Идентификатор или код товара. Пример: P67890. *Должен быть указан один из параметров (идентификатор или |
name |
Текст | Да* |
Название товара. Пример: "Футболка Android". *Должен быть указан один из параметров (идентификатор или |
brand |
Текст | Нет | Бренд, к которому относится товар. Пример: Google. |
category |
Текст | Нет | Категория, к которой относится товар. Пример: "Одежда". Вы можете указать до 5 уровней иерархии, используя в качестве разделителя косую черту. Пример: "Одежда/Мужская одежда/Футболки". |
variant |
Текст | Нет | Вариант товара. Пример: "Черный". |
price |
Число | Нет | Цена товара. Пример: 29,20. |
quantity |
Целое число | Нет | Количество единиц товара. Пример: 2. |
coupon |
Текст | Нет | Код купона, связанного с товаром. Пример: SUMMER_SALE13. |
position |
Целое число | Нет | Позиция товара в списке или коллекции. Пример: 2. |
list_position |
Целое число | Нет | Позиция товара в списке или коллекции. Пример: 2. |
Данные о рекламной акции
Информация о рекламной акции передается с помощью объекта promoFieldObject
, который содержит следующие значения:
Ключ | Тип значения | Обязательное поле | Описание |
---|---|---|---|
id |
Текст | Да* |
Идентификатор рекламной акции. Пример: PROMO_1234.
*Один из параметров ( |
name |
Текст | Да* |
Название рекламной акции. Пример: "Летняя распродажа".
*Один из параметров ( |
creative |
Текст | Нет | Объявление, связанное с рекламной акцией. Пример: summer_banner2. |
creative_name |
Текст | Нет | Название креатива. Пример: summer_banner2. |
position |
Текст | Нет | Позиция объявления. Пример: banner_slot_1. |
creative_slot |
Текст | Нет | Название рекламного места для объявления. Пример: banner_slot_1. |
Данные о действии
Информация о выполненном действии передается с помощью
объекта actionFieldObject
, который содержит следующие значения:
Ключ | Тип значения | Обязательное поле | Описание |
---|---|---|---|
id |
Текст | Да* |
Идентификатор транзакции. Пример: T1234. *Обязательно, если тип действия – |
affiliation |
Текст | Нет | Магазин или филиал, в котором произошла транзакция. Пример: Google Store. |
revenue |
Число | Нет |
Общий доход или суммарная ценность транзакции. Пример: 11,99. Это значение может включать любые корректировки общего дохода (стоимость доставки, налоги и т. д.). |
Значение | Число | Нет | Ценность события (т. е. доход от него). |
tax |
Число | Нет | Сумма всех налогов, связанных с транзакцией. |
shipping |
Число | Нет | Стоимость доставки, связанная с транзакцией. |
coupon |
Текст | Нет | Купон, погашенный при транзакции. |
list |
Текст | Нет | Список, в который входят товары, связанные с транзакцией. Необязательно. |
items |
Массив | Нет | Список товаров, связанных с транзакцией. |
step |
Целое число | Нет | Число, представляющее этап последовательности покупки. Необязательное поле, используемое для действий типа checkout (оформление покупки). |
checkout_step |
Целое число | Нет | Число, представляющее этап последовательности покупки. |
option |
Текст | Нет | Дополнительное поле для действий типа checkout и checkout_option . Предоставляет информацию о параметре (например, о способе оплаты), выбранном при оформлении покупки. |
checkout_option |
Текст | Нет | Параметр покупки (выбранный способ оплаты). |
Действия с товарами и рекламными акциями
Действия определяют, как будут интерпретироваться данные, которые вы отправляете в Google Аналитику.
Действие | Событие | Описание |
---|---|---|
click |
Нажатие на товар/ссылку на товар (или товары). | |
detail |
Просмотр информации о товаре. | |
add |
Добавление одного или нескольких товаров в корзину покупок. | |
remove |
Удаление одного или нескольких товаров из корзины покупок. | |
checkout |
Переход к оформлению покупки одного или нескольких товаров. | |
checkout_option |
Параметр, выбранный пользователем на определенном этапе оформления покупки. | |
purchase |
Продажа одного или нескольких товаров. | |
refund |
Возврат одного или нескольких товаров. | |
promo_click |
Клик по внутренней рекламе. | |
add_to_cart |
Добавление одного или нескольких товаров в корзину покупок. | |
begin_checkout |
Переход к оформлению покупки одного или нескольких товаров. | |
checkout_progress |
Завершение этапов оформления покупки. | |
purchase |
Покупка. | |
refund |
Оформление возврата средств за один или несколько товаров. | |
remove_from_cart |
Удаление одного или нескольких товаров из корзины покупок. | |
select_content |
Клик по товару или ссылке на товар. | |
set_checkout_option |
Параметр, выбранный пользователем на определенном этапе оформления покупки. | |
view_item |
Просмотр описания товара. | |
view_item_list |
Просмотр списка товаров. | |
view_promotion |
Клик по внутренней рекламе. | |
view_refund |
Просмотр данных о возврате средств за один или несколько товаров. |
Реализация
Далее рассказывается, как установить плагин расширенной электронной торговли на сайте, где используется библиотека analytics.js.
Загрузка плагина электронной торговли
Чтобы сократить размер библиотеки analytics.js, в ее стандартной версии не предусмотрено отслеживание расширенной электронной торговли, поэтому вам нужно будет загрузить отдельный плагин.
Чтобы загрузить плагин расширенной электронной торговли, используйте следующую команду:
ga('require', 'ec');
Эта команда должна выполняться после создания объекта отслеживания, но до использования каких-либо функций расширенной электронной торговли.
Отправка данных о расширенной электронной торговле
После того как вы загрузите плагин, в стандартный счетчик будет добавлено несколько новых команд специально для расширенной электронной торговли. Теперь можно приступать к отправке данных.
- Отслеживание действий электронной торговли
- Отслеживание транзакций
- Отслеживание возвратов
- Отслеживание процесса оформления покупки
- Отслеживание внутренних рекламных кампаний
Отслеживание действий электронной торговли
При типичной реализации отслеживаются просмотры товаров, а также следующие действия:
- клики по ссылке на товар;
- просмотр информации о товаре;
- показы и клики по внутренней рекламе;
- добавление в корзину покупок и их удаление из нее;
- переход к оформлению покупки;
- покупки и возвраты.
Отслеживание показов
Показы товаров отслеживаются с помощью команды ec:addImpression
. Информация о товаре добавляется в объект impressionFieldObject
.
Например, следующий код регистрирует показ товара в результатах поиска:
ga('ec:addImpression', { // Provide product details in an impressionFieldObject.
'id': 'P12345', // Product ID (string).
'name': 'Android Warhol T-Shirt', // Product name (string).
'category': 'Apparel/T-Shirts', // Product category (string).
'brand': 'Google', // Product brand (string).
'variant': 'Black', // Product variant (string).
'list': 'Search Results', // Product list (string).
'position': 1, // Product position (number).
'dimension1': 'Member' // Custom dimension (string).
});
В объекте impressionFieldObject
обязательно должно быть задано значение поля name
или id
. Остальные значения задавать необязательно.
Отслеживание действий
Чтобы отслеживать действия, добавляйте сведения о товарах с помощью команды ec:addProduct
с параметром productFieldObject
и передавайте информацию о совершаемых действиях с помощью команды ec:setAction
.
Например, следующий код регистрирует клик по ссылке на страницу товара, показанной в результатах поиска:
ga('ec:addProduct', { // Provide product details in a productFieldObject.
'id': 'P12345', // Product ID (string).
'name': 'Android Warhol T-Shirt', // Product name (string).
'category': 'Apparel', // Product category (string).
'brand': 'Google', // Product brand (string).
'variant': 'Black', // Product variant (string).
'position': 1, // Product position (number).
'dimension1': 'Member' // Custom dimension (string).
});
ga('ec:setAction', 'click', { // click action.
'list': 'Search Results' // Product list (string).
});
В объекте productFieldObject
обязательно должно быть задано значение поля name
или id
. Остальные значения задавать необязательно.
Объединение показов и действий
Показы и действие можно отправить вместе в одном обращении.
Следующий код регистрирует просмотр информации о товаре и раздел связанных товаров:
// The impression from a Related Products section.
ga('ec:addImpression', { // Provide product details in an impressionFieldObject.
'id': 'P12345', // Product ID (string).
'name': 'Android Warhol T-Shirt', // Product name (string).
'category': 'Apparel/T-Shirts', // Product category (string).
'brand': 'Google', // Product brand (string).
'variant': 'Black', // Product variant (string).
'list': 'Related Products', // Product list (string).
'position': 1 // Product position (number).
});
// The product being viewed.
ga('ec:addProduct', { // Provide product details in an productFieldObject.
'id': 'P67890', // Product ID (string).
'name': 'YouTube Organic T-Shirt', // Product name (string).
'category': 'Apparel/T-Shirts', // Product category (string).
'brand': 'YouTube', // Product brand (string).
'variant': 'gray', // Product variant (string).
'position': 2 // Product position (number).
});
ga('ec:setAction', 'detail'); // Detail action.
Отслеживание транзакций
Чтобы отслеживать транзакции, используйте команду ec:setAction
и укажите тип действия purchase
(покупка). Сведения о транзакции (например, общий доход, налог, стоимость доставки) указываются в объекте actionFieldObject
:
ga('ec:addProduct', { // Provide product details in an productFieldObject.
'id': 'P12345', // Product ID (string).
'name': 'Android Warhol T-Shirt', // Product name (string).
'category': 'Apparel', // Product category (string).
'brand': 'Google', // Product brand (string).
'variant': 'black', // Product variant (string).
'price': '29.20', // Product price (number).
'coupon': 'APPARELSALE', // Product coupon (string).
'quantity': 1 // Product quantity (number).
});
ga('ec:setAction', 'purchase', { // Transaction details are provided in an actionFieldObject.
'id': 'T12345', // (Required) Transaction id (string).
'affiliation': 'Google Store - Online', // Affiliation (string).
'revenue': '37.39', // Revenue (number).
'tax': '2.85', // Tax (number).
'shipping': '5.34', // Shipping (number).
'coupon': 'SUMMER2013' // Transaction coupon (string).
});
Если тип транзакции – purchase
или refund
, то у объекта actionFieldObject
должно быть задано значение поля id
. Остальные значения задавать необязательно.
Отслеживание возвратов
При возврате всей суммы транзакции задайте тип действия refund
(возврат) и укажите идентификатор транзакции:
// Refund an entire transaction.
ga('ec:setAction', 'refund', {
// Transaction ID is only required field for full refund.
'id': 'T12345'
});
Если соответствующая транзакция не будет найдена, то обращение refund
не будет обработано.
Для отслеживания частичного возврата задайте действие типа refund
(возврат) и укажите идентификатор транзакции, а также идентификаторы и количество возвращаемых товаров:
// Refund a single product.
ga('ec:addProduct', {
'id': 'P12345', // Product ID is required for partial refund.
'quantity': 1 // Quantity is required for partial refund.
});
ga('ec:setAction', 'refund', {
'id': 'T12345', // Transaction ID is required for partial refund.
});
Использование событий без взаимодействия для отправки данных о возвратах
Если вам требуется отправить данные о возврате с помощью события, которое не является взаимодействием (т. е. не инициируется пользователем), рекомендуется использовать событие типа "Без взаимодействия". Благодаря этому событие не будет влиять на такие показатели, как число отказов, время на сайте и т. д. Пример:
ga('send', 'event', 'Ecommerce', 'Refund', {'nonInteraction': 1});
Отслеживание процесса оформления покупки
Чтобы отслеживать весь процесс оформления покупки, выполните следующие действия:
- Добавьте код для отслеживания каждого этапа оформления покупки.
- При необходимости добавьте код для отслеживания вариантов, выбираемых пользователями при оформлении покупок.
- Вы также можете присвоить информативные названия каждому шагу на пути к покупке – в веб-интерфейсе в разделе Настройки электронной торговли на вкладке "Администратор".
1. Этапы оформления покупки
Для каждого шага оформления покупки необходимо внедрить код отслеживания, отправляющий данные в Google Аналитику.
Поле
step
Укажите значение
step
для каждого этапа оформления покупки, который нужно отслеживать. Оно используется для привязки действий к ярлыкам, которые вы присвоили каждому этапу оформления покупки в разделе Настройки электронной торговли.Поле
option
Чтобы получать дополнительную информацию об определенном этапе, задайте поле
option
с типом действияcheckout
. Например, так можно передавать информацию о способе оплаты по умолчанию, выбранном пользователем (допустим,Visa
).Этапы оформления покупки
Чтобы отправить информацию об этапе оформления покупки, укажите сведения о каждом товаре с помощью команды
ec:addProduct
. Используйтеec:setAction
для обозначения оформления покупки. Командаec:setAction
может принимать дополнительный аргументactionFieldObject
, описывающий этап оформления покупки, с полямиstep
(этап) иoption
(параметр).Следующий код отслеживает первый шаг в процессе оформления покупки одного товара и передает дополнительную информацию о способе оплаты:
ga('ec:addProduct', { // Provide product details in an productFieldObject. 'id': 'P12345', // Product ID (string). 'name': 'Android Warhol T-Shirt', // Product name (string). 'category': 'Apparel', // Product category (string). 'brand': 'Google', // Product brand (string). 'variant': 'black', // Product variant (string). 'price': '29.20', // Product price (number). 'quantity': 1 // Product quantity (number). }); // Add the step number and additional info about the checkout to the action. ga('ec:setAction','checkout', { 'step': 1, 'option': 'Visa' });
2. Параметры покупки
Вы можете получать дополнительную информацию, которая становится доступна после выбора определенного параметра (например, способа доставки) пользователем на данном этапе оформления покупки.
Чтобы передать информацию о параметре, выбранном пользователем при оформлении покупки, используйте команду ec:setAction
с параметром checkout_option
и укажите номер этапа покупки и описание параметра.
Обычно выбор параметра регистрируется при переходе пользователя на следующий этап оформления покупки. Пример:
// (On "Next" button click)
ga('ec:setAction', 'checkout_option', {'step': 2, 'option': 'FedEx'});
ga('send', 'event', 'Checkout', 'Option', {
hitCallback: function() {
// advance to next page
},
});
3. Настройка последовательности оформления покупки
Каждому этапу оформления покупки можно присвоить описательное название, по которому вам будет проще узнать его в отчетах. Для этого нажмите на вкладку Администратор в веб-интерфейсе Google Аналитики, выберите нужное представление (профиль) и перейдите в раздел Настройки электронной торговли. Задайте названия, следуя инструкциям.

Отслеживание внутренних рекламных кампаний
Вы также можете отслеживать внутренние промоакции, например баннеры, рекламирующие распродажу.
Показы внутренней рекламы
Как правило, показы внутренней рекламы регистрируются при загрузке страницы и передаются с исходной информацией о просмотре страницы с помощью команды ec:addPromo
. Пример:
ga('ec:addPromo', { // Promo details provided in a promoFieldObject.
'id': 'PROMO_1234', // Promotion ID. Required (string).
'name': 'Summer Sale', // Promotion name (string).
'creative': 'summer_banner2', // Creative (string).
'position': 'banner_slot1' // Position (string).
});
Клики по внутренней рекламе
Вы можете отслеживать клики по внутренней рекламе, настроив действие promo_click
. Пример:
// Identify the promotion that was clicked.
ga('ec:addPromo', {
'id': 'PROMO_1234',
'name': 'Summer Sale',
'creative': 'summer_banner2',
'position': 'banner_slot1'
});
// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
Например, если на странице с информацией о товаре сделан клик по внутренней рекламе, сначала отправьте данные о товаре и показе с первоначальным просмотром страницы, а затем – информацию о клике по внутренней рекламе в отдельном событии:
// 1. Send product and impression data with pageview.
ga('ec:addProduct', {
'id': 'P12345', // Product ID (string).
'name': 'Android Warhol T-Shirt', // Product name (string).
'category': 'Apparel', // Product category (string).
'brand': 'Google', // Product brand (string).
'variant': 'Black', // Product variant (string).
'position': 1, // Product position (number).
});
// The impression from the Related Products section.
ga('ec:addImpression', {
'id': 'P12345', // Product ID (string).
'name': 'Android Warhol T-Shirt', // Product name (string).
'category': 'Apparel/T-Shirts', // Product category (string).
'brand': 'Google', // Product brand (string).
'variant': 'Black', // Product variant (string).
'list': 'Related Products', // Product list (string).
'position': 1, // Product position (number).
});
ga('ec:setAction', 'detail'); // Detail action.
ga('send', 'pageview'); // Send the product data with initial pageview.
// 2. Send the promo click data when the promo click occurs.
// Call this function when promo click occurs.
function onPromoClick() {
ga('ec:addPromo', {
'id': 'PROMO_1234',
'name': 'Summer Sale',
'creative': 'summer_banner2',
'position': 'banner_slot1'
});
// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
}
В объекте promoFieldObject
обязательно должно быть задано значение поля name
или id
. Остальные значения задавать необязательно.
Полный пример
Следующие фрагменты кода демонстрируют отслеживание всего коммерческого цикла одного товара – от начального показа до транзакции – с помощью плагина расширенной электронной торговли.
Показ товара
В этом примере пользователь впервые видит товар в результатах поиска. Для регистрации этого показа используется команда ec:addImpression
, а информация о товаре передается в объекте impressionFieldObject
:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
ga('ec:addImpression', {
'id': 'P12345', // Product details are provided in an impressionFieldObject.
'name': 'Android Warhol T-Shirt',
'category': 'Apparel/T-Shirts',
'brand': 'Google',
'variant': 'black',
'list': 'Search Results',
'position': 1 // 'position' indicates the product position in the list.
});
ga('ec:addImpression', {
'id': 'P67890',
'name': 'YouTube Organic T-Shirt',
'category': 'Apparel/T-Shirts',
'brand': 'YouTube',
'variant': 'gray',
'list': 'Search Results',
'position': 2
});
ga('send', 'pageview'); // Send product impressions with initial pageview.
Клик по товару
Пользователь нажимает на заинтересовавший его товар, чтобы увидеть подробности о нем.
Чтобы передать информацию об этом клике, используйте команды ec:addProduct
и ec:setAction
:
// Called when a link to a product is clicked.
function onProductClick() {
ga('ec:addProduct', {
'id': 'P12345',
'name': 'Android Warhol T-Shirt',
'category': 'Apparel',
'brand': 'Google',
'variant': 'black',
'position': 1
});
ga('ec:setAction', 'click', {list: 'Search Results'});
// Send click with an event, then send user to product page.
ga('send', 'event', 'UX', 'click', 'Results', {
hitCallback: function() {
document.location = '/product_details?id=P12345';
}
});
}
Создать ссылку на товар можно следующим образом:
<a href="/next-page.html"
onclick="onProductClick(); return !ga.loaded;">
Android Warhol T-Shirt
</a>
Просмотр информации о товаре
Нажав на ссылку, пользователь переходит на страницу с описанием товара.
Чтобы зарегистрировать этот просмотр сведений о товаре, используйте команды ec:addProduct
и ec:setAction
для создания действия detail
:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
ga('ec:addProduct', {
'id': 'P12345',
'name': 'Android Warhol T-Shirt',
'category': 'Apparel',
'brand': 'Google',
'variant': 'black'
});
ga('ec:setAction', 'detail');
ga('send', 'pageview'); // Send product details view with the initial pageview.
Добавление в корзину и удаление из нее
Пользователь решает купить товар и добавляет его в корзину.
Чтобы зарегистрировать добавление или удаление товара, используйте команду ec:addProduct
и задайте тип add
или remove
:
// Called when a product is added to a shopping cart.
function addToCart(product) {
ga('ec:addProduct', {
'id': product.id,
'name': product.name,
'category': product.category,
'brand': product.brand,
'variant': product.variant,
'price': product.price,
'quantity': product.qty
});
ga('ec:setAction', 'add');
ga('send', 'event', 'UX', 'click', 'add to cart'); // Send data using an event.
}
Процесс оформления покупки
Пользователь переходит к оформлению покупки. В нашем примере этот процесс включает два шага, каждый на отдельной странице:
- Добавление платежных данных (payment.html).
- Добавление сведений о доставке (shipping.html).
Убедитесь, что вы правильно настроили последовательность покупки в веб-интерфейсе (раздел Настройки электронной торговли на вкладке "Администратор"). Пример:

Этап 1. Платеж
Для регистрации первого этапа в последовательности покупки передайте сведения о каждом товаре в корзине с помощью команды ec:addProduct
, а с помощью команды ec:setAction
укажите тип действия checkout
(оформление покупки).
Команда ec:setAction
в качестве аргумента принимает объект actionFieldObject
, где можно указать номер этапа оформления покупки и способ оплаты по умолчанию, выбранный пользователем (поле option
):
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
/**
* Called when the user begins the checkout process.
* @param {Array} cart An array representing the user's shopping cart.
*/
function checkout(cart) {
for(var i = 0; i < cart.length; i++) {
var product = cart[i];
ga('ec:addProduct', {
'id': product.id,
'name': product.name,
'category': product.category,
'brand': product.brand,
'variant': product.variant,
'price': product.price,
'quantity': product.qty
});
}
}
// In the case of checkout actions, an additional actionFieldObject can
// specify a checkout step and option.
ga('ec:setAction','checkout', {
'step': 1, // A value of 1 indicates this action is first checkout step.
'option': 'Visa' // Used to specify additional info about a checkout stage, e.g. payment method.
});
ga('send', 'pageview'); // Pageview for payment.html
Этап 2. Доставка
Для регистрации второго этапа в последовательности покупки передайте сведения о каждом товаре в корзине с помощью команды ec:addProduct
, а с помощью команды ec:setAction
укажите тип действия – оформление покупки. В данном случае в момент отправки начального просмотра страницы у нас нет дополнительной информации о выбранном способе доставки, поэтому мы укажем значение checkout_option
отдельно с помощью команды ec:setAction
.
// Measure checkout step 2:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
/**
* Called when the user begins the checkout process.
* @param {Array} cart An array representing the user's shopping cart.
*/
function checkout(cart) {
for(var i = 0; i < cart.length; i++) {
var product = cart[i];
ga('ec:addProduct', {
'id': product.id,
'name': product.name,
'category': product.category,
'brand': product.brand,
'variant': product.variant,
'price': product.price,
'quantity': product.qty
});
}
}
ga('ec:setAction','checkout', {'step': 2});
ga('send', 'pageview'); // Pageview for shipping.html
// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
ga('ec:setAction', 'checkout_option', {
'step': stepNumber,
'option': shippingOption
});
ga('send', 'event', 'Checkout', 'Option', {
hitCallback: function() {
// Advance to next page.
}
});
}
Затем можно реализовать форму следующим образом:
<a href="/next-page.html"
onclick="onShippingComplete(2, 'FedEx'); return !ga.loaded;">
Continue
</a>
Транзакция
И наконец, пользователь завершает оформление покупки.
Чтобы зарегистрировать продажу одного или нескольких товаров, добавьте каждый товар с помощью команды ec:addProduct
, затем с помощью команды ec:setAction
укажите тип действия purchase
(покупка). Сведения о транзакции (например, общий доход, налог и стоимость доставки) можно передать с помощью объекта actionFieldObject
. Пример:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
ga('ec:addProduct', {
'id': 'P12345',
'name': 'Android Warhol T-Shirt',
'category': 'Apparel',
'brand': 'Google',
'variant': 'black',
'price': '29.20',
'quantity': 1
});
// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
'id': 'T12345',
'affiliation': 'Google Store - Online',
'revenue': '37.39',
'tax': '2.85',
'shipping': '5.34',
'coupon': 'SUMMER2013' // User added a coupon at checkout.
});
ga('send', 'pageview'); // Send transaction data with initial pageview.
Как указать местную валюту
По умолчанию вы задаете глобальную валюту (общую для всех транзакций и товаров) через веб-интерфейс Google Аналитики. По умолчанию глобальная валюта используется для всех транзакций и товаров. Если на вашем сайте доступна оплата в разной валюте, то с помощью плагина электронной торговли вы можете указать валюту, которую следует использовать для транзакции.
Местная валюта должна быть указана в соответствии со стандартом ISO 4217
. Полный список валют конверсии, доступных в Google Аналитике, можно найти в справочном руководстве по кодам валют.
Местную валюту можно указать с помощью свойства currencyCode
объекта отслеживания. Например, этот счетчик будет отправлять значения валют в евро:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
ga('set', 'currencyCode', 'EUR'); // Set currency to Euros.
ga('ec:addProduct', {
'id': 'P12345',
'name': 'Android Warhol T-Shirt',
'category': 'Apparel',
'brand': 'Google',
'variant': 'black',
'price': '21.89',
'quantity': 1
});
ga('ec:setAction', 'purchase', {
id: 'T12345',
affiliation: 'Google Store - Online',
revenue: '28.03',
tax: '2.14',
shipping: '4.00',
coupon: 'SUMMER2013'
});
ga('send', 'pageview');