Расширенная электронная торговля

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

Перенос и совместимость с плагином обычной электронной торговли (ecommerce.js)

Если вы уже настроили отслеживание обычной электронной торговли, вы можете перейти на расширенную электронную торговлю любым из двух основных способов, описанных ниже.

Использование нового ресурса

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

Перевод существующего ресурса на расширенную электронную торговлю

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

Если вы используете ga.js, то сначала вам нужно перейти на analytics.js.

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

Типы данных и отслеживаемые действия

С помощью плагина расширенной электронной торговли можно отправлять следующие данные:

Данные о показе

Информацию о том, какие именно данные о товаре были просмотрены, можно получить с помощью объекта impressionFieldObject, который содержит следующие поля:

Ключ Тип значения Обязательное поле Описание
id Текст Да*

Идентификатор или код товара. Пример: P67890.

*Должен быть указан один из параметров (id или name).

name Текст Да*

Название товара. Пример: "Футболка Android".

*Должен быть указан один из параметров (id или name).

list Текст Нет Список или коллекция, куда входит товар. Пример: "Результаты поиска".
list_name Текст Нет Список или коллекция, куда входит товар. Пример: "Результаты поиска".
brand Текст Нет Бренд, к которому относится товар. Пример: Google.
category Текст Нет Категория, к которой относится товар. Пример: "Одежда". Вы можете указать до 5 уровней иерархии, используя в качестве разделителя косую черту (/). Пример: "Одежда/Мужская одежда/Футболки".
variant Текст Нет Вариант товара. Пример: "Черный".
position Целое число Нет Позиция товара в списке или коллекции. Пример: 2.
list_position Целое число Нет Позиция товара в списке или коллекции. Пример: 2.
price Число Нет Цена товара. Пример: 29,20.

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

Данные об отдельных товарах, которые были просмотрены, добавлены в корзину покупок и т. д., передаются с помощью объекта productFieldObject. Он содержит следующие значения:

Ключ Тип значения Обязательное поле Описание
id Текст Да*

Идентификатор или код товара. Пример: P67890.

*Должен быть указан один из параметров (идентификатор или name).

name Текст Да*

Название товара. Пример: "Футболка Android".

*Должен быть указан один из параметров (идентификатор или name).

brand Текст Нет Бренд, к которому относится товар. Пример: Google.
category Текст Нет Категория, к которой относится товар. Пример: "Одежда". Вы можете указать до 5 уровней иерархии, используя в качестве разделителя косую черту. Пример: "Одежда/Мужская одежда/Футболки".
variant Текст Нет Вариант товара. Пример: "Черный".
price Число Нет Цена товара. Пример: 29,20.
quantity Целое число Нет Количество единиц товара. Пример: 2.
coupon Текст Нет Код купона, связанного с товаром. Пример: SUMMER_SALE13.
position Целое число Нет Позиция товара в списке или коллекции. Пример: 2.
list_position Целое число Нет Позиция товара в списке или коллекции. Пример: 2.

Данные о рекламной акции

Информация о рекламной акции передается с помощью объекта promoFieldObject, который содержит следующие значения:

Ключ Тип значения Обязательное поле Описание
id Текст Да*

Идентификатор рекламной акции. Пример: PROMO_1234.

*Один из параметров (id или name) должен быть указан.

name Текст Да*

Название рекламной акции. Пример: "Летняя распродажа".

*Один из параметров (id или name) должен быть указан.

creative Текст Нет Объявление, связанное с рекламной акцией. Пример: summer_banner2.
creative_name Текст Нет Название креатива. Пример: summer_banner2.
position Текст Нет Позиция объявления. Пример: banner_slot_1.
creative_slot Текст Нет Название рекламного места для объявления. Пример: banner_slot_1.

Данные о действии

Информация о выполненном действии передается с помощью объекта actionFieldObject, который содержит следующие значения:

Ключ Тип значения Обязательное поле Описание
id Текст Да*

Идентификатор транзакции. Пример: T1234.

*Обязательно, если тип действия – purchase (покупка) или refund (возврат).

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 Аналитики, выберите нужное представление (профиль) и перейдите в раздел Настройки электронной торговли. Задайте названия, следуя инструкциям.

Настройки электронной торговли в разделе "Администратор" веб-интерфейса Google Аналитики. Включена электронная торговля и добавлены четыре этапа оформления покупки: 1 – просмотр корзины; 2 – предоставление платежной информации; 3. – подтверждение информации о покупке; 4 – квитанция об оплате.
Рис. 1 Настройки электронной торговли: последовательность оформления покупки

Отслеживание внутренних рекламных кампаний

Вы также можете отслеживать внутренние промоакции, например баннеры, рекламирующие распродажу.

Показы внутренней рекламы

Как правило, показы внутренней рекламы регистрируются при загрузке страницы и передаются с исходной информацией о просмотре страницы с помощью команды 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).

Убедитесь, что вы правильно настроили последовательность покупки в веб-интерфейсе (раздел Настройки электронной торговли на вкладке "Администратор"). Пример:

Настройки электронной торговли в разделе "Администратор" веб-интерфейса Google Аналитики. Включена электронная торговля и добавлены два этапа оформления покупки: 1 – просмотр информации о товаре и 2 – сведения о доставке
Рис. 2. Настройки электронной торговли: последовательность покупки

Этап 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');