Методы по работе с sdk
Включение автоматической отправки данных
Kotlin
Java
Kraken.enableActivityAutoTracking()
Kraken.enableActivityAutoTracking();
Отключение автоматической отправки данных
Kotlin
Java
Kraken.disableActivityAutoTracking()
Kraken.disableActivityAutoTracking();
Данные методы можно вызывать в любых классах и активностях приложения
Если передается настройка Kraken.activateAutoTracking(this), то запуск активностей в первый раз фиксируется автоматически. Если необходимо самостоятельно фиксировать просмотр экрана, то можно воспользоваться отдельным методом.
Для ручной отправки события о просмотре экрана необходимо при активации Activity при ее создании выполнить следующий код
Kotlin
Java
Kraken.trackPageView("SCREEN_CLASS", "URL", "TITLE")
Kraken.trackPageView("SCREEN_CLASS", "URL", "TITLE");
SCREEN_CLASS (обязательный) - название активности, например, "MainActivity"
URL (опциональный) - релевантный url для web страницы, например, "https://rambler.ru"
TITLE (опциональный) - название экрана
При необходимости можно отпра вить любое собственное событие с помощью метода
Kotlin
Java
Kraken.trackEvent("EVENT_NAME", EVENT_DATA)
Kraken.trackEvent("EVENT_NAME", EVENT_DATA);
EVENT_NAME - произвольное название события
EVENT_DATA (опциональный) - произвольные данные о событии, не более 30 параметров в формате Map<String, String>
Пример:
Kotlin
Java
val eventName = "my_event"
val eventData = mapOf(
"param_1" to "value_1",
"param_2" to "value_2"
)
Kraken.trackEvent(
eventName = eventName,
params = eventData
)
String eventName = "my_event";
Map<String, String> eventData = new HashMap<>();
eventData.put("param_1", "value_1");
eventData.put("param_2", "value_2");
Kraken.trackEvent(eventName, eventData);
Для передачи действий пользователя с ECommerce данными необходимо собрать и передать данные в событие в определенном формате <ECommerceEvent>:
Поле | Тип данных | Text |
---|---|---|
currencyCode | String | Трехбуквенный код валюты по ISO 4217. Если передается иная валюта, будут отправлены нулевые значения вместо валюты и суммы. |
action | Дополнительные данные, описывающие действие, произведённое с товаром или набором товаров. Данные передаются в виде объекта <ECommerceAction>. | |
products | Список описаний товаров, с которыми было произведено указанное действие. Описание каждого из товаров представляет собой объект вида <ECommerceProduct>. | |
impressions | Список описаний товаров, относящихся к действию impressions (показ товара или набора товаров). Данные передаются в виде объекта <ECommerceProduct>. | |
promotions | Массив данных, описывающих связанное с рекламной акцией действие. Данные передаются в виде объекта <ECommercePromo>. |
Показ товара (impressions):
Kotlin
Java
val product1 = ECommerceProduct("779213")
.apply {
name = "Футболка" // Optional.
list = "Вы недавно смотрели" // Optional.
brand = "Печки-лавочки"
category = "Одежда/Мужская одежда/Футболки"
coupon = "PARTNER_SITE_15"
position = 2
price = BigDecimal(145.555)
quantity = 5
variant = "Красный цвет"
}
val product2 = ECommerceProduct("25315")
.apply {
name = "Футболка с рисунком" // Optional.
list = "Результаты поиска" // Optional.
brand = "Печки-лавочки"
category = "Одежда/Мужская одежда/Футболки"
coupon = "PARTNER_SITE_15"
position = 2
price = BigDecimal(2345.50)
variant = "Красный цвет"
}
val eventParam = ECommerceEvent.setParams("RUB", listOf(product1, product2))
Kraken.trackEcom("impressions", eventParam)
Клик по промо-акции:
Kotlin
Java
val promo = ECommercePromo("PROMO12")
.apply {
name = "Сезонная распродажа"
creative = "sale_banner1"
position = "slot_2"
}
val eventParam = ECommerceEvent.setPromoParams("RUB", listOf(promo))
Kraken.trackEcom("promoClick", eventParam)
Клик по товару:
Kotlin
Java
val product = ECommerceProduct("779213")
.apply {
name = "Футболка" // Optional.
list = "Результаты поиска" // Optional.
brand = "рога и копыта"
category = "Одежда/Мужская одежда/Футболки"
coupon = "PARTNER_SITE_15"
position = 1
price = BigDecimal(1499.00)
quantity = 2
variant = "Красный цвет"
}
val eventParam = ECommerceEvent.setParams("RUB", listOf(product))
Kraken.trackEcom("click", eventParam)
Добавление товара в корзину:
Kotlin
Java
val product = ECommerceProduct("779213")
.apply {
name = "Футболка"
list = "Вы недавно смотрели"
brand = "Печки-лавочки"
category = "Одежда/Мужская одежда/Футболки"
coupon = "PARTNER_SITE_15"
position = 2
price = BigDecimal(145.555)
quantity = 5
variant = "Красный цвет"
}
val eventParam = ECommerceEvent.setParams("RUB", listOf(product))
Kraken.trackEcom("add", eventParam)
Покупка товаров:
Kotlin
Java
val product = ECommerceProduct("779213")
.apply {
name = "Футболка" // Optional.
list = "Результаты поиска" // Optional.
brand = "рога и копыта"
category = "Одежда/Мужская одежда/Футболки"
coupon = "PARTNER_SITE_15"
position = 1
price = BigDecimal(1499.00)
quantity = 2
variant = "Красный цвет"
}
val action = ECommerceAction("TRX#54321")
.apply {
coupon = "TRX"
revenue = BigDecimal(444.4444)
affilation = "SPORTMASTER"
tax = BigDecimal(123.4444)
shipping = BigDecimal(567.897)
list = "Новинки"
step = 2
option = "способ оплаты"
}
val eventParam = ECommerceEvent.setParams("RUB", listOf(product))
Kraken.trackEcom("detail", eventParam)
Если есть необходимость связать события отправляемые из sdk и js-счетчика, то необходимо добавить следующий код в Activity:
Kotlin
Java
import ru.top100.tracker.kraken.di.Kraken.getData
import android.webkit.JavascriptInterface
//...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myWebView: WebView = findViewById(R.id.webViewIds)
myWebView.settings.javaScriptEnabled = true
myWebView.loadUrl("http://www.example.com")
myWebView.addJavascriptInterface(MyJavascriptInterface(), "kraken")
}
class MyJavascriptInterface {
@get:JavascriptInterface
val data: String
get() = getData()
}
import ru.top100.tracker.kraken.di.Kraken.getData;
import android.webkit.JavascriptInterface;
//...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = findViewById(R.id.webView);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.example.com");
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.addJavascriptInterface(new MyJavaInterface(), "kraken");
}
private class MyJavaInterface {
@android.webkit.JavascriptInterface
public String getData() {
return Kraken.getData();
}
}
Last modified 2mo ago