Banner reklamlar

Banner görüntüleme sayısı, ekranda yer kaplayan dikdörtgen resim veya metin reklamlardır. Kullanıcılar uygulamayla etkileşim kurarken ekranda kalmaya devam eder ve belirli bir süre sonra otomatik olarak yenilenebilir. Mobil reklamcılık konusunda yeniyseniz bu kaynaklardan yararlanabilirsiniz.

Bu kılavuzda, banner görüntülemelerinin Unity uygulamasına nasıl entegre edileceği gösterilmektedir. Kod snippet'leri ve talimatların yanı sıra banner'ların doğru şekilde boyutlandırılması hakkında bilgiler ve ek kaynakların bağlantıları da bu kılavuzda yer almaktadır.

Ön koşullar

Her zaman test reklamlarıyla test yapın

Aşağıdaki örnek kod, test reklamları istemek için kullanabileceğiniz bir reklam birimi kimliği içerir. Her istek için yayın reklamları yerine test reklamları döndürecek şekilde özel olarak yapılandırılmıştır. Bu sayede güvenli bir şekilde kullanılabilir.

Ancak Ad Manager web arayüzüne bir uygulama kaydettikten ve uygulamanızda kullanmak için kendi reklam birimi kimliklerinizi oluşturduktan sonra, geliştirme sırasında cihazınızı test cihazı olarak açıkça yapılandırın.

/21775744923/example/adaptive-banner

Mobile Ads SDK'sını ilk kullanıma hazırlayın

Reklamları yüklemeden önce uygulamanızın MobileAds.Initialize() çağrısını yaparak Mobile Ads SDK'sını ilk kullanıma hazırlamasını sağlayın. Bu işlemin ideal olarak uygulamanın lansmanında bir kez yapılması gerekir.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

Uyumlulaştırma kullanıyorsanız reklamları yüklemeden önce geri çağırma işlevinin gerçekleşmesini bekleyin. Bu, tüm uyumlulaştırma bağdaştırıcıların başlatılmasını sağlar.

BannerView örneği

Aşağıdaki örnek kodda banner görünümünün nasıl kullanılacağı ayrıntılı olarak açıklanmıştır. Örnekte, bir banner görünümü örneği oluşturur, banner görünümüne reklam yüklemek için AdManagerAdRequest kullanır ve ardından yaşam döngüsü etkinliklerini işleyerek özelliklerini genişletirsiniz.

Banner görünümü oluşturma

Banner görüntüsünü kullanmanın ilk adımı, GameObject öğesine bağlı bir C# komut dosyasında banner görüntüsünün bir örneğini oluşturmaktır.


  // This ad unit is configured to always serve test ads.
  private string _adUnitId = "/21775744923/example/adaptive-banner";

  AdManagerBannerView _bannerView;

  /// <summary>
  /// Creates a 320x50 banner view at top of the screen.
  /// </summary>
  public void CreateBannerView()
  {
      Debug.Log("Creating banner view");

      // If we already have a banner, destroy the old one.
      if (_bannerView != null)
      {
          DestroyAd();
      }

      // Create a 320x50 banner at top of the screen
      _bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
  }

AdManagerBannerView sınıfının kurucusu aşağıdaki parametrelere sahiptir:

  • adUnitId: AdManagerBannerView'ın reklamları yüklemesi gereken reklam birimi kimliği.
  • AdSize: Kullanmak istediğiniz reklam boyutu. Ayrıntılar için Banner boyutları bölümüne bakın.
  • AdPosition: Banner görüntülemelerinin yerleştirilmesi gereken konum. AdPosition enum'unda geçerli reklam konumu değerleri listelenir.

Platforma bağlı olarak farklı reklam birimlerinin nasıl kullanıldığını not edin. iOS'te reklam isteği göndermek için iOS reklam birimi, Android'de istek göndermek için Android reklam birimi kullanmanız gerekir.

(İsteğe bağlı) Özel bir konuma sahip banner görünümü oluşturma

AdManagerBannerView öğesinin ekranda nereye yerleştirileceği konusunda AdPosition değerlerinin sunduğundan daha fazla kontrol sahibi olmak için parametre olarak x ve y koordinatlarını içeren kurucuyu kullanın:

// Create a 320x50 banner views at coordinate (0,50) on screen.
_bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, 0, 50);

AdManagerBannerView öğesinin sol üst köşesi, oluşturucuya iletilen x ve y değerlerine göre konumlandırılır. Bu durumda, orijin ekranın sol üst köşesidir.

(İsteğe bağlı) Özel boyuta sahip bir banner görünümü oluşturma

AdSize sabit kullanmasının yanı sıra reklamınız için özel bir boyut da belirtebilirsiniz:

// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new AdManagerBannerView(_adUnitId, adSize, AdPosition.Bottom);

(İsteğe bağlı) Birden fazla reklam boyutu

Ad Manager, bir AdManagerBannerView içinde yayınlanmaya uygun olabilecek birden fazla reklam boyutu belirtmenize olanak tanır. Bu özelliği SDK'ya uygulamadan önce, farklı boyuttaki reklam öğeleriyle ilişkili aynı reklam birimlerini hedefleyen bir satır öğesi oluşturun.

Uygulamanızda AdSize parametrelerini ValidAdSizes'a iletin:

var adView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
adView.ValidAdSizes = new List<AdSize>
{
    AdSize.Banner, new AdSize(120, 20), new AdSize(250, 250),
};

AdManagerAdView yenileme sırasında boyut değiştirirse düzeniniz yeni boyuta otomatik olarak uyum sağlayabilir. AdManagerAdView, sonraki reklam döndürülene kadar ilk parametrede iletilen boyutu varsayılan olarak kullanır.

Banner reklam yükleme

AdManagerBannerView oluşturulduktan sonra AdManagerBannerView sınıfında LoadAd() yöntemini kullanarak bir reklam yükleyin. Hedefleme bilgileri, hariç tutma etiketleri ve yayıncı tarafından sağlanan kimlik gibi çalışma zamanındaki bilgileri içeren bir parametre alır.

/// <summary>
/// Creates the banner view and loads a banner ad.
/// </summary>
public void LoadAd()
{
    // create an instance of a banner view first.
    if(_bannerView == null)
    {
        CreateAdManagerBannerView();
    }

    // create our request used to load the ad.
    var adRequest = new AdManagerAdRequest();

    // send the request to load the ad.
    Debug.Log("Loading banner ad.");
    _bannerView.LoadAd(adRequest);
}

Banner görüntüleme etkinliklerini dinleme

Reklamınızın davranışını özelleştirmek için reklamın yaşam döngüsünde yükleme, açma veya kapatma gibi çeşitli etkinliklere bağlanabilirsiniz. Bu etkinlikleri dinlemek için bir temsilci kaydedin:

/// <summary>
/// listen to events the banner view may raise.
/// </summary>
private void ListenToAdEvents()
{
    // Raised when an ad is loaded into the banner view.
    _bannerView.OnBannerAdLoaded += () =>
    {
        Debug.Log("Banner view loaded an ad with response : "
            + _bannerView.GetResponseInfo());
    };
    // Raised when an ad fails to load into the banner view.
    _bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
    {
        Debug.LogError("Banner view failed to load an ad with error : "
            + error);
    };
    // Raised when the ad is estimated to have earned money.
    _bannerView.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Banner view paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    _bannerView.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Banner view recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    _bannerView.OnAdClicked += () =>
    {
        Debug.Log("Banner view was clicked.");
    };
    // Raised when an ad opened full screen content.
    _bannerView.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Banner view full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    _bannerView.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Banner view full screen content closed.");
    };
}

Banner görünümünü yok etme

Banner görünümünü kullanmayı bitirdiğinizde kaynakları serbest bırakmak için Destroy() işlevini çağırmayı unutmayın.

/// <summary>
/// Destroys the banner view.
/// </summary>
public void DestroyAd()
{
    if (_bannerView != null)
    {
        Debug.Log("Destroying banner view.");
        _bannerView.Destroy();
        _bannerView = null;
    }
}

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

Reklamı yenileme

Reklam biriminizi yenilenecek şekilde yapılandırdıysanız reklam yüklenemezse başka bir reklam istemeniz gerekmez. Google Mobile Ads SDK'sı, Ad Manager kullanıcı arayüzünde belirttiğiniz tüm yenileme hızlarına uyar. Yenilemeyi etkinleştirmediyseniz yeni bir istek gönderin. Reklam birimi yenileme hakkında daha fazla bilgi (ör. yenileme hızı ayarlama) için Mobil uygulamalarda reklamların yenileme hızı başlıklı makaleyi inceleyin.

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

Boyut (dp cinsinden Genişlik x Yükseklik) Açıklama Kullanılabilirlik AdSize sabiti
320x50 Standart 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 Liderler 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
Akıllı Banner'ların yerini alması amaçlanan Uyarlanabilir Banner'lar hakkında daha fazla bilgi edinin.

Uygulama etkinlikleri

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

AppEvent kullanarak Ad Manager'a özgü uygulama etkinliklerini dinleyebilirsiniz. Bu etkinlikler, load çağrılmadan önce bile reklamın yaşam döngüsü sırasında herhangi bir zamanda gerçekleşebilir.

namespace GoogleMobileAds.Api.AdManager;

/// The App event message sent from the ad.
public class AppEvent
{
    // Name of the app event.
    string Name;
    // Argument passed from the app event.
    string Value;
}

OnAppEventReceived, bir reklamda uygulama etkinliği gerçekleştiğinde tetiklenir. Bu etkinliğin kodunuzda nasıl ele alınacağına dair bir örnek aşağıda verilmiştir:

_bannerview.OnAppEventReceived += (AppEvent args) =>
{
    Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};

Aşağıda, adı color olan bir uygulama etkinliğine bağlı olarak uygulamanızın arka plan renginin nasıl değiştirileceğini gösteren bir örnek verilmiştir:

_bannerview.OnAppEventReceived += (AppEvent args) =>
{
  if (args.Name == "color")
  {
    Color color;
    if (ColorUtility.TryParseColor(arg.Value, out color))
    {
      gameObject.GetComponent<Renderer>().material.color = color;
    }
  }
};

Renk uygulama etkinliği gönderen ilgili reklam öğesi aşağıda verilmiştir:

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

Ek kaynaklar