Enhanced Ecommerce

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

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ключ Тип значения Да Описание
id Текст Да* Идентификатор рекламной акции. Пример: PROMO_1234. *Должно быть задано значение либо этого поля, либо поля name.
name Текст Да* Название рекламной акции. Пример: "Летняя распродажа". *Должно быть задано значение либо этого поля, либо поля id.
creative Текст Нет Объявление, связанное с рекламной акцией. Пример: summer_banner2.
position Текст Нет Позиция объявления. Пример: banner_slot_1.

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

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

Ключ Тип значения Да Описание
id Текст Да* Идентификатор транзакции. Пример: T1234. *Обязательно, если тип действия – purchase (покупка) или refund (возврат).
affiliation Текст Нет Магазин или филиал, в котором произошла транзакция. Пример: Google Store.
revenue Валюта Нет Общий доход или суммарная ценность транзакции. Пример: 11.99. Это значение может включать любые корректировки общего дохода (стоимость доставки, налоги и т. д.). Примечание. Если доход не указан, оно будет вычислено автоматически с использованием полей "Количество товара" и "Цена товара".
tax Валюта Нет Сумма всех налогов, связанных с транзакцией.
shipping Валюта Нет Стоимость доставки, связанная с транзакцией.
coupon Текст Нет Купон, погашенный при транзакции.
list Текст Нет Список, в который входят товары, связанные с транзакцией. Необязательный параметр.
step Целое число Нет Число, представляющее этап последовательности покупки. Необязательное поле, используемое для действий типа checkout (оформление покупки).
option Текст Нет Дополнительное поле для действий типа checkout (оформление покупки) и checkout_option (вариант оформление покупки). Предоставляет информацию о варианте (например, о способе оплаты), выбранном при оформлении покупки.

Действия с товарами и рекламными акциями

Действия определяют, как будут интерпретироваться данные, которые вы отправляете в Google Analytics.

Действие Описание
click Нажатие на товар/ссылку на товар (или товары).
detail Просмотр информации о товаре.
add Добавление одного или нескольких товаров в корзину покупок.
remove Удаление одного или нескольких товаров из корзины покупок.
checkout Переход к оформлению покупки.
checkout_option Вариант, выбранный пользователем на определенном этапе оформления покупки.
purchase Продажа одного или нескольких товаров.
refund Возврат одного или нескольких товаров.
promo_click Клик по внутренней рекламе.

Реализация

Далее рассказывается, как установить плагин расширенной электронной торговли на веб-сайте, где используется библиотека 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 (currency).
  '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 (currency).
  'tax': '2.85',                          // Tax (currency).
  'shipping': '5.34',                     // Shipping (currency).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

Для объекта actionFieldObject необходимо указать значение id, если тип действия – purchase (покупка) или refund (возврат). Остальные значения задавать необязательно.

Отслеживание возвратов

При возврате всей суммы транзакции задайте тип действия refund (возврат) и укажите идентификатор транзакции:

// Refund an entire transaction.
ga('ec:setAction', 'refund', {
  'id': 'T12345'    // Transaction ID is only required field for full refund.
});

Если транзакцию с таким идентификатором не удастся найти, обращение типа 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. Добавьте код отслеживания для каждого этапа оформления покупки.
  2. При необходимости добавьте код отслеживания для каждого варианта, который может выбрать пользователь при оформлении покупки.
  3. При желании присвойте информативные названия каждому шагу на пути к покупке. Это можно сделать в веб-интерфейсе в разделе Настройки электронной торговли на вкладке "Администратор".

1. Отслеживание этапов оформления покупки

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

Поле Step (Этап)

Укажите значение step для каждого этапа оформления покупки. Оно используется для привязки действий к ярлыкам, которые вы присвоили каждому этапу оформления покупки в разделе Настройки электронной торговли.

Поле Option (Вариант)

Чтобы получать дополнительную информацию об определенном этапе, задайте для поля option действие checkout – например, способ оплаты по умолчанию, выбранный пользователем (допустим, кредитная карта Visa).

Отслеживание на этапе оформления покупки

Используйте ec:addProduct для каждого товара и ec:setAction, чтобы указать действие типа checkout. Кроме того, 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 (currency).
  '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 Analytics, выберите нужное представление (профиль) и перейдите в раздел Настройки электронной торговли. Присвойте название каждому этапу в последовательности покупки, следуя инструкциям для обычной электронной торговли.

Настройки электронной торговли в административном разделе веб-интерфейса Google Analytics. Включена электронная торговля и добавлены четыре этапа оформления покупки: 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, чтобы зарегистрировать этот просмотр, и укажите действие типа detail с помощью ec:setAction:

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.
}

Процесс оформления покупки

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

  1. Добавление платежных данных (payment.html).
  2. Добавление сведений о доставке (shipping.html).

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

Настройки электронной торговли в административном разделе веб-интерфейса Google Analytics. Включена электронная торговля и добавлены два этапа оформления покупки: 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. В нашем случае в момент отправки начального просмотра страницы у нас нет дополнительной информации о выбранном способе доставки, поэтому мы укажем 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 Analytics. По умолчанию глобальная валюта используется для всех транзакций и товаров. Если на вашем веб-сайте можно платить в нескольких валютах, то с помощью плагина электронной торговли вы можете указать валюту, которую следует использовать для транзакции.

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

Местную валюту можно указать с помощью свойства счетчика currencyCode. Например, этот счетчик будет отправлять значения валют в евро:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('set', 'currencyCode', 'EUR'); // Set tracker 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');