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

В этом документе представлен обзор того, как измерять действия и показы, связанные с электронной торговлей в приложениях, с помощью Google Analytics SDK v4 для Android.

Обзор

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

Выполнение

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

Благодаря расширенной электронной торговле вы можете:

Измерение деятельности электронной коммерции

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

  • Выбор продукта.
  • Просмотр сведений о продукте.
  • Впечатления и подборка внутренних акций.
  • Добавление/удаление товара из корзины.
  • Запуск процесса оформления заказа на товар.
  • Покупки и возврат средств.

Измерение показов

Чтобы измерить впечатление от продукта, создайте объект Product и отправьте его вместе с обращением с помощью метода addImpression . Product должен иметь имя или значение идентификатора. Все остальные значения являются необязательными и не требуют установки.

Product product = new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1)
    .setCustomDimension(1, "Member");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addImpression(product, "Search Results");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("searchResults");
t.send(builder.build());

Подробную информацию о методе getTracker см. в разделе «Расширенная настройка» .

Измерительные действия

Действия измеряются с помощью метода addProduct с объектом Product для добавления сведений о продукте и метода setProductAction с объектом ProductAction для указания выполняемого действия.

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

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1)
    .setCustomDimension(1, "Member");
ProductAction productAction = new ProductAction(ProductAction.ACTION_CLICK)
    .setProductActionList("Search Results");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("searchResults");
t.send(builder.build());

Объединение впечатлений и действий

В тех случаях, когда у вас есть и показы продукта, и действие, их можно объединить и измерить в одном обращении.

В приведенном ниже примере показано, как измерить подробное представление о продукте с помощью раздела сопутствующих продуктов:

// The product from a related products section.
Product relatedProduct =  new Product()
    .setId("P12346")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("White")
    .setPosition(1);

// The product being viewed.
Product viewedProduct =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1);

ProductAction productAction = new ProductAction(ProductAction.ACTION_DETAIL);
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addImpression(relatedProduct, "Related Products")
    .addProduct(viewedProduct)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("product");
t.send(builder.build());

Измерение транзакций

Измерьте транзакцию, используя метод addProduct с объектом Product , чтобы добавить сведения о продукте, и метод setProductAction с объектом ProductAction , чтобы указать действие покупки. Подробности уровня транзакции, такие как общий доход, налоги и доставка, предоставляются в объекте ProductAction .

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("black")
    .setPrice(29.20)
    .setCouponCode("APPARELSALE")
    .setQuantity(1);
ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T12345")
    .setTransactionAffiliation("Google Store - Online")
    .setTransactionRevenue(37.39)
    .setTransactionTax(2.85)
    .setTransactionShipping(5.34)
    .setTransactionCouponCode("SUMMER2013");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("transaction");
t.send(builder.build());

Указание валюты

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

Местная валюта должна быть указана в стандарте ISO 4217 . Прочтите Справочный документ по кодам валют, чтобы получить полный список поддерживаемых валют конвертации.

Местные валюты указываются с помощью свойства трекераcururityCode. Например, этот трекер будет отправлять значения валют в евро:

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("transaction");
t.set("&cu", "EUR");  // Set tracker currency to Euros.
t.send(builder.build());

Измерение возвратов

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

// Refund an entire transaction.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Transaction ID is only required field for a full refund.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("refund");
t.send(builder.build());

Если соответствующая транзакция не найдена, возврат не будет обработан.

Чтобы измерить частичный возврат, используйте метод setProductAction с объектом ProductAction , чтобы указать идентификатор транзакции, идентификаторы продуктов и количества продуктов, подлежащих возврату:

// Refund a single product.
Product product =  new Product()
    .setId("P12345")  // Product ID is required for partial refund.
    .setQuantity(1);  // Quanity is required for partial refund.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Transaction ID is required for partial refund.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("refundProduct");
t.send(builder.build());

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

Если вам нужно отправить данные о возврате с помощью события, и это событие не является частью обычно измеряемого поведения пользователя (т. е. не инициируется пользователем), рекомендуется отправить событие отсутствия взаимодействия . Это предотвратит влияние события на определенные показатели. Например:

// Refund an entire transaction.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setProductAction(productAction)
    .setNonInteraction(true)
    .setCategory("Ecommerce")
    .setAction("Refund");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());

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

Чтобы измерить каждый шаг процесса оформления заказа:

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

1. Измерение этапов оформления заказа

На каждом этапе процесса оформления заказа вам необходимо внедрить соответствующий код отслеживания для отправки данных в Google Analytics.

Step шага

Для каждого измеряемого шага оформления заказа необходимо указать значение step . Это значение используется для сопоставления ваших действий при оформлении заказа с метками, которые вы настроили для каждого шага в настройках электронной торговли .

Поле Option

Если у вас есть дополнительная информация о данном этапе оформления заказа на момент измерения этого шага, вы можете установить поле option с действием checkout для сбора этой информации. Например, тип оплаты по умолчанию для пользователя (например, «Виза»).

Измерение этапа оформления заказа

Чтобы измерить этап оформления заказа, используйте метод addProduct с объектом Product , чтобы добавить сведения о продукте, и метод setProductAction с объектом ProductAction , чтобы указать действие оформления заказа. Если применимо, вы также можете установить step и option при оформлении заказа.

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

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("black")
    .setPrice(29.20)
    .setQuantity(1);
// Add the step number and additional info about the checkout to the action.
ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT)
    .setCheckoutStep(1)
    .setCheckoutOptions("Visa");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("checkoutStep1");
t.send(builder.build());

2. Измерение параметров оформления заказа

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

Чтобы измерить вариант оформления заказа, используйте setAction , чтобы указать вариант оформления заказа и включить номер шага и описание параметра.

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

// (On "Next" button click.)
ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT_OPTIONS)
    .setCheckoutStep(1)
    .setCheckoutOptions("FedEx");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setProductAction(productAction)
    .setCategory("Checkout")
    .setAction("Option");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());

// Advance to next page.

3. Конфигурация воронки оформления заказа

Каждому шагу процесса оформления заказа можно дать описательное имя, которое будет использоваться в отчетах. Чтобы настроить эти имена, посетите раздел «Администратор» веб-интерфейса Google Analytics, выберите представление (профиль) и нажмите « Настройки электронной торговли» . Следуйте инструкциям по настройке электронной торговли, чтобы пометить каждый этап оформления заказа, который вы хотите отслеживать.

Настройки электронной торговли в разделе «Администратор» веб-интерфейса Google Analytics. Включена электронная торговля и добавлены 4 метки этапов воронки оформления заказа: 1. Обзор корзины, 2. Сбор информации о платеже, 3. Подтверждение деталей покупки, 4. Квитанция.
Рисунок 1. Настройка электронной торговли — воронка оформления заказа

Измерение внутреннего продвижения

Расширенная электронная торговля включает поддержку измерения показов и кликов по внутренним рекламным акциям, например баннерам, рекламирующим продажи.

Рекламные показы

Показы внутренней рекламной акции обычно измеряются при первом просмотре экрана с использованием метода addPromotion с объектом Promotion для указания подробностей рекламной акции. Например:

Promotion promotion = new Promotion()
    .setId("PROMO_1234")
    .setName("Summer Sale")
    .setCreative("summer_banner2")
    .setPosition("banner_slot1");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addPromotion(promotion);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("promotions");
t.send(builder.build());

Клики по продвижению

Клики по внутренним рекламным акциям можно измерить с помощью метода addPromotion с объектом Promotion и метода setPromotionAction , для которого установлено значение Promotion.ACTION_CLICK или Promotion.ACTION_VIEW , чтобы указать клик или просмотр рекламной акции соответственно. Например:

Promotion promotion = new Promotion()
    .setId("PROMO_1234")
    .setName("Summer Sale")
    .setCreative("summer_banner2")
    .setPosition("banner_slot1");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .addPromotion(promotion)
    .setPromotionAction(Promotion.ACTION_CLICK)
    .setCategory("Internal Promotions")
    .setAction("click")
    .setLabel("Summer Sale");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());