1. Зависимости
1.1 SDK AKS
Добавьте сам SDK в build.gradle.kts модуля приложения:
dependencies {
implementation("com.github.Pentabit-Labs-LLC:appskitsdk-android:${LATEST_VERSION}")
}Замените ${LATEST_VERSION} последним тегом из релизов appskitsdk-android (или с бейджа JitPack в README этого репозитория), например v6.4.0.0.
AKS публикуется как набор отдельных файлов .aar, а не как Maven-модуль с описанием зависимостей, поэтому ни одна из его сторонних зависимостей не подключается транзитивно. Все зависимости ниже необходимо явно объявить в модуле приложения. Единственное исключение — SupportAKS (com.pentabit.aks_android_support_lib): эти классы уже включены в сам артефакт appskitsdk-android, поэтому отдельно добавлять com.pentabit:aks-android-helpers не нужно.
1.2 Обязательные библиотеки (нужны всегда)
Скомпилированный код AKS напрямую ссылается на эти библиотеки, поэтому они обязательны независимо от того, какие рекламные сети вы включаете:
dependencies {
// Firebase (Remote Config drives almost all AKS behavior; Analytics is used for AKS events)
implementation(platform("com.google.firebase:firebase-bom:34.3.0"))
implementation("com.google.firebase:firebase-analytics")
implementation("com.google.firebase:firebase-config")
implementation("com.google.android.gms:play-services-measurement-api:23.0.0")
// Coroutines / serialization / datetime — used throughout AdsManager and AppsKitSDK
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1")
// Ktor — AKS's internal network client for fetching ad/config data
implementation("io.ktor:ktor-client-core:3.3.3")
implementation("io.ktor:ktor-client-okhttp:3.3.3")
implementation("io.ktor:ktor-client-content-negotiation:3.3.3")
implementation("io.ktor:ktor-serialization-kotlinx-json:3.3.3")
implementation("io.ktor:ktor-client-logging:3.3.3")
// Local storage AKS uses for its own preferences/session/ad-state tracking
implementation("com.russhwolf:multiplatform-settings:1.1.1")
implementation("com.russhwolf:multiplatform-settings-serialization:1.1.1")
// Jetpack Compose — AKS's Feature/Cross-Promotion ad screens, the Configuration
// Dashboard, and the Test Suite (§10) are all built with Compose. Pull these in via
// the Compose BOM so versions stay aligned with whatever else in your app uses Compose.
implementation(platform("androidx.compose:compose-bom:2025.08.01"))
implementation("androidx.compose.runtime:runtime")
implementation("androidx.compose.foundation:foundation")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-tooling-preview")
// Image loading used by AKS's built-in cross-promotion / feature-promotion ad screens
implementation("io.coil-kt.coil3:coil:3.3.0")
implementation("io.coil-kt.coil3:coil-compose:3.3.0")
implementation("io.coil-kt.coil3:coil-compose-core:3.3.0")
implementation("io.coil-kt.coil3:coil-network-ktor3:3.3.0")
implementation("media.kamel:kamel-image:0.9.5")
// Used by enableAppAutoUpdate() in the AKS base Activities
implementation("com.google.android.play:app-update:2.1.0")
// Powers AppsKitSDKUtils.askForRating() — AKS's built-in in-app review flow
implementation("com.google.android.play:review:2.0.1")
implementation("androidx.recyclerview:recyclerview:1.4.0")
// IronSource core — AKS's base Activity classes call IronSource.onResume()/onPause()
// unconditionally on every screen, so this is required even if you never select
// IronSource as an ad network in the AKS portal.
implementation("com.ironsource.sdk:mediationsdk:8.5.0")
}Используйте одну и ту же версию Ktor для всех артефактов
ktor-*: смешивание артефактов Ktor 2.x и 3.x в одном classpath приводит к сбоям во время выполнения из-за бинарной несовместимости.В остальных частях приложения также используйте те же версии coroutines (
1.7.3), serialization (1.9.0) и Firebase BOM (34.3.0), что и в AKS, не оставляя старые версии в других частях графа зависимостей. При переходе между мажорными версиями Firebase BOM (33.x→34.x) были внесены изменения, нарушающие совместимость. Автоматический выбор «победившей» версии в Gradle не гарантирует бинарную совместимость участков кода AKS, которые обращаются к этим библиотекам. Это обязательные требования, а не рекомендации, которые можно соблюдать по возможности.
1.3 SDK партнеров по мобильной атрибуции (MMP) (нужны всегда)
AKS автоматически инициализирует эти три SDK по ключам, заданным в портале AKS / Firebase Remote Config. Вы не вызываете их напрямую, но скомпилированный код AKS содержит безусловные ссылки на их классы, поэтому эти SDK должны присутствовать в classpath:
dependencies {
// AppsFlyer
implementation("com.appsflyer:af-android-sdk:6.13.0")
implementation("com.appsflyer:adrevenue:6.9.0")
implementation("com.miui.referrer:homereferrer:1.0.0.6")
implementation("com.android.installreferrer:installreferrer:2.2")
// Adjust
implementation("com.adjust.sdk:adjust-android:4.38.3")
// Solar Engine (Reyun)
implementation("com.reyun.solar.engine.oversea:solar-engine-core:1.3.1.4")
}Если в конфигурации портала AKS нет ключей для одного из этих SDK, это не проблема: AKS просто пропустит его инициализацию во время выполнения. Но для сборки приложения зависимость все равно должна быть подключена.
1.4 SDK рекламных сетей и медиации
Помимо IronSource (уже указанного выше), AKS включает в тот же AAR код обработчиков для AdMob, AppLovin MAX и Chartboost Mediation (Helium). Сеть, которая фактически показывает рекламу, выбирается удаленно — отдельно для каждого рекламного формата, с переключением на резервную сеть при сбое. Поэтому самый надежный подход — подключить их все. Именно так сделано в эталонном приложении самой Pentabit:
dependencies {
// ---- AdMob / Google Mobile Ads + mediation adapters ----
implementation("com.google.android.gms:play-services-ads:24.4.0")
implementation("com.google.ads.mediation:applovin:13.0.1.0")
implementation("com.google.ads.mediation:ironsource:8.5.0.1")
implementation("com.google.ads.mediation:chartboost:9.8.2.0")
implementation("com.google.ads.mediation:vungle:7.4.2.0")
implementation("com.google.ads.mediation:facebook:6.18.0.0")
implementation("com.google.ads.mediation:mintegral:16.9.71.0")
implementation("com.google.ads.mediation:pangle:6.4.0.4.0")
implementation("com.google.ads.mediation:unity:4.12.5.0") {
exclude(group = "com.google.android.gms", module = "play-services-cronet")
}
// ---- AppLovin MAX + adapters ----
implementation("com.applovin:applovin-sdk:13.3.0")
implementation("com.applovin.mediation:google-adapter:+")
implementation("com.applovin.mediation:google-ad-manager-adapter:+")
implementation("com.applovin.mediation:ironsource-adapter:8.7.0.0.0")
implementation("com.applovin.mediation:facebook-adapter:+")
implementation("com.applovin.mediation:vungle-adapter:+")
implementation("com.applovin.mediation:mintegral-adapter:+")
implementation("com.applovin.mediation:bytedance-adapter:6.5.0.8.1")
implementation("com.applovin.mediation:unityads-adapter:+") {
exclude(group = "com.google.android.gms", module = "play-services-cronet")
}
// ---- Chartboost Mediation (Helium) + adapters ----
implementation("com.chartboost:chartboost-mediation-sdk:4.7.1")
implementation("com.chartboost:chartboost-mediation-adapter-admob:4.22.3.0.4")
implementation("com.chartboost:chartboost-mediation-adapter-applovin:4.12.0.0.0")
implementation("com.chartboost:chartboost-mediation-adapter-ironsource:4.7.5.2.0.0")
implementation("com.chartboost:chartboost-mediation-adapter-vungle:4.7.1.0.0")
implementation("com.chartboost:chartboost-mediation-adapter-meta-audience-network:4.6.16.0.0")
implementation("com.chartboost:chartboost-mediation-adapter-pangle:4.5.5.0.3.0")
}Если вы уверены, что определенная сеть (например, Helium) никогда не будет включена в конфигурации портала AKS, ее блок можно удалить. Однако учтите: внутренняя логика переключения на резервные сети в AdNetwork AKS может направить запрос к любой из сетей ADMOB, GAM, MAX, IRON_SOURCE или HELIUM для каждого рекламного формата. Поэтому сокращение этого списка ограничивает гибкость удаленной настройки.