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

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

Обзор

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

Реализация

Для отслеживания расширенной электронной торговли необходимо использовать класс HitBuilder и его набор методов. С их помощью вы будете отправлять данные о товарах, показах и рекламных акциях в Google Analytics. Также доступны классы 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());

Объединение показов и действий

Показы и действие можно отправить вместе в одном обращении.

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

// Товар из раздела сопутствующих товаров.
Product relatedProduct =  new Product()
    .setId("P12346")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("White")
    .setPosition(1);

// Просматриваемый товар.
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. Полный список валют, конвертация которых поддерживается в Google Analytics, можно найти в Справке по кодам валют.

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

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("transaction");
t.set("&cu", "EUR");  // Выбор евро в качестве валюты счетчика.
t.send(builder.build());

Отслеживание возвратов

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

// Возврат полной суммы транзакции.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Идентификатор транзакции – единственное обязательное поле для осуществления полного возврата.
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, чтобы указать идентификатор транзакции, а также идентификаторы и количество возвращаемых товаров:

// Возврат стоимости одного товара.
Product product =  new Product()
    .setId("P12345")  // Для частичного возврата требуется указать идентификатор товара.
    .setQuantity(1);  // Для частичного возврата требуется указать количество товара.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Для частичного возврата требуется указать идентификатор транзакции.
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());

Отслеживание событий без взаимодействия в качестве возвратов

Если событие, с которым связан возврат, не является взаимодействием (т. е. не инициируется пользователем), рекомендуем создать событие типа "Не взаимодействие". Благодаря этому событие не будет влиять на некоторые показатели. Пример:

// Возврат полной суммы транзакции.
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 – например, способ оплаты по умолчанию, выбранный пользователем (допустим, кредитная карта Visa).

Отслеживание на этапе оформления покупки

Используйте метод addProduct с объектом Product, чтобы добавить данные о товаре, и метод setProductAction с объектом ProductAction, чтобы указать действие типа checkout. При необходимости вы также можете задать шаг 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);
// Добавление к действию номера этапа и дополнительной информации о процессе оформления покупки.
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. Включена электронная торговля и добавлены четыре этапа оформления покупки: 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. Метод setProductAction с объектом ProductAction будет указывать на клик по рекламе. Пример:

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

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