Kotlin’de Aktivite İçinde Fonksiyon Kullanımına Göre Reklam Gösterme

 

Kotlin’de Aktivite İçinde Fonksiyon Kullanımına Göre Reklam Gösterme

Yazar: Sami Aksoy

Android geliştirirken reklam göstermek çoğu zaman teknik değil, mantıksal olarak zorlayıcı olur. Özellikle “Her tıklamada reklam çıkmasın ama tamamen de reklamsız olmasın” dediğin anda iş karışır. Bu yazıda, Kotlin’de Activity içindeki fonksiyonların belirli sayıda kullanımından sonra reklam gösterme mantığını, dağılmadan ve class yapısını bozmadan nasıl kurabileceğini anlatıyorum.

Bu rehber, özellikle Rewarded / Interstitial reklamları kontrollü şekilde göstermek isteyen Android geliştiriciler için hazırlandı.


Bu Yazı Hangi Sorunu Çözüyor?

  • Her buton tıklamasında reklam çıkmasın
  • Kullanıcıyı bunaltmadan gelir elde edeyim
  • Reklam kodları Activity’yi dağıtmasın
  • Kaç kullanımda reklam çıkacağını ben belirleyeyim

Eğer bunlardan biri tanıdık geliyorsa, doğru yerdesin.


1. Temel Mantık: Sayaç (Counter) Sistemi

Bu işin özü çok basit:

  • Bir sayaç tut
  • Fonksiyon her çağrıldığında artır
  • Belirlenen sayıya ulaşınca reklam göster
  • Sonra sayacı sıfırla

Asıl farkı oluşturan şey, bu mantığı nerede ve nasıl uyguladığındır.


2. Activity İçin Temiz İskelet

Önce Activity’nin iskeletini düzgün kuralım. Reklam ve sayaç işi baştan belli olsun.

class MainActivity : AppCompatActivity() {

    private var actionCounter = 0
    private val ACTION_LIMIT = 5

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setupListeners()
        loadInterstitialAd()
    }

    private fun setupListeners() {}

    private fun onUserAction() {}

    private fun increaseCounterAndCheckAd() {}

    private fun loadInterstitialAd() {}
    private fun showInterstitialAd() {}
}

Henüz hiçbir şey yapmıyor ama class kontrol altında.


3. Sayaç Artırma ve Reklam Kontrolü

Tüm kritik mantığı tek bir fonksiyona topluyoruz. Dağılma burada başlar, biz engelliyoruz.

private fun increaseCounterAndCheckAd() {
    actionCounter++

    if (actionCounter >= ACTION_LIMIT) {
        showInterstitialAd()
        actionCounter = 0
    }
}

Bu fonksiyonun görevi net: say ve karar ver. Başka hiçbir şey yapmaz.


4. Kullanıcı Aksiyonunu Bu Sisteme Bağlamak

Buton, menü, paylaşım… fark etmez. Kullanıcı bir işlem yaptığında:

private fun onUserAction() {
    // Asıl iş burada yapılır
    openDetailScreen()

    // Sonunda sayaç kontrol edilir
    increaseCounterAndCheckAd()
}

Böylece reklam mantığı, iş mantığını kirletmez.


5. Reklam Gösterme Fonksiyonunu Temiz Tut

Reklam göstermek ayrı bir iştir. Asla sayaçla iç içe geçmemelidir.

private fun showInterstitialAd() {
    if (interstitialAd != null) {
        interstitialAd?.show(this)
    }
}

İleride reklam sağlayıcısını değiştirirsen, sadece bu alanı dokunursun.


6. En Sık Yapılan Hatalar

  • Sayaç artırmayı her yerde yapmak
  • Reklamı doğrudan button içinde göstermek
  • onCreate içine sayaç mantığı gömmek
  • Reklam callback’lerini iş fonksiyonlarına karıştırmak

Bunların hepsi kısa vadede çalışır, uzun vadede class’ı bozar.


7. Geliştirici Notu (Gerçek Hayat Tavsiyesi)

Ben genelde şu oranları kullanıyorum:

  • Bilgi / okuma uygulaması: 5–7 işlem
  • Paylaşım / etkileşim: 3–5 işlem
  • Destek butonu (isteğe bağlı): Anında reklam

Kullanıcıyı kaybetmeden kazanmak burada başlıyor.


Özet

Sayaç tek yerde → Reklam tek fonksiyonda → İş mantığı temiz

Bu sistemi bir kere düzgün kurduğunda, hangi fonksiyonda kaç kullanımda reklam çıkacağını kontrol etmek çocuk oyuncağı olur.


Son Söz

Reklam göstermek zorunda olmak kötü bir şey değil. Kötü olan, reklam yüzünden kodun kontrolünü kaybetmek. Bu yazıdaki yaklaşım, hem kullanıcıyı hem geliştiriciyi yormayan bir orta yol sunar.

Sami AKSOY — Reklamdan değil, dağınık koddan kaçan geliştirici.

Yorum Gönder

0 Yorumlar