Интеграция SDK
Узнайте, как инициализировать и запустить SDK Android.
Прежде чем начать
- Необходимо установить SDK для Android.
- Убедитесь, что в файле
build.gradle
вашего приложения значениеapplicationId
(в блокеdefaultConfig
) совпадает с идентификатором приложения в AppsFlyer. - Получите ключ разработчика AppsFlyer. Он необходим для успешной инициализации SDK.
- Фрагменты кода приведены в этом документе как примеры реализации. Обязательно измените
<AF_DEV_KEY>
и другие заполнители на собственные значения. - Все шаги в этом документе являются обязательными, если не указано иное.
Инициализация SDK Android
Рекомендуется инициализировать SDK внутри глобального класса/подкласса Application. Так SDK сможет запуститься в любом сценарии (например, при диплинкинге).
Шаг 1. Импорт AppsFlyerLib
В глобальном классе Application импортируйте AppsFlyerLib
:
import com.appsflyer.AppsFlyerLib;
import com.appsflyer.AppsFlyerLib
Шаг 2. Инициализация SDK
В глобальном классе Application onCreate
, call init
со следующими аргументами:
AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this);
AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this)
- Первый аргумент — ваш ключ разработчика AppsFlyer.
- Второй аргумент — допускающий значение null
AppsFlyerConversionListener
. Если вам не нужны данные о конверсиях, рекомендуем передаватьnull
в качестве второго аргумента. Дополнительные сведения см. в статье Данные о конверсиях. - Третий аргумент — контекст приложения.
Запуск SDK Android
В методе onCreate
класса Application после вызова init
, call start
и передайте ему контекст приложения в качестве первого аргумента:
AppsFlyerLib.getInstance().start(this);
AppsFlyerLib.getInstance().start(this)
Deferring SDK start
Необязательно
Вы можете отложить инициализацию SDK, вызвав start
из класса Activity, а не из класса Application.
Обычно отложенный запуск SDK используется, когда приложение запрашивает у пользователя разрешение на сбор данных в основной активности и вызывает start
после его получения.
Важное замечание
Если приложение вызывает
start
из класса Activity, оно должно передать контекст активности Activity Context в SDK.
Если не передать контекст активности, SDK не сработает, что приведет к потере данных атрибуции и событий в приложении.
Starting with a response listener
Чтобы получать подтверждение успешного запуска SDK, создайте объект AppsFlyerRequestListener
и передайте его в качестве третьего аргумента start
:
AppsFlyerLib.getInstance().start(getApplicationContext(), <YOUR_DEV_KEY>, new AppsFlyerRequestListener() {
@Override
public void onSuccess() {
Log.d(LOG_TAG, "Launch sent successfully, got 200 response code from server");
}
@Override
public void onError(int i, @NonNull String s) {
Log.d(LOG_TAG, "Launch failed to be sent:\n" +
"Error code: " + i + "\n"
+ "Error description: " + s);
}
});
AppsFlyerLib.getInstance().start(this, <YOUR_DEV_KEY>, object : AppsFlyerRequestListener {
override fun onSuccess() {
Log.d(LOG_TAG, "Launch sent successfully")
}
override fun onError(errorCode: Int, errorDesc: String) {
Log.d(LOG_TAG, "Launch failed to be sent:\n" +
"Error code: " + errorCode + "\n"
+ "Error description: " + errorDesc)
}
})
- The
onSuccess()
вызывается для каждого ответа200
на запрос атрибуции, посланный пакетом SDK. - The
onError(String error)
выполняется для любого другого ответа и возвращается ответ в виде строки ошибки.
Полный пример
В следующем примере показано, как инициализировать и запустить SDK из класса Application.
import android.app.Application;
import com.appsflyer.AppsFlyerLib;
// ...
public class AFApplication extends Application {
// ...
@Override
public void onCreate() {
super.onCreate();
// ...
AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this);
AppsFlyerLib.getInstance().start(this);
// ...
}
// ...
}
import android.app.Application
import com.appsflyer.AppsFlyerLib
// ...
class AFApplication : Application() {
override fun onCreate() {
super.onCreate()
// ...
AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, null, this)
AppsFlyerLib.getInstance().start(this)
// ...
}
// ...
}
Включение режима отладки
Необязательно
Чтобы включить журналы отладки, вызовите setDebugLog
:
AppsFlyerLib.getInstance().setDebugLog(true);
AppsFlyerLib.getInstance().setDebugLog(true)
Примечание
Для просмотра полных журналов отладки необходимо вызвать
setDebugLog
до вызова других методов SDK.См. пример.
Предупреждение
Чтобы не допустить утечки конфиденциальных данных, перед распространением приложения обязательно убедитесь, что журналы отладки отключены.
Тестирование интеграции
Необязательно
Подробные инструкции приведены в руководстве по тестированию интеграции SDK для Android.
Изменения сохранены 17 дней назад