Отправка ECommerce-событий на Flutter
В AppMetrica нет возможности сегментировать ECommerce-события на "тестовые" и "не тестовые". Если для отладки покупок вы используете основной API key, то тестовые события будут попадать в общую статистику. Поэтому, чтобы отладить отправку ECommerce-событий, используйте отправку статистики на дополнительный API key с помощью репортера.
Подробнее о работе репортера в разделе Примеры использования.
Шаг 1. Создайте тестовое приложение в AppMetrica
Заполните параметры приложения: ссылка в магазине приложений (если приложение еще не опубликовано — оставьте поле пустым), название, категория, часовой пояс для построения отчетов.
Чтобы добавить еще одно приложение, нажмите кнопку Добавить приложение в выпадающем списке в интерфейсе AppMetrica.
Шаг 2. Настройте отправку ECommerce-событий на тестовый API key
Для различных действий пользователя есть соответствующие типы ECommerce-событий. Чтобы создать конкретный тип события, используйте нужный метод класса ECommerce
.
Ниже приведены примеры отправки конкретных типов событий.
Открытие страницы
Map<String, String> payload = {
"configuration": "landscape",
"full_screen": "true",
};
// Creating a screen object.
ECommerceScreen screen = ECommerceScreen(
name: "ProductCardActivity", // Optional.
searchQuery: "даниссимо кленовый сироп", // Optional.
payload: payload, // Optional.
categoriesPath: ["Акции","Красная цена"] // Optional.
);
ECommerceEvent showScreenEvent = ECommerce.showScreenEvent(screen);
// Sending an e-commerce event.
AppMetrica.getReporter("Testing API key").reportECommerce(showScreenEvent);
Просмотр карточки товара
Map<String, String> payload = {
"configuration": "landscape",
"full_screen": "true"
};
// Creating a screen object.
ECommerceScreen screen = ECommerceScreen(
name: "ProductCardActivity", // Optional.
searchQuery: "даниссимо кленовый сироп", // Optional.
payload: payload, // Optional.
categoriesPath: ["Акции","Красная цена"] // Optional.
);
ECommerceAmount amount = ECommerceAmount(amount: Decimal.parse('4.53'), currency: "USD");
// Creating an actualPrice object.
ECommercePrice actualPrice = ECommercePrice(fiat: amount,
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30_570_000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),
]);
// Creating an originalPrice object.
ECommercePrice originalPrice = ECommercePrice(fiat: ECommerceAmount(amount: Decimal.parse('5.78'), currency: "USD"),
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30570000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),
]);
// Creating a product object.
ECommerceProduct product = ECommerceProduct(
sku: "779213",
name: "Продукт творожный «Даниссимо» 5.9%, 130 г.", // Optional.
actualPrice: actualPrice, // Optional.
originalPrice: originalPrice, // Optional.
promocodes: ["BT79IYX", "UT5412EP"], // Optional.
payload: payload, // Optional.
categoriesPath: ["Продукты", "Молочные продукты", "Йогурты"] // Optional.
);
ECommerceEvent showProductCardEvent = ECommerce.showProductCardEvent(product, screen);
// Sending an e-commerce event.
AppMetrica.getReporter("Testing API key").reportECommerce(showProductCardEvent);
Просмотр страницы товара
Map<String, String> payload = {
"configuration": "landscape",
"full_screen": "true"
};
// Creating a screen object.
ECommerceScreen screen = ECommerceScreen(
name: "ProductCardActivity", // Optional.
searchQuery: "даниссимо кленовый сироп", // Optional.
payload: payload, // Optional.
categoriesPath: ["Акции","Красная цена"] // Optional.
);
ECommerceAmount amount = ECommerceAmount(amount: Decimal.parse('4.53'), currency: "USD");
// Creating an actualPrice object.
ECommercePrice actualPrice = ECommercePrice(fiat: amount,
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30_570_000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),
]);
// Creating an originalPrice object.
ECommercePrice originalPrice = ECommercePrice(fiat: ECommerceAmount(amount: Decimal.parse('5.78'), currency: "USD"),
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30570000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),`
]);
// Creating a product object.
ECommerceProduct product = ECommerceProduct(
sku: "779213",
name: "Продукт творожный «Даниссимо» 5.9%, 130 г.", // Optional.
actualPrice: actualPrice, // Optional.
originalPrice: originalPrice, // Optional.
promocodes: ["BT79IYX", "UT5412EP"], // Optional.
payload: payload, // Optional.
categoriesPath: ["Продукты", "Молочные продукты", "Йогурты"] // Optional.
);
ECommerceEvent showProductDetailsEvent = ECommerce.showProductDetailsEvent(product, screen);
// Sending an e-commerce event.
AppMetrica.getReporter("Testing API key").reportECommerce(showProductDetailsEvent);
Добавление или удаление товара из корзины
Map<String, String> payload = {
"configuration": "landscape",
"full_screen": "true"
};
// Creating a screen object.
ECommerceScreen screen = ECommerceScreen(
name: "ProductCardActivity", // Optional.
searchQuery: "даниссимо кленовый сироп", // Optional.
payload: payload, // Optional.
categoriesPath: ["Акции","Красная цена"] // Optional.
);
ECommerceAmount amount = ECommerceAmount(amount: Decimal.parse('4.53'), currency: "USD");
// Creating an actualPrice object.
ECommercePrice actualPrice = ECommercePrice(fiat: amount,
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30570000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),
]);
// Creating an originalPrice object.
ECommercePrice originalPrice = ECommercePrice(fiat: ECommerceAmount(amount: Decimal.parse('5.78'), currency: "USD"),
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30570000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),
]);
// Creating a product object.
ECommerceProduct product = ECommerceProduct(
sku: "779213",
name: "Продукт творожный «Даниссимо» 5.9%, 130 г.", // Optional.
actualPrice: actualPrice, // Optional.
originalPrice: originalPrice, // Optional.
promocodes: ["BT79IYX", "UT5412EP"], // Optional.
payload: payload, // Optional.
categoriesPath: ["Продукты", "Молочные продукты", "Йогурты"] // Optional.
);
ECommerceReferrer referrer = ECommerceReferrer(
type: "button", // Optional.
identifier: "76890", // Optional.
screen: screen // Optional.
);
// Creating a cartItem object.
ECommerceCartItem addedItems1 = ECommerceCartItem(
product: product,
revenue: actualPrice,
quantity: Decimal.parse("1.0"),
referrer: referrer // Optional.
);
ECommerceEvent addCartItemEvent = ECommerce.addCartItemEvent(addedItems1);
// Sending an e-commerce event.
AppMetrica.getReporter("Testing API key").reportECommerce(addCartItemEvent);
ECommerceEvent removeCartItemEvent = ECommerce.removeCartItemEvent(addedItems1);
// Sending an e-commerce event.
AppMetrica.getReporter("Testing API key").reportECommerce(removeCartItemEvent);
Начало оформления и завершение покупки
Map<String, String> payload = {
"configuration": "landscape",
"full_screen": "true"
};
// Creating a screen object.
ECommerceScreen screen = ECommerceScreen(
name: "ProductCardActivity", // Optional.
searchQuery: "даниссимо кленовый сироп", // Optional.
payload: payload, // Optional.
categoriesPath: ["Акции","Красная цена"] // Optional.
);
ECommerceAmount amount = ECommerceAmount(amount: Decimal.parse('4.53'), currency: "USD");
// Creating an actualPrice object.
ECommercePrice actualPrice = ECommercePrice(fiat: amount,
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30570000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),
]);
// Creating an originalPrice object.
ECommercePrice originalPrice = ECommercePrice(fiat: ECommerceAmount(amount: Decimal.parse('5.78'), currency: "USD"),
internalComponents: [ // Optional.
ECommerceAmount(amount: Decimal.parse('30570000'), currency: "wood"),
ECommerceAmount(amount: Decimal.parse('26.89'), currency: "iron"),
ECommerceAmount(amount: Decimal.parse('5.1'), currency: "gold"),
]);
// Creating a product object.
ECommerceProduct product = ECommerceProduct(
sku: "779213",
name: "Продукт творожный «Даниссимо» 5.9%, 130 г.", // Optional.
actualPrice: actualPrice, // Optional.
originalPrice: originalPrice, // Optional.
promocodes: ["BT79IYX", "UT5412EP"], // Optional.
payload: payload, // Optional.
categoriesPath: ["Продукты", "Молочные продукты", "Йогурты"] // Optional.
);
ECommerceReferrer referrer = ECommerceReferrer(
type: "button", // Optional.
identifier: "76890", // Optional.
screen: screen // Optional.
);
// Creating a cartItem object.
ECommerceCartItem addedItems1 = ECommerceCartItem(
product: product,
revenue: actualPrice,
quantity: Decimal.parse("1.0"),
referrer: referrer // Optional.
);
// Creating an order object.
ECommerceOrder order = ECommerceOrder(
identifier: "88528768",
items:[addedItems1],
payload: payload // Optional.
);
ECommerceEvent beginCheckoutEvent = ECommerce.beginCheckoutEvent(order);
// Sending an e-commerce event.
AppMetrica.getReporter("Testing API key").reportECommerce(beginCheckoutEvent);
ECommerceEvent purchaseEvent = ECommerce.purchaseEvent(order);
// Sending an e-commerce event.
AppMetrica.getReporter("Testing API key").reportECommerce(purchaseEvent);
Шаг 3. Проверьте отчет тестового приложения
Совершите тестовые покупки в приложении. Через некоторое время в интерфейсе AppMetrica проверьте отчет "Анализ покупок". Убедитесь, что ECommerce-события отображаются в отчете.
Подробнее об отчете в разделе Анализ покупок.
Шаг 4. Настройте отправку ECommerce на основной API Key
После успешного тестирования настройте отправку ECommerce-событий на основной API key.
Чтобы отправить объект ECommerceEvent
на основной API key, используйте метод AppMetrica.reportECommerce(ECommerceEvent event);
:
// ...
// Sending an e-commerce event.
AppMetrica.reportECommerce(ecommerceEvent);
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.