1. Bağımlılıklar
1.1 AKS SDK
SDK'yı uygulama düzeyindeki build.gradle.kts dosyanıza ekleyin:
dependencies {
implementation("com.github.Pentabit-Labs-LLC:appskitsdk-android:${LATEST_VERSION}")
}${LATEST_VERSION} yerine appskitsdk-android sürümlerindeki en güncel etiketi (veya deponun README dosyasındaki JitPack rozetinde belirtilen sürümü) kullanın; örneğin v6.4.0.0.
AKS, bağımlılık bilgilerini içeren bir Maven modülü olarak değil, ham .aar dosyalarından oluşan bir paket olarak yayımlanır. Bu nedenle üçüncü taraf bağımlılıklarının hiçbiri geçişli olarak eklenmez. Aşağıdakilerin tümünü uygulama modülünüzde açıkça tanımlamanız gerekir. Tek istisna SupportAKS (com.pentabit.aks_android_support_lib) kütüphanesidir. Bu sınıflar doğrudan appskitsdk-android paketine dahil edildiğinden com.pentabit:aks-android-helpers bağımlılığını ayrıca eklemeniz gerekmez.
1.2 Zorunlu kütüphaneler (her zaman gerekli)
AKS'nin derlenmiş kodu bu kütüphanelere doğrudan başvurur. Bu nedenle hangi reklam ağlarını etkinleştirdiğinizden bağımsız olarak tümü gereklidir:
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")
// SQLDelight — backs AKS's own local analytics database (AksLocalDbManager). It's
// referenced directly by AKS's compiled code, and — like every other dependency in this
// guide — carries no dependency metadata on the JitPack AAR (bare .pom, no .module), so
// omitting it doesn't fail the build, it crashes at runtime the first time
// AppsKitSDK.initialize() runs: NoClassDefFoundError: app/cash/sqldelight/Transacter.
implementation("app.cash.sqldelight:runtime:2.3.2")
implementation("app.cash.sqldelight:android-driver:2.3.2")
// 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")
}Tüm
ktor-*paketlerinde aynı Ktor sürümünü kullanın. Aynı classpath üzerinde Ktor 2.x ve 3.x paketlerini birlikte kullanmak, çalışma zamanında ikili uyumsuzluk nedeniyle çökmelere yol açar.Bağımlılık grafiğinizin başka bir yerinde eski bir sürüm bırakmak yerine, uygulamanızın geri kalanında da AKS'nin kullandığı coroutines (
1.7.3), serialization (1.9.0), Firebase BOM (34.3.0) ve SQLDelight (2.3.2) sürümlerini kullanın. Firebase BOM'un ana sürümleri arasında (33.x→34.x) geriye dönük uyumluluğu bozan değişiklikler yapılmıştır. Gradle'ın bağımlılık çözümlemesinde hangi sürüm "kazanırsa" onu sessizce seçmesi, AKS'nin bu kütüphaneleri çağıran kod yollarının ikili uyumluluğunu koruyacağını garanti etmez. Bunlar isteğe bağlı öneriler değil, zorunlu gereksinimlerdir.
1.3 Mobil ölçüm ortağı (MMP) SDK'ları (her zaman gerekli)
AKS, AKS portalında / Firebase Remote Config'de tanımlanan anahtarları kullanarak bu üç SDK'yı otomatik olarak başlatır. Bunları doğrudan çağırmazsınız; ancak AKS'nin derlenmiş kodu bu SDK sınıflarına koşulsuz olarak başvurduğundan classpath üzerinde bulunmaları gerekir:
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 portal yapılandırmanızda bunlardan biri için anahtar yoksa sorun değildir. AKS, çalışma zamanında ilgili SDK'nın başlatılmasını atlar. Ancak uygulamanın derlenebilmesi için bağımlılığın yine de eklenmiş olması gerekir.
1.4 Reklam ağı / reklam arabuluculuğu (mediation) SDK'ları
AKS, yukarıda listelenen IronSource'a ek olarak AdMob, AppLovin MAX ve Chartboost Mediation (Helium) için işleyici kodunu da aynı AAR içinde barındırır. Reklamı hangi ağın sunacağına uzaktan karar verilir (her reklam biçimi için ayrı ayrı ve alternatif ağa geçiş desteğiyle). Bu nedenle en güvenli yaklaşım, Pentabit'in kendi referans uygulamasında da yaptığı gibi tümünü dahil etmektir:
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")
}Belirli bir ağın (örneğin Helium) AKS portal yapılandırmanızda hiçbir zaman etkinleştirilmeyeceğinden eminseniz ilgili bloğu kaldırabilirsiniz. Ancak AKS'nin dahili AdNetwork alternatif ağa geçiş mantığının, her reklam biçimi için ADMOB, GAM, MAX, IRON_SOURCE veya HELIUM ağlarından herhangi birine yönlendirme yapabildiğini unutmayın. Dolayısıyla bu listeyi daraltmak, uzaktan yapılandırma tarafındaki esnekliği azaltır.