Apps Kit SDK logoApps Kit SDK
Dokümantasyon · AppsKitSDK (AKS) — Android Entegrasyon Kılavuzu

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 yer alan) 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 küme 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 tüm bağımlılıkları 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 paketinin içinde bulunduğundan com.pentabit:aks-android-helpers bağımlılığını ayrıca eklemeniz gerekmez.

1.2 Zorunlu kütüphaneler (her zaman gereklidir)

AKS'nin derlenmiş kodu bu kütüphanelere doğrudan referans verdiğinden, hangi reklam ağlarını etkinleştirdiğinizden bağımsız olarak hepsi 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. 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 coroutines (1.7.3), serialization (1.9.0) ve Firebase BOM (34.3.0) 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 gereklidir)

AKS, bu üç SDK'yı AKS portalında / Firebase Remote Config'de tanımlanan anahtarlarla otomatik olarak başlatır. Bunları doğrudan çağırmazsınız; ancak AKS'nin derlenmiş kodu SDK sınıflarına koşulsuz olarak referans verdiğinden, 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 mevcut 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 sunar. Reklamı hangi ağın sunacağına uzaktan karar verilir (her reklam biçimi için ayrı ayrı, hata durumunda 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ü 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 alternatif ağa geçiş (failover) 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.