Использование сервисов в Passive Mode
Appodeal SDK уже включает в себя такие сервисы, как Adjust, AppsFlyer и Firebase, и мы инициализируем их автоматически с помощью инициализации Appodeal.
Если вы хотите иметь возможность самостоятельно инициализировать сервисы и использовать их методы, то вам необходимо выполнить следующие действия:
Свяжитесь с нами
Для того чтобы использовать сервисы в Passive Mode, вам необходимо связаться с нашей службой поддержки через чат или по электронной почте [email protected] и сообщить следующую информацию:
- Ссылки на приложения в GooglePlay, в которых вы хотите инициализировать Adjust/AppsFlyer/Firebase самостоятельно.
Интегрируйте Adjust, AppsFlyer и Firebase
Выполните все шаги из нашего руководства по интеграции и не забудьте включить сервисы в сборку.
Добавьте зависимости в ваш app-level build.gradle:
- Kotlin
- Groovy
dependencies {
//Adjust
implementation("com.adjust.sdk:adjust-android:4.33.2")
implementation("com.android.installreferrer:installreferrer:2.2")
// Add the following if you are using the Adjust SDK inside web views on your app
implementation("com.adjust.sdk:adjust-android-webbridge:4.33.2")
//AppsFlyer
implementation("com.appsflyer:af-android-sdk:6.9.4")
implementation("com.appsflyer:adrevenue:6.9.1")
//Firebase
//Java
implementation("com.google.firebase:firebase-analytics:21.2.0")
implementation("com.google.firebase:firebase-config:21.2.0")
//Kotlin
implementation("com.google.firebase:firebase-analytics-ktx:21.2.0")
implementation("com.google.firebase:firebase-config-ktx:21.2.0")
}
dependencies {
//Adjust
implementation 'com.adjust.sdk:adjust-android:4.33.2'
implementation 'com.android.installreferrer:installreferrer:2.2'
// Add the following if you are using the Adjust SDK inside web views on your app
implementation 'com.adjust.sdk:adjust-android-webbridge:4.33.2'
//AppsFlyer
implementation 'com.appsflyer:af-android-sdk:6.9.4'
implementation 'com.appsflyer:adrevenue:6.9.1'
//Firebase
//Java
implementation 'com.google.firebase:firebase-analytics:21.2.0'
implementation 'com.google.firebase:firebase-config:21.2.0'
//Kotlin
implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0'
implementation 'com.google.firebase:firebase-config-ktx:21.2.0'
}
Заверштье все шаги интеграции AppsFlyer, Adjust и Firebase,
Инициализация Adjust
После обращения в нашу службу поддержки и получения подтверждения на дальнейшие действия вы сможете инициализировать Adjust самостоятельно в методе onCreate и использовать все его методы в соответствии с офицальной документацией.
- Kotlin
- Java
import com.adjust.sdk.Adjust
import com.adjust.sdk.AdjustConfig
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initializeAdjust()
}
// Инициализация Adjust
fun initializeAdjust() {
val appToken = "YourAppToken"
val environment = AdjustConfig.ENVIRONMENT_PRODUCTION
val config = AdjustConfig(requireContext(), appToken, environment)
config.setLogLevel(LogLevel.VERBOSE)
Adjust.onCreate(config)
Adjust.onResume()
}
import com.adjust.sdk.Adjust;
import com.adjust.sdk.AdjustConfig;
public void onCreate() {
super.onCreate();
initializeAdjust();
}
// Инициализация Adjust
public void initializeAdjust () {
String appToken = "YourAppToken";
String environment = AdjustConfig.ENVIRONMENT_PRODUCTION;
AdjustConfig config = new AdjustConfig(this, appToken, environment);
config.setLogLevel(LogLevel.VERBOSE);
Adjust.onCreate(config);
Adjust.onResume();
}
При выполнении тестов необходимо убедиться, что в качестве окружения установлено значение
AdjustConfig.ENVIRONMENT_SANDBOX.
Перед отправкой приложения в Google Play измените это значение на AdjustConfig.ENVIRONMENT_PRODUCTION.
Инициализация AppsFlyer
После обращения в нашу службу поддержки и получения подтверждения на дальнейшие действия, вы cможете
самостоятельно инициализировать AppsFlyer в методе onCreate и использовать все его методы в соответствии
с официальной документацией и
рекламным доходом AppsFlyer. Руководство.
- Kotlin
- Java
import com.appsflyer.AppsFlyerLib
import com.appsflyer.adrevenue.AppsFlyerAdRevenue
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initializeAppsFlyer()
}
// Инициализация AppsFlyer
fun initializeAppsFlyer() {
val appsflyerDevKey = "YOUR_AF_DEV_KEY"
AppsFlyerLib.getInstance().setLogLevel(AFLogger.LogLevel.VERBOSE)
AppsFlyerLib.getInstance().init(appsflyerDevKey,
object : AppsFlyerConversionListener{
override fun onConversionDataSuccess(conversionData: MutableMap<String, Any>?) {
//Перед запуском Appodeal.initialize() SDK ожидает получения данных conversionData.
}
override fun onConversionDataFail(reason: String?) {}
override fun onAppOpenAttribution(map: MutableMap<String, String>?) {}
override fun onAttributionFailure(reason: String?) {}
},
this)
AppsFlyerLib.getInstance().start(this, appsflyerDevKey, object : AppsFlyerRequestListener {
override fun onSuccess() {
Log.d(LOG_TAG, "Launch sent successfully, got 200 response code from server")
}
override fun onError(code: Int, error: String) {
Log.d(LOG_TAG, "Start failed. \nError code: $code \nError description: $error")
}
})
val builder = AppsFlyerAdRevenue.Builder(this)
AppsFlyerAdRevenue.initialize(builder.build())
}
import com.appsflyer.AppsFlyerLib;
import com.appsflyer.adrevenue.AppsFlyerAdRevenue;
public void onCreate() {
super.onCreate();
initializeAppsFlyer();
}
// Инициализация AppsFlyer
public void initializeAppsFlyer() {
String appsflyerDevKey = "YOUR_AF_DEV_KEY";
AppsFlyerLib.getInstance().setLogLevel(AFLogger.LogLevel.VERBOSE);
AppsFlyerLib.getInstance().init("appsflyerDevKey",
new AppsFlyerConversionListener() {
@Override
public void onConversionDataSuccess(Map<String, Object> conversionData) {
//Перед запуском Appodeal.initialize() SDK ожидает получения данных conversionData.
}
@Override
public void onConversionDataFail(String reason) {}
@Override
public void onAppOpenAttribution(Map<String, String> map) {}
@Override
public void onAttributionFailure(String reason) {}
},
this);
AppsFlyerLib.getInstance().start(this, appsflyerDevKey, object : AppsFlyerRequestListener {
@Override public void onSuccess() {
Log.d(LOG_TAG, "Launch sent successfully, got 200 response code from server");
}
@Override public void onError(int code, @NonNull String error) {
Log.d(LOG_TAG, "Start failed. \nError code: " + code + "\nError description: " + error);
}
});
String builder = AppsFlyerAdRevenue.Builder(this);
AppsFlyerAdRevenue.initialize(builder.build());
}
Инициализация Firebase
После того как вы связались с нашей службой поддержки и получили подтверждение на дальнейшую работу, вам не нужно инициализировать Firebase, поскольку это уже сделано на нашей стороне.
Аналитика Firebase будет работать автоматически, и вы сможете использовать любые методы из Firebase Analytics и Firebase Remote-Config.
Если вы хотите использовать Firebase Remote-Config в своем приложении, то вам необходимо настроить его, как показано ниже и в официальной документации.
- Kotlin
- Java
import com.google.firebase.ktx.Firebase
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
import com.google.firebase.remoteconfig.ktx.remoteConfigSettings
import com.google.firebase.remoteconfig.ktx.remoteConfig
// Запуск Remote-Config
fun setUpRemoteConfig() {
val remoteConfig: FirebaseRemoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600 // DEFAULT_MINIMUM_FETCH_INTERVAL_IN_SECONDS
}
remoteConfig.setConfigSettingsAsync(configSettings)
}
import com.google.firebase.remoteconfig.FirebaseRemoteConfig;
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings;
// Запуск Remote-Config
public void setUpRemoteConfig() {
FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600) // DEFAULT_MINIMUM_FETCH_INTERVAL_IN_SECONDS
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
}
Отслеживание Покупок В Приложении
Можно отслеживать информацию о покупках в приложении и отправлять информацию на серверы Appodeal для аналитики. Это позволяет группировать пользователей по факту покупки. Это поможет вам настроить рекламу для таких пользователей или просто отключить ее, если это необходимо. Чтобы настроить отслеживание покупок в приложении, проверьте это руководство
Отслеживание Событий
Appodeal SDK позволяет отправлять события в аналитические сервисы, такие как Firebase, AppsFlyer, Adjust и Meta. Чтобы настроить отслеживание событий в приложении, проверьте данную данную инструкцию.