Перейти к основному содержимому

Электронная коммерция для iOS

Краткое содержание

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

Доступные шаблоны событий
Для упрощения интеграции с Аналитикой предлагаются два шаблона:

  • MTECommerceGA4 — для событий в формате GA4
  • MTECommerceUA — для событий в формате Universal Analytics

Шаблон MTECommerceGA4Event
Каждому действию пользователя соответствует определённый тип события:

  1. Выберите тип события с помощью MTECommerceGA4EventName
  2. Заполните поля MTECommerceGA4Event

В статье приведён список доступных событий (например, add_to_cart, purchase, view_item) с указанием обязательных полей. Также описаны параметры MTECommerceGA4EventItem для описания товаров или услуг.

Шаблон MTECommerceUAEvent
Для событий в формате Universal Analytics:

  1. Выберите тип события с помощью MTEcommerceUAEventName
  2. Укажите действие пользователя (например, add, checkout, purchase) и заполните соответствующие поля

В статье описаны доступные события (например, add, refund, click) и структуры данных, такие как ActionField, Product, Promotion.

Отправка событий
Для отправки события используется метод:

mtsAnalytics?.track(event: event)  

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

Доступные шаблоны событий

Чтобы сделать интеграцию с Аналитикой быстрее и проще, мы подготовили шаблоны, которые вы могли использовать, если передавали данные в GA4 или в Universal Analytics:

  • MTECommerceGA4 — подходит, если вы размечали события в формате GA4
  • MTECommerceUA — подходит, если вы размечали события в формате Universal Analytics

Шаблон MTECommerceGA4Event

Разным действиям пользователей соответствуют разные типы событий:

  1. Выберите тип события с помощью MTECommerceGA4EventName
  2. Заполните необходимые поля MTECommerceGA4Event
let event = MTECommerceGA4Event(
eventName: MTECommerceGA4EventName,
parameters: [String: Any?]?,
transactionId: String?,
affiliation: String?,
value: String?,
currency: String?,
tax: String?,
shipping: String?,
shippingTier: String?,
paymentType: String?,
coupon: String?,
itemListName: String?,
itemListId: String?,
items: [MTECommerceGA4EventItem]?,
creativeName: String?,
creativeSlot: String?,
promotionId: String?,
promotionName: String?
)

Доступные опции MTECommerceGA4EventName:

ОпцияОписаниеОбязательные поля
add_payment_infoПользователь выбрал способ оплатыМассив MTECommerceGA4EventItem
add_shipping_infoПользователь выбрал способ доставкиМассив MTECommerceGA4EventItem
add_to_cartПользователь добавляет товар в корзину из карточки товара или любых других товарных блоковМассив MTECommerceGA4EventItem
add_to_wishlistПользователь добавляет товар в избранноеМассив MTECommerceGA4EventItem
begin_checkoutПользователь переходит на страницу оформления заказаМассив MTECommerceGA4EventItem
purchaseПользователь совершил покупку. Такое событие должно срабатывать только один раз для оформленного заказа.Массив MTECommerceGA4EventItem
refundПользователь возвращает покупкуПри полном возврате — transactionId. При частичном возврате — массив MTECommerceGA4EventItem
remove_from_cartПользователь удаляет товар из корзиныМассив MTECommerceGA4EventItem
select_itemПользователь кликает по товарам в каталоге, в выдаче поиска, в товарных блоках и других спискахМассив MTECommerceGA4EventItem
select_promotionПользователь кликает на рекламные кампанииМассив MTECommerceGA4EventItem
view_cartПользователь просматривает корзинуМассив MTECommerceGA4EventItem
view_itemПользователь просматривает карточку товараМассив MTECommerceGA4EventItem
view_item_listПользователь просматривает список товаровМассив MTECommerceGA4EventItem
view_promotionПользователь просматривает рекламные кампании на страницеМассив MTECommerceGA4EventItem

MTECommerceGA4EventItem

К событию разметки можно добавить описание списка товаров или услуг:

let item = MTEcommerceGA4EventItem(
itemId: String,
itemName: String,
itemListName: String?,
itemListId: String?,
index: String?,
itemBrand: String?,
itemCategory: String?,
itemCategory2: String?,
itemCategory3: String?,
itemCategory4: String?,
itemCategory5: String?,
itemVariant: String?,
affiliation: String?,
discount: String?,
coupon: String?,
price: String?,
currency: String?,
quantity: String?,
locationId: String?,
creativeName: String?,
creativeSlot: String?,
promotionId: String?,
promotionName: String?,
parameters: [String: Any?]?
)

Шаблон MTECommerceUAEvent

Разным действиям пользователей соответствуют разные типы событий:

  1. Выберите тип события с помощью MTEcommerceUAEventName
  2. В MTECommerceUA добавьте подходящее действие пользователя. Например, для eventName = MTEcommerceUAEventName.Add заполните MTECommerceUA.add. Укажите код валюты currencyCode
let event = MTEcommerceUAEvent(
eventName: MTEcommerceUAEventName,
ecommerceParameters: [String : Any?]?,
ecommerce: MTECommerceUA(
purchase: Purchase?,
checkoutOption: CheckoutOption?,
add: Add?,
checkout: Checkout?,
refund: Refund?,
remove: Remove?,
click: Click?,
promoClick: PromoClick?,
detail: Detail?,
impressions: Impressions?,
promoView: PromoView?
),
currencyCode: String?,
customParameters: [String : Any?]?
)

Доступные опции MTEcommerceUAEventName:

ОпцияОписаниеОбязательные поля
checkout_optionПользователь выбрал способ оплаты или доставкиActionField в CheckoutOption
addПользователь добавляет товар в корзину из карточки товара или любых других товарных блоковМассив Product в Add. В каждом Product заполнены поля name и id
checkoutПользователь переходит на страницу оформления заказаМассив Product в Checkout. В каждом Product заполнены поля name и id
purchaseПользователь добавляет товар в корзину из карточки товара или любых других товарных блоковActionField в Purchase, поля id и revenue. Массив Product в Purchase, поля name и id
refundПользователь возвращает покупкуActionField в Refund. При полном возврате — поле id, при частичном — поля id и quantity в Product
removeПользователь удаляет товар из корзиныМассив Product в Remove. В каждом Product — поля name и id
clickПользователь кликает по товарам в каталоге, в выдаче поиска, в товарных блоках и в других спискахМассив Product в Click. В каждом Product — поля name и id
promoClickПользователь кликает на рекламные кампанииМассив Promotions в PromoClick
detailПользователь просматривает карточку товараМассив Product в Product. В каждом Product — поля name и id
impressionsПользователь просматривает список товаровПоля name и id в Product
promoViewПользователь просматривает рекламные кампании на страницеМассив Promotions в PromoView. В каждом Promotion — поля name и id

Структура ActionField

struct ActionField {
var id: String? // Идентификатор транзакции. Обязателен при заполнении структур Purchase и Refund
var affiliation: String? // Магазин или филиал, в котором была совершена транзакция
var revenue: String? // Денежная ценность события в указанной валюте. Обязателен при заполнении Purchase структуры
var tax: String? // Сумма налога
var shipping: String? // Стоимость доставки
var coupon: String? // Код купона
var step: String? // Шаг воронки ecom
var option: String? // Выбранный способ оплаты
var list: String? // Название списка, в который входит товар
var parameters: [String: Any?]?
}

Структура Product

struct Product {
var name: String // название товара
var id: String // идентификатор или код товара (SKU)
var price: String? // цена товара
var brand: String? // бренд, к которому относится товар
var category: String? // категория, к которой относится товар
var variant: String? // вариант товара
var quantity: String? // количество единиц товара
var coupon: String? // код купона
var list: String? // название списка, в который входит товар
var position: String? // позиция товара в списке
var parameters: [String: Any?]?
}

Структура Promotion

    struct Promotion {
var id: String?
var name: String?
var creative: String?
var position: String?

public init(
id: String? = nil,
name: String? = nil,
creative: String? = nil,
position: String? = nil
) {
self.id = id
self.name = name
self.creative = creative
self.position = position
}
}

Отправка событий

Метод отправки событий

mtsAnalytics?.track(event: event)