Banner reklamlar

Banner reklamlar, uygulama düzeni içinde cihaz ekranının üst veya alt kısmında yer kaplar. Bu reklamlar, kullanıcılar uygulamayla etkileşimde bulunurken ekranda kalır ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılıkta yeniyseniz, mobil reklamlar başlangıç için harika bir yerdir. Başarılı örnek.

Bu kılavuzda,AdMob uygulamasındaki banner reklamların Android uygulamasına nasıl entegre edileceği gösterilmektedir. Kod snippet'leri ve talimatların yanı sıra banner'ların doğru boyutlandırılmasıyla ilgili bilgiler ve ek kaynakların bağlantıları da bulunmaktadır.

Ön koşullar

Düzene AdView ekle

Bir banner'ı görüntülemenin ilk adımı, AdView öğesini göstermek istediğiniz Activity veya Fragment düzenine yerleştirmektir. Bunu yapmanın en kolay yolu, karşılık gelen XML düzen dosyasına bir şablon eklemektir. Bir etkinliğin AdView alanını gösteren bir örneği aşağıda bulabilirsiniz:

# main_activity.xml
<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

Aşağıdaki zorunlu özellikleri göz önünde bulundurun:

  • ads:adSize: Bu değeri, kullanmak istediğiniz reklam boyutuna ayarlayın. Sabit değerle tanımlanan standart boyutu kullanmak istemiyorsanız bunun yerine özel bir boyut ayarlayabilirsiniz. Ayrıntılar için banner boyutu bölümüne bakın.

  • ads:adUnitId: Bunu, uygulamanızda reklamların görüntüleneceği reklam birimine verilen benzersiz tanımlayıcı olarak ayarlayın. Banner reklamları farklı etkinliklerde gösteriyorsanız her biri bir reklam birimi gerektirir.

Alternatif olarak AdView öğesini programatik olarak oluşturabilirsiniz:

Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

Her zaman test reklamlarıyla test etme

Uygulamalarınızı oluştururken ve test ederken canlı, üretim reklamları yerine test reklamlarını kullandığınızdan emin olun. Aksi takdirde hesabınız askıya alınabilir.

Test reklamlarını yüklemenin en kolay yolu, Android banner'larına özel test reklam birimi kimliğimizi kullanmaktır:

ca-app-pub-3940256099942544/6300978111

Bu kod, her istek için test reklamları döndürecek şekilde özel olarak yapılandırılmıştır. Kodlama, test etme ve hata ayıklama sırasında bu reklam öğesini kendi uygulamalarınızda kullanabilirsiniz. Uygulamanızı yayınlamadan önce bu kimliği kendi reklam birimi kimliğinizle değiştirdiğinizden emin olmanız yeterlidir.

Mobile Ads SDK'sının test reklamlarının nasıl çalıştığı hakkında daha fazla bilgi için Test Reklamları bölümüne bakın.

Reklam yükle

AdView oluşturulduktan sonraki adım, bir reklam yüklemektir. Bu işlem AdView sınıfındaki loadAd() yöntemi ile yapılır. Tek bir reklam isteği hakkında hedefleme bilgileri gibi çalışma zamanı bilgilerini barındıran bir AdRequest parametresi gerekir.

Bir Activity öğesinin onCreate() yönteminde reklamın nasıl yükleneceğini gösteren bir örneği aşağıda bulabilirsiniz:

MainActivity (alıntı)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

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

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

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

Reklamınız yüklenemiyorsa reklam biriminizi yenilenecek şekilde yapılandırdığınız sürece açıkça başka bir reklam istemenize gerek yoktur. Google Mobile Ads SDK'sıAdMob web arayüzünde belirttiğiniz tüm yenileme hızına uyar. Yenilemeyi etkinleştirmediyseniz yeni bir istek göndermeniz gerekir.

İşte bu kadar. Uygulamanız artık banner reklam göstermeye hazır.

Reklam etkinlikleri

Reklamınızın davranışını daha da özelleştirmek için reklamın yaşam döngüsünde çeşitli etkinlikleri (yükleme, açma, kapatma vb.) bağlayabilirsiniz. Bu etkinlikleri AdListener sınıfı aracılığıyla dinleyebilirsiniz.

AdView ile AdListener kullanmak için setAdListener() yöntemini çağırın:

Java

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

mAdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

AdListener içindeki geçersiz kılınabilir yöntemlerin her biri, bir reklamın yaşam döngüsündeki bir etkinliğe karşılık gelir.

Geçersiz kılınabilir yöntemler
onAdClicked() Bir reklam için tıklama kaydedildiğinde onAdClicked() yöntemi çağrılır.
onAdClosed() Bir kullanıcı bir reklamın hedef URL'sini görüntüledikten sonra uygulamaya döndüğünde onAdClosed() yöntemi çağrılır. Uygulamanız, askıya alınan etkinliklere devam etmek veya kendisini etkileşime hazır hale getirmek için gereken diğer işleri yapmak için bunu kullanabilir. Android API Demo uygulamasındaki reklam işleyici yöntemlerinin uygulanması için AdMob AdListener örneğine bakın.
onAdFailedToLoad() onAdFailedToLoad() yöntemi, parametre içeren tek yöntemdir. LoadAdError türündeki hata parametresi, hangi hatanın oluştuğunu açıklar. Daha fazla bilgi için Reklam Yükü Hatalarında Hata Ayıklama belgelerini inceleyin.
onAdImpression() Bir reklam için gösterim kaydedildiğinde onAdImpression() yöntemi çağrılır.
onAdLoaded() Bir reklamın yüklenmesi bittiğinde onAdLoaded() yöntemi yürütülür. Örneğin, AdView öğesini etkinliğinize veya parçanıza eklemeyi bir reklamın yükleneceğinden emin olana kadar ertelemek istiyorsanız bunu burada yapabilirsiniz.
onAdOpened() Bir reklam, ekranı kaplayan bir yer paylaşımı açtığında onAdOpened() yöntemi çağrılır.

Reklamınızı yerleştirdiğiniz kapsayıcının boyutu en az banner kadar olmalıdır. Kapsayıcınızda dolgu varsa bu, kapsayıcınızın boyutunu etkili bir şekilde azaltır. Kapsayıcının banner reklamı sığdıramaması durumunda banner görünmez ve günlüklerde şu uyarıyı alırsınız:

W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.

Aşağıdaki tabloda standart banner boyutları listelenmiştir.

dp cinsinden boyut (GxY) Açıklama Kullanılabilirlik Reklam Boyutu sabiti
320x50 Banner Telefonlar ve tabletler BANNER
320x100 Büyük banner Telefonlar ve tabletler LARGE_BANNER
300x250 IAB orta boy dikdörtgen Telefonlar ve tabletler MEDIUM_RECTANGLE
468x60 IAB tam boyutlu banner Tabletler FULL_BANNER
728x90 IAB skor tablosu Tabletler LEADERBOARD
Sağlanan genişlik x Uyarlanabilir yükseklik Uyarlanabilir banner Telefonlar ve tabletler Yok
Ekran genişliği x 32|50|90 Akıllı banner Telefonlar ve tabletler SMART_BANNER

Özel banner boyutu tanımlamak için istediğiniz AdSize değerini gösterildiği gibi ayarlayın:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

Video reklamlar için donanım hızlandırma

Video reklamların banner reklam görüntülemelerinizde başarılı bir şekilde gösterilmesi için donanım hızlandırma özelliğinin etkinleştirilmesi gerekir.

Donanım hızlandırma varsayılan olarak etkindir ancak bazı uygulamalar bunu devre dışı bırakmayı seçebilir. Uygulamanız için bu geçerliyse reklam kullanan Activity sınıfları için donanım hızlandırmayı etkinleştirmenizi öneririz.

Donanım hızlandırmayı etkinleştirme

Uygulamanız, donanım hızlandırma genel olarak açıldığında düzgün çalışmazsa bunu bağımsız etkinlikler için de denetleyebilirsiniz. Donanım hızlandırmayı etkinleştirmek veya devre dışı bırakmak üzere AndroidManifest.xml öğenizdeki <application> ve <activity> öğeleri için android:hardwareAccelerated özelliğini kullanabilirsiniz. Aşağıdaki örnek, uygulamanın tamamı için donanım hızlandırmayı etkinleştirir ancak tek bir etkinlik için devre dışı bırakır:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Donanım hızlandırmasını kontrol etme seçenekleri hakkında daha fazla bilgi edinmek için Donanım hızlandırma kılavuzuna bakın. Etkinlik devre dışı bırakılırsa donanım hızlandırma için tek tek reklam görünümleri etkinleştirilemez. Bu nedenle, etkinliğin kendisinin donanım hızlandırması etkinleştirilmiş olmalıdır.

Ek kaynaklar

GitHub'daki örnekler

  • Banner reklam örneği: Java | Kotlin

  • Gelişmiş özellikler demosu: Java | Kotlin

  • Banner RecyclerView örnek uygulaması: Java

Mobile Ads Garage eğitim videoları

Başarı öyküleri

Sonraki adımlar

Şu konuları keşfedin: