پیاده‌سازی آگهی‌های تصویردرتصویر (نسخه بتا)

تصویر در تصویر

آگهی‌های تصویردرتصویر (PiP) در پنجره‌ای شناور نمایش داده می‌شوند که روی محتوای صفحه (مثل مقاله‌ها، فیدها، یا شیوه بازی) باقی می‌ماند. این قالب به کاربران اجازه می‌دهد درحالی‌که آگهی همچنان نمایان است، با برنامه شما تعامل داشته باشند. برای نمایش آگهی‌هایی که کل صفحه‌نمایش را اشغال نمی‌کنند، این قالب را انتخاب کنید. درباره آگهی‌های تصویردرتصویر بیشتر بدانید.

این راهنما درخواست و نمایش آگهی‌های تصویردرتصویر در برنامه شما را بااستفاده از Google Mobile Ads Unity Plugin پوشش می‌دهد.

قبل‌از شروع

پیش‌از ادامه دادن، کارهای زیر را انجام دهید:

بار کردن آگهی

برای بار کردن شیء PictureInPictureAd ، درخواست آگهی ایجاد کنید و روش بار کردن را فراخوانی کنید:

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 AdRequest();

    // 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 را با شناسه واحد آگهی‌تان جایگزین کنید.

نمایش آگهی

برای نمایش آگهی تصویردرتصویر روی صفحه، روش نمایش را فراخوانی کنید. مثال زیر آگهی را در جایگاه پیش‌فرض نمایش می‌دهد:

public void ShowPictureInPictureAd()
{
    // Use the ad reference saved from the Load callback.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Show();
    }
    else
    {
        Debug.Log("No ad to show.");
    }
}

تنظیم کردن موقعیت

به‌طور پیش‌فرض، Google Mobile Ads Unity Plugin آگهی تصویردرتصویر را در گوشه پایین سمت راست صفحه‌نمایش نشان می‌دهد، یا اگر قبلاً نشان داده شده باشد، در آخرین موقعیت شناخته‌شده نشان می‌دهد. برای سفارشی‌سازی محل نمایش آگهی، موقعیتی را هنگام نمایش آگهی مشخص کنید. مثال زیر موقعیت را در بالای محتوا در گوشه بالا سمت چپ صفحه تنظیم می‌کند:

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.");
    }
}

برای مشاهده همه موقعیت‌های دردسترس، به PictureInPictureAdPosition مراجعه کنید.

گوش دادن به رویدادهای آگهی

برای مدیریت رویدادهای چرخه حیات آگهی تصویردرتصویر، قبل‌از نمایش آگهی، برای رویدادهای آگهی ثبت‌نام کنید. این رویدادها تعاملات آگهی، مانند کلیک‌ها و ظهورها را گزارش می‌کنند. این رویدادها همچنین رویدادهای خاص تصویردرتصویر را گزارش می‌کنند، مانند زمانی که آگهی نمایش داده می‌شود یا پنهان می‌شود:

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

پنهان کردن آگهی

برای برداشتن آگهی شناور از صفحه، روش پنهان کردن را فراخوانی کنید. این روش رویداد پنهان آگهی را فراخوانی می‌کند:

public void HidePictureInPictureAd()
{
    // Use the ad reference saved from the Load callback.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Hide();
    }
    else
    {
        Debug.Log("No ad to hide.");
    }
}

پاک کردن منابع آگهی

برای جلوگیری از نشت حافظه، وقتی برنامه‌تان استفاده از آگهی را تمام کرد، ارجاع به شیء آگهی را رها کنید. برای مثال، وقتی برنامه‌تان دیگر آگهی را نمایش نمی‌دهد یا دوباره با آن تعامل برقرار نمی‌کند:

public void DestroyPictureInPictureAd()
{
    // Use the ad reference saved from the Load callback.
    if (_pictureInPictureAd != null)
    {
        _pictureInPictureAd.Destroy();
        _pictureInPictureAd = null;
    }
}