Android 4 – расширенная электронная торговля

В этом руководстве описывается, как реализовать функции расширенной электронной торговли 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"))))));

Измерение кассы

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

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

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

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

Измерение покупок

  • Измерение электронной торговли: 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")))));