Apps Kit SDK logoApps Kit SDK
Dokümantasyon · Android Entegrasyonu

1. Bağımlılıklar

1.1 AKS SDK

SDK'yı uygulama düzeyindeki build.gradle.kts dosyanıza ekleyin:

kotlin
dependencies {
    implementation("com.github.Pentabit-Labs-LLC:appskitsdk-android:${LATEST_VERSION}")
}

${LATEST_VERSION} yerine appskitsdk-android sürümleri sayfasındaki (veya deponun README dosyasındaki JitPack rozetinde görünen) en güncel etiketi yazı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 (transitive) olarak eklenmez. Aşağıdaki bağımlılıkların tümünü uygulama modülünüzde açıkça tanımlamanız gerekir. Tek istisna SupportAKS (com.pentabit.aks_android_support_lib) kitaplığıdır. Bu sınıflar doğrudan appskitsdk-android paketinin içine dahil edildiğinden com.pentabit:aks-android-helpers bağımlılığını ayrıca eklemeniz gerekmez.

1.2 Zorunlu kitaplıklar (her zaman gerekli)

AKS'nin derlenmiş kodu bu kitaplıklara doğrudan başvurur. Bu nedenle hangi reklam ağlarını etkinleştirdiğinizden bağımsız olarak bu kitaplıklar gereklidir:

kotlin
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")
}

Tüm ktor-* paketlerinde aynı Ktor sürümünü kullanın. Ktor 2.x ve 3.x paketlerini aynı classpath üzerinde birlikte kullanmak, çalışma zamanında ikili uyumsuzluktan kaynaklanan çökmelere neden olur.

Bağımlılık grafiğinizin başka bir yerinde eski bir sürümün kalmasına izin vermek yerine, uygulamanızın geri kalanında da coroutines (1.7.3), serialization (1.9.0) ve Firebase BOM (34.3.0) sürümlerini AKS'nin kullandığı sürümlerle eşleştirin. 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 sessizce "kazanan" sürümü seçmesi, bu kitaplıkları çağıran AKS 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. Bu SDK'ları doğrudan çağırmazsınız; ancak AKS'nin derlenmiş kodu bunların SDK sınıflarına koşulsuz olarak başvurduğundan classpath'inizde bulunmaları gerekir:

kotlin
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 bulunmaması sorun değildir. AKS, çalışma zamanında ilgili SDK'yı başlatma adımı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 (reklam biçimi bazında, hata durumunda yedek 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ü eklemektir:

kotlin
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 yedek 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. Bu listeyi daraltmak, uzaktan yapılandırma tarafındaki esnekliği azaltır.