Интеграция Android
Интеграция
Чтобы интегрировать библиотеку, используйте следующий фрагмент кода:
import android.app.Application;
import com.bmtanalytics.sdk.tracking.BMT;
import com.bmtanalytics.sdk.tracking.Configuration;
import com.bmtanalytics.sdk.tracking.Configuration.UploadInterval;
import com.bmtanalytics.sdk.tracking.Event.Type;
import com.bmtanalytics.sdk.tracking.Event;
import com.bmtanalytics.sdk.tracking.ExtraData;
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
initBMT();
}
private void initBMT() {
int BMT_API_KEY = 12;
Configuration config = new Configuration.Builder()
.setUploadInterval(UploadInterval.HALF_HOUR)
.setGZIPEnabled(false)
.setLogcatEnabled(true)
.setUncaugthExceptionTracking(true)
.build();
BMT.init(this, BMT_API_KEY, config); // with custom config
// BMT.init(this, BMT_API_KEY); // with default config
BMT.SessionData.addExtraData(
new ExtraData("app", "BMT SDK Sample"));
BMT.track(new Event(Type.OTHER, "Application loaded"));
}
}
Конфигурация
Для того, чтобы контролировать логику работы системы аналитики Maxymizely, используйте такие поля и методы:
Основные поля конфигурации:
- SiteId — идентификатор ресурса, который необходимо отслеживать
- ConfigurationId — идентификатор для отслеживания пользователей
- ExternalId — уникальный идентификатор пользователей (например, внутренний идентификатор пользователя в базе данных, электронная почта, логин, Facebook ID, или любая другая информация, которая помогает идентифицировать уникального пользователя)
Дополнительные методы конфигурации:
BMT.SessionData.replaceExtraData(new ExtraData("attribute", attr))
Этот метод позволяет назначить ряд дополнительных параметров пользователю в форме имя-значение.
Вам нужно будет предоставить соответствующие права разрешения для android.permission чтобы система слежения могла передавать собранные данные на сервер.
- #INTERNET чтобы загрузить события на сервер слежения
- #ACCESS_NETWORK_STATE для проверки состояния сетевых соединений
- #READ_PHONE_STATE чтобы собрать информацию об устройстве
Вот часть декларативного файла под андроид:
<service
android:name="com.bmtanalytics.sdk.api.UploadService"
android:permission="android.permission.INTERNET" />
<receiver
android:name="com.bmtanalytics.sdk.api.ConnectivityReceiver"
android:permission="android.permission.ACCESS_NETWORK_STATE" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Приложение
Основой для анализа является процесс отслеживания событий, которые происходят в рамках приложения. Эти события могут быть инициированные пользователем, а также путем интерактивных окон, в которых находится содержимое.
Для системного интегратора, существует два уровня регистрируемых событий:
- Системный уровень
- Пользовательский уровень
Системный уровень включает в себя тип событий Type.ERROR, который регистрирует информацию об ошибках. Это событие вызывается системой автоматически при возникновении исключения. На пользовательском уровне все типы событий доступны.
Пример установки отслеживания:
BMT.track(new Event(Type.LOADPAGE, MyClass.class.getSimpleName()));
С помощью метода BMT.track, интегратор реализует контрольные точки в функциональной системе веб-ресурсов.
Для точной идентификации контрольных событий/контрольных точек есть определенный набор параметров конфигурации:
- Значение — идентификатор контрольной точки (идентификатор HTML элемента, имя поля, и т.д.)
- CustomAttribute1, CustomAttribute2, CustomAttribute3 — 3 дополнительные атрибуты, которые устанавливаются по усмотрению пользователя/разработчика
В теле процедуры, которая обрабатывает событие, необходимо указать:
BMT.track(new Event(Type.CLICK, "Login button clicked"));
BMT.track(new Event(Type.LOADPAGE, MyClass.class.getSimpleName()));
Примеры событий:
1. Если вы ввели неправильные учетные данные:
BMT.track(new Event(Type.LOGIN, "Login failed, incorrect credentials"));
BMT.SessionData.removeExtraDataByKey(Email);
2. Если вы ввели правильные учетные данные:
BMT.track(new Event(Type.LOGIN, "Attempting to login"));
BMT.track(new Event(Type.VIEWELEMENT, "Progress is shown"));