Banner reklamlar

Banner reklamlar, uygulama düzeninin bir kısmını kaplayan dikdörtgen reklamlardır. Bunlar, kullanıcılar uygulama ile etkileşimde bulunurken ekranın üst veya alt kısmına sabitlenmiş olarak ya da kullanıcı sayfayı kaydırırken içerikle satır içi şekilde kalır. Banner reklamlar, belirli bir süre sonra otomatik olarak yenilenebilir. Daha fazla bilgi için Banner reklamlara genel bakış konusunu inceleyin.

Bu kılavuzda, belirlediğiniz reklam genişliğini kullanarak reklam boyutunu her cihaz için optimize ederek performansı en üst düzeye çıkaran sabit uyarlanabilir banner reklamlarıkullanmaya nasıl başlayacağınız gösterilmektedir.

Sabit uyarlanabilir banner reklamlar, normal sabit boyutlu reklamlar yerine sabit en boy oranlı reklamlardır. En boy oranı, 320x50 sektör standardına benzer. Kullanılabilir tam genişliği belirttiğinizde, bu genişlik için optimum yüksekliğe sahip bir reklam döndürülür. Optimum yükseklik aynı cihazdan yapılan istekler arasında değişmez ve reklam yenilendiğinde etrafındaki görünümlerin hareket etmesi gerekmez.

Ön koşullar

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ı için özel test reklam birimi kimliğimizi kullanmaktır:

/6499/example/adaptive-banner

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 Reklamları Test Etme bölümüne bakın.

Düzene AdManagerAdView ekle

Bir banner'ı görüntülemenin ilk adımı, AdManagerAdView öğesini göstermek istediğiniz Activity veya Fragment düzenine yerleştirmektir:

Java

private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad hasn't been laid out, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

private void loadBanner() {
  
  // Create a new ad view.
  AdManagerAdView adView = new AdManagerAdView(this);
  adView.setAdSizes(getAdSize());
  adView.setAdUnitId("/6499/example/adaptive-banner");

  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin


// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
  get() {
    val display = windowManager.defaultDisplay
    val outMetrics = DisplayMetrics()
    display.getMetrics(outMetrics)

    val density = outMetrics.density

    var adWidthPixels = binding.adViewContainer.width.toFloat()
    if (adWidthPixels == 0f) {
      adWidthPixels = outMetrics.widthPixels.toFloat()
    }

    val adWidth = (adWidthPixels / density).toInt()
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
  }

private fun loadBanner() {
  
  // Create a new ad view.
  val adView = AdManagerAdView(this)
  adView.adSizes = adSize
  adView.adUnitId = "/6499/example/adaptive-banner"

  // Create an ad request.
  val adRequest = AdManagerAdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

Reklam yükle

AdManagerAdView oluşturulduktan sonraki adım, bir reklam yüklemektir. Bu işlem AdManagerAdView 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 AdManagerAdRequest parametresi gerekir.

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

Java

private void loadBanner() {
  // Create a new ad view.
  adView = new AdManagerAdView(this);
  adView.setAdUnitId(AD_UNIT);
  adView.setAdSize(getAdSize());
  
  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

  // Start loading the ad in the background.
  AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
  adView.loadAd(adRequest);
}

Kotlin

private fun loadBanner() {
  // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
  adView.adUnitId = "/6499/example/banner"
  adView.setAdSize(adSize)
  
  // Create an ad request.
  val adRequest = AdManagerAdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.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ı, web arayüzünde belirttiğiniz yenileme hızına Ad Manageruyar. 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 yaşam döngüsündeki yükleme, reklam gösterimi ve tıklama gibi birçok etkinliğin yanı sıra reklam açılışı ve kapanışı etkinliklerini dinleyebilirsiniz. Banner'ı yüklemeden önce geri çağırmanın ayarlanması önerilir.

Java

AdManagerAdView.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

AdManagerAdView.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.
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, AdManagerAdView öğ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.

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ği etkinleştirilmiş olmalıdır.

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ırmayı kontrol etme seçenekleri hakkında daha fazla bilgi 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üntülemelerinin etkinleştirilemeyeceğini, dolayısıyla etkinliğin kendisinin donanım hızlandırmanın etkinleştirilmiş olması gerektiğini unutmayın.

Manuel gösterim sayımı

Manuel gösterim sayma yalnızca reklam öğelerinin doğrudan Ad Manager'da trafiğe eklendiği doğrudan satılan ve kurum kampanyalarıyla uyumludur. Dolgu veya üçüncü taraf ağ reklamları için kullanılmamalıdır. Daha ayrıntılı bilgi için Gösterimleri ve tıklamaları sayma bölümüne bakın.

Bir gösterimin ne zaman kaydedilmesi gerektiğiyle ilgili özel koşullarınız varsa gösterim ping'lerini Ad Manager'a manuel olarak gönderebilirsiniz. Bunu yapmak amacıyla bir reklamı yüklemeden önce manuel gösterimler için AdManagerAdRequest özelliğini etkinleştirin:

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build();

Kotlin

val adRequest = AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build()

Bir reklamın başarıyla döndürüldüğünü ve ekranda olduğunu belirlediğinizde manuel olarak gösterim kaydedebilirsiniz:

Java

AdManagerAdView.recordManualImpression();

Kotlin

AdManagerAdView.recordManualImpression()

Uygulama etkinlikleri

Uygulama etkinlikleri, kullanıcıların uygulama kodlarına mesaj gönderebilen reklamlar oluşturmanıza olanak tanır. Daha sonra uygulama, bu mesajlara göre işlem yapabilir.

AppEventListener kullanarak Ad Manager'daki belirli uygulama etkinliklerini dinleyebilirsiniz. Bu etkinlikler, onAdLoaded() çağrılmadan önce bile, reklamın yaşam döngüsü boyunca herhangi bir zamanda gerçekleşebilir.

Java

public interface AppEventListener {
  void onAppEvent(String name, String info);
}

Kotlin

interface AppEventListener {
    fun onAppEvent(name: String, info: String)
}

Bir reklamda bir uygulama etkinliği gerçekleştiğinde void onAppEvent(String name, String info) çağrılır. Bu arayüz, etkinliğiniz veya başka bir nesne tarafından uygulanabilir:

Java

import com.google.android.gms.ads.admanager.*;

public class BannerExample extends Activity implements AppEventListener {
}

Kotlin

import com.google.android.gms.ads.admanager.*

class BannerExample : Activity(), AppEventListener {
}

ve daha sonra, AdManagerAdView öğesine iletildi:

Java

AdManagerAdView.setAppEventListener(this);

Kotlin

AdManagerAdView.appEventListener = this

Renk adı olan bir uygulama etkinliğine bağlı olarak uygulamanızın arka plan renginin nasıl değiştirileceğini gösteren bir örneği aşağıda bulabilirsiniz:

Java

@Override
public void onAppEvent(String name, String info) {
  if ("color".equals(name)) {
    if ("green".equals(info)) {
      // Set background color to green.
    } else if ("blue".equals(info)) {
      // Set background color to blue.
    } else {
      // Set background color to black.
    }
  }
}

Kotlin

override fun onAppEvent(name: String?, info: String?) {
    if (name == "color") {
        when (info) {
            "green" -> {
                // Set background color to green.
            }
            "blue" -> {
                // Set background color to blue.
            }
            else -> {
                // Set background color to black.
            }
        }
    }
}

İşleyici'ye renk uygulaması etkinlik mesajları gönderen ilgili reklam öğesi şu şekildedir:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

API Demo uygulamasında uygulama etkinliklerinin uygulanması için Ad Manager Uygulama Etkinlikleri örneğine bakın.

Java Kotlin

Ek kaynaklar

GitHub'daki örnekler

  • Sabit uyarlanabilir banner reklam örneği: Java | Kotlin

Sonraki adımlar

Daraltılabilir banner'lar

Daraltılabilir banner reklamlar, başlangıçta daha büyük bir yer paylaşımı olarak sunulan ve reklamı daha küçük bir boyuta daraltmayı sağlayan bir düğmeyle sunulan banner reklamlardır. Performansınızı daha da optimize etmek için bu özelliği kullanabilirsiniz. Daha fazla ayrıntı için daraltılabilir banner reklamlar konusuna bakın.

Satır içi uyarlanabilir banner'lar

Satır içi uyarlanabilir banner'lar, sabit uyarlanabilir banner'lara kıyasla daha büyük ve daha uzundur. Ekranların yüksekliği değişkendir ve cihaz ekranı kadar yüksek olabilir. Kaydırılabilir içeriğe banner reklam yerleştiren uygulamalarda, sabit uyarlanabilir banner reklamlara kıyasla satır içi uyarlanabilir banner'ların kullanılması önerilir. Daha fazla ayrıntı için satır içi uyarlanabilir banner'lar bölümüne bakın.

Diğer konuları keşfedin