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

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

Обзор

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

Реализация

Для отслеживания расширенной электронной торговли необходимо использовать класс HitBuilder и его набор методов. С их помощью вы будете отправлять данные о товарах, показах и рекламных акциях в Google Аналитику. Также доступны классы Google Аналитики для обычной электронной торговли.

Поддерживаются следующие виды отслеживания:

Отслеживание коммерческой активности

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

  • выбор товара;
  • просмотр информации о товаре;
  • показы и клики по внутренней рекламе;
  • добавление в корзину покупок и удаление из нее;
  • переход к оформлению покупки;
  • покупки и возвраты.

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

Создайте объект 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 Аналитики.

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

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

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):

// 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 Аналитику вам нужно будет установить соответствующий код отслеживания на каждом шаге оформления покупки.

Поле 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);
// 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 Аналитике, выберите нужное представление (профиль) и перейдите в раздел Настройки электронной торговли. Присвойте название каждому этапу в последовательности покупки, следуя инструкциям для обычной электронной торговли.

Настройки электронной торговли в административном разделе веб-интерфейса 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 и метод 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());