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

Расширенная электронная торговля – это функция Google Analytics, доступная в свойствах Universal Analytics , которая позволяет измерять взаимодействие пользователей с продуктами в процессе совершения покупок. Это может включать в себя показы продуктов, клики по продуктам, просмотры сведений о продуктах, добавление товаров в корзину, инициирование оформления заказов, транзакций и возвратов.

Последние поколения Диспетчера тегов Google и Google Analytics для мобильных приложений работают в сочетании с Firebase , платформой мобильных приложений Google. При измерении приложений с помощью Firebase SDK у вас будет доступ к множеству автоматически созданных отчетов о мобильных приложениях, которые можно дополнительно настраивать и дополнять кодом в приложении. Эти отчеты будут автоматически включать данные о покупках в приложениях, обработанных App Store в iTunes и Google Play. Дополнительные отчеты, связанные с электронной торговлей, можно создавать, реализуя предлагаемые события для приложений электронной торговли . Подробные отчеты о покупательском поведении (например, расширенная электронная торговля) в настоящее время доступны только в ресурсах Universal Analytics.

В этом документе описывается, как использовать Диспетчер тегов для приложений iOS в сочетании с Firebase SDK для отправки расширенных данных электронной торговли в ресурсы Universal Analytics. Тот же синтаксис событий и параметров следует использовать для подготовки дополнительных отчетов по электронной торговле в будущем.

Первые шаги

Прежде чем приступить к работе, настройте следующие предварительные условия для своего приложения:

  1. Установите и настройте Firebase и Диспетчер тегов Google в своем приложении. Убедитесь, что вы используете Firebase SDK для iOS версии 11 или выше.
  2. Настройте определяемую пользователем переменную в контейнере Диспетчера тегов под названием «Промоакции» со следующими параметрами:
    • Тип события: Пользовательский параметр
    • Ключ параметра события: рекламные акции
    • Значение по умолчанию: не определено

Реализация

В следующих разделах показано, как регистрировать события с параметрами, необходимыми для измерения расширенной электронной торговли, например:

Впечатления от продукта

Измеряйте показы продуктов, регистрируя событие с параметром kFIRParameterItemID и одним или несколькими элементами (то есть продуктами), определенными с помощью соответствующих полей.

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @2          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewSearchResults
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Просмотр экрана
  • Поля для установки: (Имя поля) screenName (значение, например) Экран результатов поиска
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно view_search_results

Клики/выборы товаров

Измеряйте клики по продуктам, регистрируя событие kFIREventSelectContent с элементом (то есть продуктом), определенным с соответствующими полями:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Событие
  • Категория события, например: Электронная торговля
  • Действие события, например: клик по продукту
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно select_content И равно undefined

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

Измеряйте просмотры сведений о продукте, регистрируя событие kFIREventViewItem с элементом (то есть продуктом), определенным с соответствующими полями:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log view_item event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Просмотр экрана
  • Поля для установки: (Имя поля) screenName (значение, например) Экран сведений о продукте
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно view_item И
  • равно undefined

Дополнения к корзине

Измерьте добавление продукта в корзину, зарегистрировав событие kFIREventAddToCart с элементом (то есть продуктом), определенным в соответствующих полях:

/// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log add_to_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventAddToCart
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Событие
  • Категория события, например: Электронная торговля
  • Действие события, например: Добавить в корзину
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно add_to_cart

Удаление из корзины

Измерьте удаление продукта из корзины покупок, зарегистрировав событие kFIREventRemoveFromCart с элементом (т.е. продуктом), определенным в соответствующих полях:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log remove_from_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventRemoveFromCart
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Событие
  • Категория события, например: Электронная торговля
  • Действие события, например: Удалить из корзины
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно remove_from_cart

Показы продвижения

Измеряйте показы рекламных акций, регистрируя событие kFIREventViewItem с элементом рекламной акции, определенным с соответствующими полями:

/// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
NSDictionary *ecommerce = @{
   @"promotions" : promotions
};

// Log view_item, view_item_list, or view_search_results
// event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Событие
  • Категория события, например: Внутренняя реклама
  • Действие события, например: показ
  • Попадание без взаимодействия: верно
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно view_item И
  • не равно undefined

Клики/выборы продвижения

Измеряйте клики по продвижению, регистрируя событие kFIREventSelectContent с продвижением, указанным в соответствующих полях:

// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];

// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
NSDictionary *ecommerce = @{
   kFIRParameterItemID : @"PROMO_1234",
   kFIRParameterContentType : @"Internal Promotions",
   @"promotions" : promotions
};

// Log select_content, view_item_list, or view_search_results event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Событие
  • Категория события, например: Внутренняя реклама
  • Действие события, например: Щелчок
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно select_content И не равно undefined

Процесс оформления заказа

Начать оформление заказа

Измерьте первый шаг в процессе оформления заказа, зарегистрировав событие kFIREventBeginCheckout с одним или несколькими элементами (то есть продуктами), определенными в соответствующих полях:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @1, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log BEGIN_CHECKOUT event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventBeginCheckout
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Просмотр экрана
  • Поля для установки: (Имя поля) screenName (значение, например) Экран корзины
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно begin_checkout

Варианты оформления заказа

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

Измеряйте параметры проверки после шага проверки, регистрируя событие kFIREventCheckoutProgress с соответствующими параметрами kFIRParameterCheckoutStep и kFIRParameterCheckoutOption :

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @2, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log CHECKOUT_PROGRESS event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventCheckoutProgress
                   parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • g Тип: Универсальная аналитика
  • Тип подтверждения: Событие
  • ent Категория, например: Электронная торговля
  • ent Действие, например: Установить вариант оформления заказа
  • возможность расширенных функций электронной торговли: правда
  • рекламные данные из Firebase Event
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно set_checkout_option

Покупки

Измеряйте покупки, регистрируя событие kFIREventEcommercePurchase с одним или несколькими товарами (то есть продуктами), определенными в соответствующих полях:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results", // List name.
   kFIRParameterTransactionID : @"T12345",
   kFIRParameterAffiliation : @"Google Store - Online",
   kFIRParameterValue : @75.98, // Revenue.
   kFIRParameterTax : @3.80,
   kFIRParameterShipping : @5.34,
   kFIRParameterCurrency : @"USD",
   kFIRParameterCoupon : @"SUMMER2017"
};

// Log ecommerce_purchase event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Просмотр экрана
  • Поля для установки: (Имя поля) screenName (значение, например) Экран благодарности
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно ecommerce_purchase

Возврат

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

// (OPTIONAL) For partial refunds, define the item IDs and
// quantities of products being refunded.
NSDictionary *refundedProduct = @{
   kFIRParameterItemID : @"sku1234", // Required for partial refund.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce bundle with transaction ID to be refunded.
NSDictionary *ecommerce = @{
   @"items" : @[ refundedProduct ],
   kFIRParameterTransactionID : @"T12345", // Required.
   kFIRParameterValue : @75.98 // Optional in Universal Analytics.
};

// Log purchase_refund event with ecommerce.
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund
                    parameters:ecommerce];

См. конфигурацию тега для этого примера:

  • Тип тега: Универсальная аналитика
  • Тип трека: Событие
  • Категория события, например: Электронная торговля
  • Действие по событию, например: Возврат
  • Включить расширенные функции электронной торговли: True
  • Чтение данных из: Событие Firebase
  • Триггер, например: (Пользовательский > Некоторые события) Имя события равно Purchase_refund