Skip to content

Запись событий

Убедитесь, что предыдущие шаги выполнены успешно
  • SDK подключено к проекту: добавлена зависимость io.carrotquest:android-sdk (см. Установка)
  • Ключи взяты из раздела для разработчика (не из webApi): Ключи для SDK
  • Инициализация выполнена успешно и в Logcat появилась надпись “SDK init success”
Результат шага
  • События добавляются в карточку пользователя и отображаются корректно

Метод отправки событий

Метод для отправки событий: trackEvent

kotlin
import io.carrotquest_sdk.android.Carrot

Carrot.trackEvent("eventName")
java
import io.carrotquest_sdk.android.Carrot;

Carrot.trackEvent("eventName");

Параметры события передаются в виде строки, внутри которой должен быть JSON. Примерно вот так:

kotlin
val strJSON: String = "{\"Приложение\": \"Android\"}"
Carrot.trackEvent("eventName", strJSON)
java
String strJSON = "{\"Приложение\": \"Android\"}";
Carrot.trackEvent("eventName", strJSON);

Трекинг экранов

Для запуска триггерных сообщений на определённых экранах можно передавать названия экранов через trackScreen:

kotlin
val screenName = "CatalogScreen"
Carrot.trackScreen(screenName)
java
String screenName = "CatalogScreen";
Carrot.trackScreen(screenName);

Трекинг UTM-меток

Метод trackUtm извлекает UTM-параметры из строки запроса переданного URL и фиксирует их как события и свойства пользователя. Типичный сценарий — вызов при открытии приложения по диплинку:

kotlin
import io.carrotquest_sdk.android.Carrot

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    intent?.data?.toString()?.let { Carrot.trackUtm(it) }
}
java
import io.carrotquest_sdk.android.Carrot;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getIntent() != null && getIntent().getData() != null) {
        Carrot.trackUtm(getIntent().getData().toString());
    }
}

Кейсы

Какие примеры событий могут быть и как их настроить:

Запись события входа в приложение

Событие входа в приложение можно повесить на onResponse колбэка Carrot.setup — так оно гарантированно отправится после успешной инициализации SDK. Удобное место — Application.onCreate():

kotlin
import android.app.Application
import io.carrotquest_sdk.android.Carrot

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        Carrot.setup(this, "API KEY", object : Carrot.Callback<Boolean> {
            override fun onResponse(result: Boolean) {
                if (result) Carrot.trackEvent("Зашел в приложение")
            }
            override fun onFailure(e: Throwable?) {
                println("SDK init error: ${e?.message}")
            }
        })
    }
}
java
import android.app.Application;
import io.carrotquest_sdk.android.Carrot;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Carrot.setup(this, "API KEY", new Carrot.Callback<Boolean>() {
            @Override
            public void onResponse(Boolean result) {
                if (Boolean.TRUE.equals(result)) {
                    Carrot.trackEvent("Зашел в приложение");
                }
            }
            @Override
            public void onFailure(Throwable e) {
                System.out.println("SDK init error: " + (e != null ? e.getMessage() : null));
            }
        });
    }
}

Запись события отписки от пушей

kotlin
import io.carrotquest_sdk.android.Carrot

Carrot.pushNotificationsUnsubscribe()

val strJSON = "{\"Пользователь\": \"$userId\"}"
Carrot.trackEvent("Отписался от пушей", strJSON)
java
import io.carrotquest_sdk.android.Carrot;

Carrot.pushNotificationsUnsubscribe();

String strJSON = "{\"Пользователь\": \"" + userId + "\"}";
Carrot.trackEvent("Отписался от пушей", strJSON);

Методы WebAPI

Если у вас возникли вопросы, вы можете посмотреть, как похожая механика работает в методах WebAPI, можно найти по ссылке: https://developers.carrotquest.io/webapi/endpoints/