Android

AdMob banner Reklamlarını Oluşturma Düzeninde Kullanma

Bu, Google AdMob banner reklamlarının bir Android Jetpack Oluşturma görünüm düzeninde nasıl kullanılacağına dair bazı ipuçları veren gerçek bir hızlı gönderidir.

Hemen iki şey söylemek istiyorum:

1- AdMob ekibinin kitaplığı güncel değil (destek oluşturma açısından), bu nedenle AdMob’u oluşturma ile birlikte kullanmak her zaman biraz zor olacaktır.

2- Aşağıdakiler bir hack gibi geliyor, çünkü reklamı oluşturma hiyerarşisinden yüklüyoruz, işe yarıyor! Ama bu “ideal” çözüm değil. Ancak bu birlikte çalışabilirliğe sahip olsak da, bu en iyi yol olabilir.

admob

Bir Android uygulamasında bir AdMob banner reklamının uygulanmasına ilişkin resmi belgeler burada verilmiştir; örnekler, bunu programlı olarak veya bir XML düzeni kullanarak nasıl yapacağınızı gösterir (bunları hatırladınız mı? :-)). Hızlı başlangıç sonra Bir Banner Reklamı Uygulayın.

‘Hack’ oluşturmanın farklı olduğu yer burasıdır (ve muhtemelen bunu geliştirebilirsiniz), o yüzden buradan başlayalım. Dokümanlar, Reklamınızı onCreate’e yüklemenizi söylüyor:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }

Bunu, kompozisyonu onCreate’den loadAd çağırdıktan sonra, oluştur ile de yapabilirsiniz. Ama bunu başka bir şekilde yapalım:

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.viewinterop.AndroidView
import com.blundell.tut.R
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdSize
import com.google.android.gms.ads.AdView

@Composable
fun AdvertView(modifier: Modifier = Modifier) {
    val isInEditMode = LocalInspectionMode.current
    if (isInEditMode) {
        Text(
            modifier = modifier
                .fillMaxWidth()
                .background(Color.Red)
                .padding(horizontal = 2.dp, vertical = 6.dp),
            textAlign = TextAlign.Center,
            color = Color.White,
            text = "Advert Here",
        )
    } else {
        AndroidView(
            modifier = modifier.fillMaxWidth(),
            factory = { context ->
                AdView(context).apply {
                    adSize = AdSize.BANNER
                    adUnitId = context.getString(R.string.ad_id_banner)
                    loadAd(AdRequest.Builder().build())
                }
            }
        )
    }
}

@Preview(showBackground = true)
@Composable
fun AdvertPreview() {
    AdvertView()
}

Yeni bir şekillendirilebilir oluşturun, sağlanan AdMob’u kullanın AdView bunu sağlanan bir kompozisyona sarın AndroidView ve her ikisini de kendi oluşturduğunuz birleştirilebilir içine sarın AdvertView.

Oluşturma önizlemesi, bu şekilde kullanıldığında AdView’ün oluşturulmasını sevmez ve bu nedenle AdMob’u doğrularız AdView eşdeğerinde kullanım için isInEditMode denilen beste için LocalInspectionMode.current. Bu, önizlememizin bir önizlemedeki reklam yerine kırmızı bir afiş oluşturmasını sağlar.

için resmi belgeler AndroidView bunu açıklar:

varlığında bir Android düzeni kaynağı oluşturur. ViewBinding. Bağlama şuradan elde edilir: factory elde etmek için tam olarak bir kez çağrılacak olan blok ViewBinding oluşturulacak ve ayrıca UI iş parçacığında çağrılması garanti edilmektedir. Bu nedenle, oluşturmanın yanı sıra ViewBindingblok ayrıca tek seferlik başlatmalar gerçekleştirmek için kullanılabilir ve View sabit özelliklerin ayarı. bu update blok, yeniden düzenleme nedeniyle birden çok kez çalıştırılabilir (UI iş parçacığında da) ve ayarlamak için doğru yerdir View duruma bağlı olarak özellikler. Durum değiştiğinde, yeni özellikleri ayarlamak için blok yeniden yürütülecektir. Bloğun aynı zamanda, işlemden hemen sonra çalıştırılacağını unutmayın. factory blok tamamlanır.

https://developer.android.com/reference/kotlin/androidx/compose/ui/viewinterop/package-summary#AndroidView(kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Function1)

Bu açıklama, iki özellikten birini kullanabileceğimizi gösteriyor gibi görünüyor: factory (ki yapıyoruz) veya update reklamımızı yüklemek için Her ikisi de UI iş parçacığında çalışır (çalıştırmakla aynı loadAd itibaren onCreate.) Okuyucu için bir yargı olarak, eğer isterseniz, düşündünüz mü? loadAd her bir kompozisyonda çağrılacak veya görünüm başlatıldığında bir defaya mahsus olarak çağrılacak yöntem.

Ve bu kadar! aramayı unutmayın loadAd bu şekilde kimse tarafından tavsiye edilmiyor ama kullandığı için factory nın-nin AndroidView BT hissediyor tamam 🙂 (Kullandıysanız update, Bahse girerim dahili kitaplık bizi yine de birden çok kez çağırmamızı sağlar). Bu örnek sadece başlamanız için AdMob ve oluştur.

Daha tam özellikli bir örnek isteyen varsa, lütfen bana Twitter’dan ulaşın, örnek bir proje yapabilirim.

Zevk almak!

Bu gönderiyi beğendiyseniz, belki beğenirsiniz: Gradle bağımlılıklarınızı evcilleştirmek: Sadece ÇÜNKÜ!

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu