Войти

Передача событий Ecommerce

MyTracker поддерживает ключевые события электронной торговли: заказы и возвраты. Изменяя параметры событий, вы можете передавать все возможные действия по заказам:

  • оформление заказа с оплатой;
  • оформление заказа без оплаты;
  • оплата ранее оформленного заказа;
  • отмена заказа или части товаров;
  • полный или частичный возврат средств;
  • замена товаров в заказе.

Для передачи событий в MyTracker используйте контейнер dataLayer. Каждое событие должно быть передано в контейнер в виде JavaScript объекта с помощью метода push. Параметры событий и примеры скриптов представлены ниже.

Также для передачи событий вы можете использовать S2S API. В том числе для заказов в мобильных приложениях и неотслеживаемых на сайте событиях, например, при изменении статуса заказа в системе учёта.

Формат передачи данных

MyTracker поддерживает популярный формат передачи данных электронной торговли, аналогичный разметке Google Analytics и Яндекс Метрики.

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

События

Параметры событий:

Параметр Тип Описание
event* String Название события:
  • mt_order (заказ)
  • mt_refund (возврат)
MyTracker принимает также события в разметке Google Analytics и Яндекс Метрики:
  • purchase
  • refund
ecommerce* Object Главный контейнер события
status String Действие по заказу

Возможные значения для события mt_order:
  • PAY (оплата товара, значение по умолчанию)
  • ADD (добавление товара)
Возможные значения для события mt_refund:
  • REFUND (возврат оплаченного товара, значение по умолчанию)
  • CANCEL (удаление неоплаченного товара)
currency_code String Трёхбуквенный код валюты по ISO 4217. Если значение не передано, то подставляется валюта проекта.
order_id* String Уникальный номер заказа
action_id String Уникальный номер действия в рамках заказа
coupon String Название или код купона на заказ
items* Array Массив с описанием товаров

* — обязательные параметры

Товары

Параметры товаров:

Параметр Тип Описание
item_id* String Уникальный идентификатор товара
item_name* String Название товара. Может быть не уникальным и меняться. Например, Xiaomi Redmi Wath 3.
affiliation String Поставщик или магазин, к которому относится товар. Например, Xiaomi store.
price Number Цена товара, без учёта скидок
discount Number Сумма скидки на товар
coupon String Название или код купона на товар
tax Number НДС и другие налоговые издержки. Значение от 1 до 100, в процентах.
index Integer Позиция товара в списке
item_brand String Бренд товара. Например, Xiaomi.
item_variant String Разновидность товара. Например, зелёный цвет.
item_list_id String Идентификатор списка, в котором товар представлен пользователю
item_list_name String Название списка, в котором товар представлен пользователю. Например, новинки.
item_category1 String Одна из категорий, к которой относится товар. Например, электроника.
item_category2 String Одна из категорий, к которой относится товар. Например, телефоны и часы.
item_category3 String Одна из категорий, к которой относится товар. Например, часы.
item_category4 String Одна из категорий, к которой относится товар. Например, смарт-часы.
location_id String Идентификатор или название местоположение товара, магазина, пункта выдачи и др.
quantity Integer Количество единиц товара

* — обязательные параметры

Передача заказов

Для передачи заказов используйте событие mt_order. В параметре status отправляйте статус по заказу:

  • ADD для добавления товара.
  • PAY для оплаты товара.

Если статус не будет передан, то заказ будет считаться полностью оплаченным (по умолчанию статус PAY).

Рассмотрим примеры передачи различных событий:

Событие Параметры
Оформление заказа с оплатой event: "mt_order"
status: "PAY"

Отправлять событие нужно в тот момент, когда пользователь полностью оплатил заказ на сайте и завершил оформление.
Оформление заказа без оплаты event: "mt_order"
status: "ADD"

Отправлять событие нужно в тот момент, когда пользователь завершил оформление заказа с отложенной оплатой, например, в пункте выдачи заказов или курьеру.
Полная или частичная оплата заказа Оплата заказа подразумевает, что перед этим уже было отправлено событие mt_order в статусе ADD. Возможная цепочка действий: ADD→PAY.

event: "mt_order"
status: "PAY"
order_id: <номер оформленного ранее заказа>
items: <описание оплаченных товаров>

Отправлять событие нужно в момент оплаты.
Дополнение заказа Дополнение заказа подразумевает, что перед этим уже было отправлено событие mt_order. Возможные цепочки действий: ADD→ADD, ADD→PAY, PAY→ADD, PAY→PAY.

event: "mt_order"
status: "PAY" если товары оплачены
status: "ADD" если товары не оплачены
order_id: <номер оформленного ранее заказа>
items: <описание добавленных товаров>

Отправлять событие нужно в момент добавления товаров.

Пример кода для передачи полностью оплаченного заказа:

window.dataLayer.push({
  event: "mt_order",
  ecommerce: {
    status: "PAY",
    currency_code: "RUB",
    order_id: "000919",
    action_id: "119029",
    coupon: "2 по цене одного",
    items: [{
      item_id: "00912",
      item_name: "Яблоко",
      affilation: "Сады",
      item_list_id: "5",
      item_list_name: "Фрукты",
      price: "11.90",
      discount: "2",
      coupon: "2 по цене одного",
      tax: "20",
      index: "1",
      item_brand: "Антоновка",
      item_variant: "Зеленый",
      item_category1: "Продукты",
      item_category2: "Фрукты",
      item_category3: "Яблоки",
      item_category4: "Сладкие",
      location_id: "Краснодар",
      quantity: "3"
    },
    {
      item_id: "00912",
      item_name: "Груша",
      affilation: "Сады",
      item_list_id: "5",
      item_list_name: "Фрукты",
      price: "11.90",
      discount: "1",
      coupon: "2 по цене одного",
      tax: "20",
      index: "2",
      item_brand: "Конференция",
      item_variant: "Зеленый",
      item_category1: "Продукты",
      item_category2: "Фрукты",
      item_category3: "Груши",
      item_category4: "Сладкие",
      location_id: "Краснодар",
      quantity: "2"
    }]
  }
});

Передача возвратов

Для передачи возвратов используйте событие mt_refund. В параметре status отправляйте статус по заказу:

  • REFUND для возврата оплаченного товара.
  • CANCEL для удаления неоплаченного товара.

Если статус не будет передан, то будет считаться что все имеющиеся платежи по заказу возвращены (по умолчанию статус REFUND).

Рассмотрим примеры передачи различных событий:

Событие Параметры
Полная или частичная отмена неоплаченного заказа Отмена заказа подразумевает, что перед этим уже было отправлено событие mt_order. Возможные цепочки действий: ADD→CANCEL, PAY→CANCEL.

event: "mt_refund"
status: "CANCEL"
order_id: <номер оформленного ранее заказа>
items: <описание отменённых товаров>

Отправлять событие нужно в тот момент, когда пользователь отменил заказ или часть товаров, или, например, когда истёк срок резерва заказа.
Полная или частичная отмена оплаченного заказа Отмена оплаченного заказа подразумевает, что перед этим уже было отправлено событие mt_order. Возможные цепочки действий: PAY→REFUND, CANCEL→REFUND.

event: "mt_refund"
status: "REFUND"
order_id: <номер оплаченного ранее заказа>
items: <описание возвращённых товаров>

Отправлять событие нужно в тот момент, когда пользователь оформил возврат.

Пример кода для возврата полностью оплаченного заказа:

window.dataLayer.push({
  event: "mt_refund",
  ecommerce: {
    status: "REFUND",
    currency_code: "RUB",
    order_id: "000919",
    action_id: "119030",
    coupon: "2 по цене одного",
    items: [{
      item_id: "00912",
      item_name: "Яблоко",
      affilation: "Сады",
      item_list_id: "5",
      item_list_name: "Фрукты",
      price: "11.90",
      discount: "2",
      coupon: "2 по цене одного",
      tax: "20",
      index: "1",
      item_brand: "Антоновка",
      item_variant: "Зеленый",
      item_category1: "Продукты",
      item_category2: "Фрукты",
      item_category3: "Яблоки",
      item_category4: "Сладкие",
      location_id: "Краснодар",
      quantity: "3"
    },
    {
      item_id: "00912",
      item_name: "Груша",
      affilation: "Сады",
      item_list_id: "5",
      item_list_name: "Фрукты",
      price: "11.90",
      discount: "1",
      coupon: "2 по цене одного",
      tax: "20",
      index: "2",
      item_brand: "Конференция",
      item_variant: "Зеленый",
      item_category1: "Продукты",
      item_category2: "Фрукты",
      item_category3: "Груши",
      item_category4: "Сладкие",
      location_id: "Краснодар",
      quantity: "2"
    }]
  }
});

Рекомендации по передаче событий

  • Для передачи нескольких действий по заказу используйте одинаковый order_id, но разные action_id. Вводить последовательную нумерацию действий не обязательно. Например, action_id: "005" для оформления заказа, action_id: "001" для добавления товара, action_id: "038" для оплаты.
  • При передаче разных событий mt_order и mt_refund допустимо повторять action_id. Например, action_id: "001" для оформления заказа и action_id: "001" для возврата.
  • Чтобы заменить товар, используйте последовательно события mt_refund и mt_order.

Передача событий Google Analytics

Если вы уже используете Google Analytics Enhanced Ecommerce или Google Analytics Ecommerce (GA4), то MyTracker может собирать события purchase и refund автоматически. Для этого вам достаточно установить счётчик MyTracker на сайт и включить трекинг событий Ecommerce, других настроек не требуется.

В разметке Google Analytics каждая транзакция приравнивается к отдельному заказу, а поле для передачи статуса не предусмотрено. В результате событие purchase будет записываться как полностью оплаченный заказ, а событие refund как возврат платежа.

Чтобы отслеживать статус заказа, передавать частичные дополнения, оплаты и отмены, рекомендуем использовать разметку MyTracker — события mt_order и mt_refund.

Передача событий Яндекс Метрики

Если вы уже используете Яндекс Метрику, то MyTracker может собирать события purchase автоматически. Для этого вам достаточно установить счётчик MyTracker на сайт и включить трекинг событий Ecommerce, других настроек не требуется.

В разметке Яндекс Метрики не предусмотрена возможность передавать возвраты, каждая транзакция приравнивается к заказу, поле для передачи статуса не предусмотрено. В результате событие purchase будет записываться как полностью оплаченный заказ.

Чтобы передавать возвраты, а также частичные дополнения, оплаты и отмены товаров, рекомендуем использовать разметку MyTracker — события mt_order и mt_refund.

Была ли эта статья полезна?