Pencere içinde pencere reklamlarını uygulama (beta)

Platform seçin: Android iOS Unity

Pencere içinde pencere

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:

Reklam yükleme

Bir PictureInPictureAd nesnesi yüklemek için bir reklam isteği oluşturun ve yükleme yöntemini çağırın:

public void LoadPictureInPictureAd()
{
    // Clean up any existing ad before loading a new one.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Destroy();
        _pictureInPictureAd = null;
    }

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

    // Send the request to load the ad.
    PictureInPictureAd.Load(_adUnitId, adRequest,
        (PictureInPictureAd ad, LoadAdError error) =>
        {
            if (error != null || ad == null)
            {
                Debug.LogWarning(
                    "Picture-in-picture ad failed to load: " + error);
                return;
            }

            // Capture the PictureInPictureAd reference for later use.
            _pictureInPictureAd = ad;
        });
}

_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;
    }
}