Pencere içinde pencere (PiP) reklamlar, ekrandaki içeriğin (ör. makaleler, feed'ler veya oyunlar) üzerinde kalan kayan bir pencerede gösterilir. Bu biçim, reklam görünür durumdayken kullanıcıların uygulamanızla etkileşim kurmasına olanak tanır. Ekranın tamamını kaplamayan görüntülü reklamlar göstermek için bu biçimi seçin.
Bu kılavuzda, Google Mobile Ads Unity Plugin kullanarak uygulamanızda pencere içinde pencere reklamları isteme ve görüntüleme ele alınmaktadır.
Başlamadan önce
Devam etmeden önce aşağıdakileri yapın:
Google Mobile Ads Unity Plugin
11.6.0veya sonraki bir sürümü yükleyin.
- Android uygulamaları için GMA Next-Gen SDK uygulamasını yükleyin.
Test reklamlarını etkinleştirin ve aşağıdaki test reklam birimi kimliğini kullanın:
/21775744923/example/picture-in-picture
Reklam yükleme
Bir
PictureInPictureAd
nesnesi yüklemek için bir reklam isteği oluşturun ve yükleme yöntemini çağırın:
_adUnitId yerine reklam birimi kimliğinizi yazın.
Reklamı göster
Pencere içinde pencere reklamı ekranda göstermek için show yöntemini çağırın. Aşağıdaki örnekte reklam varsayılan konumda gösterilmektedir:
public void ShowPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Show(); } else { Debug.Log("No ad to show."); } }
Konumu ayarlama
Google Mobile Ads Unity Plugin, ilk gösterildiğinde varsayılan olarak ekranın sağ alt köşesinde, daha önce gösterildiyse bilinen son konumda pencere içinde pencere reklam gösterir. Reklamın görüneceği yeri özelleştirmek için reklamı gösterirken bir konum belirtin. Aşağıdaki örnekte, konum ekranın sol üst köşesindeki içeriğin üstüne ayarlanmıştır:
public void ShowPictureInPictureAdTopLeft() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Show(PictureInPictureAdPosition.TopLeft); } else { Debug.Log("No ad to show."); } }
Mevcut tüm pozisyonlar için PictureInPictureAdPosition sayfasına bakın.
Reklam etkinliklerini dinleme
Pencere içinde pencere reklam yaşam döngüsü olaylarını işlemek için reklamınızı göstermeden önce reklam etkinliklerine kaydolun. Bu etkinlikler, tıklama ve gösterim gibi reklam etkileşimlerini raporlar. Bu etkinlikler, reklamın gösterilmesi veya gizlenmesi gibi pencere içinde pencereye özel etkinlikleri de bildirir:
private void RegisterEventHandlers(PictureInPictureAd ad) { // Raised when the ad is estimated to have earned money. ad.OnAdPaid += (AdValue adValue) => { Debug.Log($"Picture-in-picture ad paid: {adValue.Value} {adValue.CurrencyCode}"); }; // Raised when an impression is recorded for an ad. ad.OnAdImpressionRecorded += () => { Debug.Log("Picture-in-picture ad recorded an impression."); }; // Raised when a click is recorded for an ad. ad.OnAdClicked += () => { Debug.Log("Picture-in-picture ad recorded a click."); }; // Raised when the picture-in-picture ad is displayed on the screen. ad.OnAdShown += () => { Debug.Log("Picture-in-picture ad shown."); }; // Raised when the picture-in-picture ad is hidden from the screen. ad.OnAdHidden += () => { Debug.Log("Picture-in-picture ad hidden."); }; // Raised when an ad opened full screen content. ad.OnAdFullScreenContentOpened += () => { Debug.Log("Picture-in-picture ad opened full screen content."); }; // Raised when the ad closed full screen content. ad.OnAdFullScreenContentClosed += () => { Debug.Log("Picture-in-picture ad closed full screen content."); }; // Raised when the ad failed to open full screen content. ad.OnAdFullScreenContentFailed += (AdError error) => { Debug.LogWarning( "Picture-in-picture ad failed to open full screen " + "content: " + error); }; }
Reklamı gizleme
Sabit reklamı ekrandan kaldırmak için hide yöntemini çağırın. Bu yöntem, reklam gizli etkinliğini çağırır:
public void HidePictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Hide(); } else { Debug.Log("No ad to hide."); } }
Reklam kaynaklarını temizleme
Bellek sızıntılarını önlemek için uygulamanız reklamı kullanmayı bitirdiğinde reklam nesnesine olan referansınızı bırakın. Örneğin, uygulamanız reklamı artık göstermediğinde veya reklamla tekrar etkileşimde bulunmadığında:
public void DestroyPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Destroy(); _pictureInPictureAd = null; } }