Google Аналитика поддерживает в ресурсах Universal Analytics расширенную электронную торговлю. Это функция, которая позволяет понять, как пользователи взаимодействуют с вашими товарами на разных этапах пути к покупке. Например, можно узнать число показов и кликов для определенного товара, как часто пользователи просматривали информацию о нем или добавляли его в корзину покупок и сколько заказов, транзакций и возвратов было оформлено.
Последние версии Google Менеджера тегов и Google Аналитики для мобильных приложений интегрированы с Firebase – платформой Google для мобильных приложений. Отслеживание с помощью Firebase SDK открывает доступ к огромному числу автоматизированных отчетов о мобильных приложениях, которые можно настраивать под свои задачи, в том числе путем добавления кода в приложение. В отчетах собирается статистика о покупках в приложении, проведенных через магазины App Store (в iTunes) и Google Play. Также вы можете создавать дополнительные отчеты по электронной торговле, реализуя в приложениях рекомендованные нами события. Детальные отчеты о поведении покупателей (то есть отчеты о расширенной электронной торговле) в настоящее время доступны только для ресурсов Universal Analytics.
В этом документе описывается, как с помощью Менеджера тегов для мобильных приложений и Firebase SDK отправлять данные расширенной электронной торговли в ресурсы Universal Analytics.
Первые шаги
Выполните предварительную настройку приложения:
- Установите и настройте код Firebase и Google Менеджера тегов в своем приложении. Убедитесь, что вы используете Firebase SDK для Android версии 11 или выше.
Импортируйте эти два пакета:
import com.google.firebase.analytics.FirebaseAnalytics.Event;
import com.google.firebase.analytics.FirebaseAnalytics.Param;
В контейнере Менеджера тегов создайте пользовательскую переменную под названием "promotions" со следующими настройками:
- тип события: Custom Parameter;
- ключ параметра события: promotions;
- значение по умолчанию: undefined.
Реализация
В разделах ниже показывается, как регистрировать события с параметрами, необходимыми для отслеживания следующих действий расширенной электронной торговли:
- Показ товара
- Клик по товару или выбор товара
- Просмотр сведений о товаре
- Добавление в корзину
- Удаление из корзины
- Показ промоакции
- Клик по промоакции или выбор промоакции
- Оформление покупки
- Покупка
- Возврат средств
Показ товара
Чтобы отслеживать показы товаров, нужно регистрировать событие с параметром ITEM_LIST
для одного или нескольких товаров, определенных в соответствующих полях.
// Define products with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" );
product1.putLong( Param.INDEX, 1 ); // Position of the item in the list
Bundle product2 = new Bundle();
product2.putString( Param.ITEM_ID, "sku5678");
product2.putString( Param.ITEM_NAME, "Android Workout Capris");
product2.putString( Param.ITEM_CATEGORY, "Apparel/Women/Pants");
product2.putString( Param.ITEM_VARIANT, "Black");
product2.putString( Param.ITEM_BRAND, "Google");
product2.putDouble( Param.PRICE, 39.99 );
product2.putString( Param.CURRENCY, "USD" );
product2.putLong( Param.INDEX, 2 );
// Prepare ecommerce bundle
ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);
items.add(product2);
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );
// Set relevant bundle-level parameters
ecommerceBundle.putString( Param.ITEM_LIST, "Search Results" ); // List name
// Log view_search_results or view_item_list event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.VIEW_SEARCH_RESULTS, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Screen View.
- Поля, которые нужно задать (пример): screenName (название поля), Search Results Screen (значение поля).
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно view_search_results (см. Специальные > Некоторые события).
Клик по товару или выбор товара
Чтобы отслеживать клики по товару, нужно регистрировать событие SELECT_CONTENT
для товара, определенного в соответствующих полях.
// Define product with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.INDEX, 1 ); // Position of the item in the list
// Prepare ecommerce bundle
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );
// Set relevant action-level parameters
ecommerceBundle.putString( Param.ITEM_LIST, "Search Results" ); // Optional list name
// Log select_content event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.SELECT_CONTENT, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Event.
- Категория события (пример): Ecommerce.
- Действие события (пример): Product Click.
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно select_content И {{promotions}} равно undefined (см. Специальные > Некоторые события).
Просмотр сведений о товаре
Чтобы отслеживать просмотры сведений о товаре, нужно регистрировать событие VIEW_ITEM
для товара, определенного в соответствующих полях.
// Define product with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
// Prepare ecommerce bundle
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );
// Log view_item event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.VIEW_ITEM, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Screen View.
- Поля, которые нужно задать (пример): screenName (название поля), Product Details Screen (значение поля).
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно view_item И
- {{promotions}} равно undefined (см. Специальные > Некоторые события).
Добавление в корзину
Чтобы отслеживать добавление товара в корзину, нужно регистрировать событие ADD_TO_CART
для товара, определенного в соответствующих полях.
// Define product with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );
// Prepare ecommerce bundle
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );
// Log add_to_cart event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.ADD_TO_CART, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Event.
- Категория события (пример): Ecommerce.
- Действие события (пример): Add to Cart.
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно add_to_cart (см. Специальные > Некоторые события).
Удаление из корзины
Чтобы отслеживать удаление товара из корзины, нужно регистрировать событие REMOVE_FROM_CART
для товара, определенного в соответствующих полях.
// Define product with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );
// Prepare ecommerce bundle
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );
// Log remove_from_cart event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.REMOVE_FROM_CART, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Event.
- Категория события (пример): Ecommerce.
- Действие события (пример): Remove from Cart.
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно remove_from_cart (см. Специальные > Некоторые события).
Показ промоакции
Чтобы отслеживать показы промоакции, нужно регистрировать событие VIEW_ITEM
, VIEW_ITEM_LIST
или VIEW_SEARCH_RESULTS
для продвигаемого товара, определенного в соответствующих полях.
// Define promotion with relevant parameters
Bundle promotion = new Bundle();
promotion.putString( Param.ITEM_ID, "PROMO_1234" ); // promotion ID; either ITEM_ID or ITEM_NAME is required
promotion.putString( Param.ITEM_NAME, "Summer Sale" ); // promotion name
promotion.putString( Param.CREATIVE_NAME, "summer_banner2" );
promotion.putString( Param.CREATIVE_SLOT, "banner_slot1" );
// Prepare ecommerce bundle
ArrayList <bundle>promotions = new ArrayList<bundle>();
promotions.add(promotion);
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList("promotions", promotions );
// Log view_item, view_item_list, or view_search_results event with ecommerce bundle
mFirebaseAnalytics.logEvent(Event.VIEW_ITEM, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Event.
- Категория события (пример): Internal Promotion.
- Действие события (пример): Impression.
- Не взаимодействие: True.
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно view_item И
- {{promotions}} не равно undefined (см. Специальные > Некоторые события).
Клик по промоакции или выбор промоакции
Чтобы отслеживать клики по промоакции, нужно регистрировать событие SELECT_CONTENT
с промоакцией, определенной в соответствующих полях.
// Define promotion with relevant parameters
Bundle promotion = new Bundle();
promotion.putString( Param.ITEM_ID, "PROMO_1234"); // promotion ID; either ITEM_ID or ITEM_NAME is required
promotion.putString( Param.ITEM_NAME, "Summer Sale"); // promotion name
promotion.putString( Param.CREATIVE_NAME, "summer_banner2");
promotion.putString( Param.CREATIVE_SLOT, "banner_slot1");
// Prepare ecommerce bundle
ArrayList <bundle>promotions = new ArrayList<bundle>();
promotions.add(promotion);
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList("promotions", promotions );
// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
ecommerceBundle.putString( Param.CONTENT_TYPE, “Internal Promotions” );
ecommerceBundle.putString( Param.ITEM_ID, "PROMO_1234" );
// Log select_content, view_item_list, or view_search_results event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.SELECT_CONTENT, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Event.
- Категория события (пример): Internal Promotion.
- Действие события (пример): Click.
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно select_content И {{promotions}} не равно undefined (см. Специальные > Некоторые события).
Оформление покупки
Начало оформления покупки
Чтобы отслеживать выполнение первого шага в процессе оформления покупки, нужно регистрировать событие BEGIN_CHECKOUT
для одного или нескольких товаров, определенных в соответствующих полях.
// Define products with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );
// Prepare ecommerce bundle
ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );
// Set checkout step and optional checkout option
ecommerceBundle.putLong( Param.CHECKOUT_STEP, 1 ); // Optional for first step
ecommerceBundle.putString( Param.CHECKOUT_OPTION, "Visa" ); // Optional
// Log BEGIN_CHECKOUT event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.BEGIN_CHECKOUT, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Screen View.
- Поля, которые необходимо задать (пример): screenName (название поля), Cart Screen (значение поля).
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно begin_checkout (см. Специальные > Некоторые события).
Дополнительные шаги
Чтобы отслеживать дополнительные шаги покупки, нужно регистрировать событие CHECKOUT_PROGRESS
для одного или нескольких товаров, определенных в соответствующих полях.
// Define products with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );
// Prepare ecommerce bundle
ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );
// Set checkout step and optional checkout option
ecommerceBundle.putLong( Param.CHECKOUT_STEP, 2 );
ecommerceBundle.putString( Param.CHECKOUT_OPTION, "Visa" ); // Optional
// Log CHECKOUT_PROGRESS event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.CHECKOUT_PROGRESS, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Screen View.
- Поля, которые нужно задать (пример): screenName (название поля), Checkout Step 2 Screen (значение поля).
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно checkout_progress (см. Специальные > Некоторые события).
Параметры покупки
Эти параметры позволяют получать дополнительную информацию о процессе оформления покупки. Их можно отслеживать в рамках этапа оформления покупки (как показано в примере выше) или после него, при выборе этих параметров пользователем.
Чтобы отслеживать параметры покупки, нужно регистрировать событие SET_CHECKOUT_OPTION
с соответствующими параметрами CHECKOUT_STEP
и CHECKOUT_OPTION
.
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putLong( Param.CHECKOUT_STEP, 2 );
ecommerceBundle.putString( Param.CHECKOUT_OPTION, "Mastercard" );
mFirebaseAnalytics.logEvent( Event.SET_CHECKOUT_OPTION, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Event.
- Категория события (пример): Ecommerce.
- Действие события (пример): Set Checkout Option.
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно set_checkout_option (см. Специальные > Некоторые события).
Покупка
Чтобы отслеживать покупки, нужно регистрировать событие ECOMMERCE_PURCHASE
для одного или нескольких товаров, определенных в соответствующих полях.
// Define product with relevant parameters
Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );
Bundle product2 = new Bundle();
product2.putString( Param.ITEM_ID, "sku5678");
product2.putString( Param.ITEM_NAME, "Android Workout Capris");
product2.putString( Param.ITEM_CATEGORY, "Apparel/Women/Pants");
product2.putString( Param.ITEM_VARIANT, "Black");
product2.putString( Param.ITEM_BRAND, "Google");
product2.putDouble( Param.PRICE, 39.99 );
product2.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product2.putLong( Param.QUANTITY, 1 );
// Prepare ecommerce bundle
ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);
items.add(product2);
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );
// Set relevant transaction-level parameters
ecommerceBundle.putString( Param.TRANSACTION_ID, "T12345" );
ecommerceBundle.putString( Param.AFFILIATION, "Google Store - Online" );
ecommerceBundle.putDouble( Param.VALUE, 37.39 ); // Revenue
ecommerceBundle.putDouble( Param.TAX, 2.85 );
ecommerceBundle.putDouble( Param.SHIPPING, 5.34 );
ecommerceBundle.putString( Param.CURRENCY, "USD" );
ecommerceBundle.putString( Param.COUPON, "SUMMER2017" );
// Log ecommerce_purchase event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.ECOMMERCE_PURCHASE, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Screen View.
- Поля, которые нужно задать (пример): screenName (название поля), Thank You Screen (значение поля).
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно ecommerce_purchase (см. Специальные > Некоторые события).
Возврат средств
Чтобы отслеживать возвраты средств, нужно регистрировать событие PURCHASE_REFUND
с соответствующим идентификатором транзакции. Также можно отслеживать частичные возвраты для одного или нескольких товаров, указывая их идентификаторы и количество.
// Prepare ecommerce bundle with transaction ID to be refunded
Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putString( Param.TRANSACTION_ID, "T12345" ); // Required
ecommerceBundle.putDouble( Param.VALUE, 37.39 ); // Optional in Universal Analytics
// (OPTIONAL) For partial refunds, define the item IDs and quantities of products being refunded
Bundle refundedProduct = new Bundle();
refundedProduct.putString( Param.ITEM_ID, "sku1234" ); // Required for partial refund
refundedProduct.putLong( Param.QUANTITY, 1 ); // Required for partial refund
ArrayList <bundle>items = new ArrayList<bundle>();
items.add(refundedProduct);
ecommerceBundle.putParcelableArrayList( "items", items );
// Log purchase_refund event with ecommerce bundle
mFirebaseAnalytics.logEvent( Event.PURCHASE_REFUND, ecommerceBundle );
Конфигурация тега
- Тип тега: Universal Analytics.
- Тип отслеживания: Event.
- Категория события (пример): Ecommerce.
- Действие события (пример): Refund.
- Включить функции расширенной электронной торговли: True.
- Источник данных: Firebase Event.
- Триггер (пример): Event Name равно purchase_refund (см. Специальные > Некоторые события).