В этом руководстве описывается, как реализовать функции расширенной электронной торговли Universal Analytics с помощью SDK Google Tag Manager для Android.
Обзор
Расширенная электронная торговля Google Analytics позволяет отправлять данные о показах, рекламных акциях и продажах продуктов вместе с любыми вашими просмотрами экрана и событиями Google Analytics.
Прежде чем вы начнете
Мы рекомендуем просмотреть раздел «Типы данных и действия расширенной электронной торговли» Руководства для разработчиков расширенной электронной торговли Google Analytics (Интернет), чтобы помочь вам спланировать внедрение. Руководство поможет вам понять, какие поля являются обязательными и необязательными для каждого взаимодействия электронной торговли, которое вы хотите измерить.
Выполнение
В следующих разделах показано, как использовать уровень данных для измерения следующих расширенных действий электронной коммерции:
- Впечатления о продукте
- Клики по продуктам/выборы
- Подробные впечатления о продукте
- Добавить/Удалить из корзины
- Рекламные показы
- Клики/выборы по продвижению
- Проверить
- Покупки
- Возвраты
Измерение впечатлений от продукта
- Измерение электронной торговли:
impressions
- Принимает данные: массив
impressionFieldObjects
.
Измеряйте показы продукта с помощью действия impression
и одного или нескольких impressionFieldObjects
. В следующем примере предполагается, что сведения об отображаемых продуктах известны на момент отображения экрана:
// Product impressions are sent by pushing an impressions object // containing one or more impressionFieldObjects. dataLayer.push("ecommerce", DataLayer.mapOf( "currencyCode", "EUR", // Local currency is optional. "impressions", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "list", "Search Results", "position", 1), DataLayer.mapOf( "name", "Donut Friday Scented T-Shirt", "id", "67890", "price", "33.75", "brand", "Google", "category", "Apparel", "variant", "Black", "list", "Search Results", "position", 2))));
Измерение кликов/выборов продуктов
- Измерение электронной торговли:
click
- Принимает данные:
list
, массивproductFieldObjects
.
Измерьте выбор продуктов, перенеся действие click
на уровень данных вместе с productFieldObject
, представляющим выбранный продукт:
dataLayer.pushEvent("productClick", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "click", DataLayer.mapOf( "actionField", DataLayer.mapOf( "list", "Search Results"), // Optional list property. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray"))))));
Измерительные виды деталей продукта
- Измерение электронной торговли:
detail
- Принимает данные:
list
, массивproductFieldObjects
.
Измерьте представление сведений о продукте, переместив действие detail
на уровень данных вместе с одним или несколькими productFieldObjects
, представляющими просматриваемые продукты:
// Measure a view of product details. dataLayer.push("ecommerce", DataLayer.mapOf( "detail", DataLayer.mapOf( "actionField", DataLayer.mapOf( "list", "Apparel Gallery"), // detail actions have an optional list property. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray")))));
Измерение добавлений или удалений из корзины покупок
- Измерение электронной торговли:
add
,remove
- Принимает данные:
list
, массивproductFieldObjects
.
Измеряйте добавление или удаление из корзины покупок с помощью add
или remove
actionFieldObject
и списка productFieldObjects
:
Добавление товара в корзину
// Measure adding a product to a shopping cart by using an "add" // actionFieldObject and a list of productFieldObjects. dataLayer.pushEvent("addToCart", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "currencyCode", "EUR", "add", DataLayer.mapOf( // 'add' actionFieldObject measures. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1))))));
Удаление товара из корзины
// Measure the removal of a product from a shopping cart. dataLayer.pushEvent("removeFromCart", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "remove", DataLayer.mapOf( // 'remove' actionFieldObject measures. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1))))));
Измерение продвижения
Вы можете измерять как показы, так и выбор во внутренних рекламных акциях приложения, таких как баннеры, отображаемые в приложении для рекламы распродажи определенного набора продуктов или предложения бесплатной доставки.
Измерение впечатлений от промоакций
- Измерение электронной торговли:
promoView
- Принимает данные: массив
promoFieldObjects
.
Чтобы измерить показ рекламной акции, задайте для ключа promoView
на уровне данных электронной торговли значение promoFieldObject
, который описывает рекламные акции, отображаемые пользователям на экране:
// An example of measuring promotion views. This example assumes that // information about the promotions displayed is available when the screen is // displayed. dataLayer.push("ecommerce", DataLayer.mapOf( "promoView", DataLayer.mapOf( "promotions", DataLayer.listOf( // List of promoFieldObjects. DataLayer.mapOf( "id", "JUNE_PROMO13", // ID or Name is required. "name", "June Sale", "creative", "banner1", "position", "slot1"), DataLayer.mapOf( "id", "FREE_SHIP13", "name", "Free Shipping Promo", "creative", "skyscraper1", "position", "slot2")))));
Измерение кликов/выборов по промоакции
Чтобы измерить выбор рекламной акции, переместите действие promoClick
на уровень данных с массивом, содержащим promoFieldObject
описывающий выбранную рекламную акцию:
dataLayer.pushEvent("promotionClick", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "promoClick", DataLayer.mapOf( "promotions", DataLayer.listOf( DataLayer.mapOf( "id", "JUNE_PROMO13", // Name or ID is required. "name", "June Sale", "creative", "banner1", "position", "slot1"))))));
Измерение кассы
Чтобы измерить каждый шаг процесса оформления заказа, вам необходимо:
- Измеряйте каждый шаг процесса оформления заказа с помощью действия
checkout
. - Если применимо, измерьте параметры оформления заказа с помощью действия
checkout_option
. - При необходимости задайте удобные названия шагов для отчета о воронке оформления заказа, настроив параметры электронной торговли в разделе «Администратор» веб-интерфейса.
1. Измерение этапов оформления заказа
- Измерение электронной торговли:
checkout
- Принимает данные:
step
, массивproductFieldObjects
.
Чтобы измерить процесс оформления заказа, который может включать кнопку оформления заказа и один или несколько экранов оформления заказа, на которых пользователи вводят информацию о доставке и оплате, используйте действие checkout
и поле step
, чтобы указать, какой этап процесса оформления заказа измеряется. Вы также можете использовать поле option
, чтобы предоставить часть дополнительных данных о процессе оформления заказа, например, тип оплаты, выбранный пользователем.
dataLayer.pushEvent("checkout", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "checkout", DataLayer.mapOf( "actionField", DataLayer.mapOf( "step", 1, "option", "Visa"), "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1))))));
2. Измерение параметров оформления заказа
- Измерение электронной торговли:
checkout_option
- Принимает данные:
step
,option
Опция оформления заказа полезна в тех случаях, когда вы уже измерили этап оформления заказа, но хотите получить дополнительную информацию об этом этапе оформления заказа. Например, способ доставки, выбранный пользователем. Чтобы измерить это, используйте действие checkout_option
вместе с полями step
и option
.
dataLayer.pushEvent("checkoutOption", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "checkout_option", DataLayer.mapOf( "products", DataLayer.listOf(), // checkout_option expects a list of products. The workaround is to provide an empty list. "actionField", DataLayer.mapOf( "step", 1, "option", "Express")))));
3. Конфигурация воронки оформления заказа
При желании каждому шагу процесса оформления заказа можно присвоить описательное имя, которое будет использоваться в отчетах. Чтобы настроить эти имена, посетите раздел «Администратор » веб-интерфейса Google Analytics, выберите представление (профиль) и нажмите «Настройки электронной торговли» . Следуйте инструкциям по настройке электронной торговли, чтобы пометить каждый этап оформления заказа, который вы хотите отслеживать.
Измерение покупок
- Измерение электронной торговли:
purchase
- Принимает данные:
id
(идентификатор транзакции), массивproductFieldObjects
Перенесите сведения о своей транзакции на уровень данных с помощью действия purchase
вместе с event
, которое активирует расширенный тег с поддержкой электронной коммерции. В этом примере детали транзакции известны на момент отображения экрана:
// Send transaction data with a screenview if possible. // Otherwise, use an event when the transaction data becomes available. dataLayer.push("ecommerce", DataLayer.mapOf( "purchase", DataLayer.mapOf( "actionField", DataLayer.mapOf( "id", "T12345", // Transaction ID. Required for purchases and refunds. "affiliation", "Online Store", "revenue", "35.43", // Total transaction value (incl. tax and shipping) "tax", "4.90", "shipping", "5.99", "coupon", "SUMMER_SALE"), "products", DataLayer.listOf( // List of productFieldObjects. DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1, "coupon", ""), // Optional fields may be omitted or set to empty string. DataLayer.mapOf( "name", "Donut Friday Scented T-Shirt", "id", "67890", "price", "33.75", "brand", "Google", "category", "Apparel", "variant", "Black", "quantity", 1)))));
Измерение возвратов
- Отслеживание электронной торговли:
refund
- Принимает данные:
id
(идентификатор транзакции), массивproductFieldObjects
Чтобы измерить полный возврат транзакции, отправьте refund
actionFieldObject
вместе с идентификатором возвращаемой транзакции:
// Refund an entire transaction by providing the transaction ID. This example // assumes the details of the completed refund are available when the screen // is displayed. dataLayer.push("ecommerce", DataLayer.mapOf( "refund", DataLayer.mapOf( "products", DataLayer.listOf(), // refund expects a list of products. The workaround is to provide an empty list. "actionField", DataLayer.mapOf( "id", "T12345")))); // Transaction ID. Required for refunds.
Чтобы измерить частичный возврат средств , добавьте список productFieldObjects
, включая идентификаторы продуктов и возвращаемые количества:
// Measure a partial refund by providing an array of productFieldObjects and // specifying the ID and quantity of each product being returned. This example // assumes the partial refund details are known at the time the screen is // displayed: dataLayer.push("ecommerce", DataLayer.mapOf( "refund", DataLayer.mapOf( "products", DataLayer.listOf( DataLayer.mapOf( "id", "P4567", "quantity", 1), // Product ID & quantity. Required for partial refunds. DataLayer.mapOf( "id", "P8901", "quantity", 2)), "actionField", DataLayer.mapOf( "id", "T12345")))); // Transaction ID.
Объединение впечатлений и действий
В тех случаях, когда у вас есть и показы продукта, и действие, их можно объединить и измерить в одном обращении.
В приведенном ниже примере показано, как измерить подробное представление о продукте с помощью показов продукта из раздела сопутствующих продуктов:
dataLayer.push("ecommerce", DataLayer.mapOf( "impressions", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "list", "Related Products", "position", 1), DataLayer.mapOf( "name", "Donut Friday Scented T-Shirt", "id", "67890", "price", "33.75", "brand", "Google", "category", "Apparel", "variant", "Black", "list", "Related Products", "position", 2)), "detail", DataLayer.mapOf( "actionField", DataLayer.mapOf( "list", "Apparel Gallery"), // 'detail' actions have an optional list property. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray")))));