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

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

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Действие Описание
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 (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', {
  '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 Аналитику.

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

Настройки электронной торговли в разделе
Рис. 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.
}

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

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

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

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

Настройки электронной торговли в разделе
Рис. 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');