آگهیهای تصویردرتصویر (PiP) در پنجرهای شناور نمایش داده میشوند که در بالای محتوای روی صفحه، مانند مقالات، فیدها یا گیمپلی، باقی میماند. این قالب به کاربران اجازه میدهد درحالیکه آگهی همچنان قابلمشاهده است، با برنامهتان تعامل داشته باشند. برای نمایش آگهیهایی که کل صفحه را اشغال نمیکنند، این قالب را انتخاب کنید. درباره تبلیغات تصویردرتصویر بیشتر بدانید.
این راهنما درخواست و نمایش آگهیهای تصویردرتصویر در برنامه شما را بااستفاده از Google Mobile Ads Unity Plugin پوشش میدهد.
قبلاز شروع
قبلاز ادامه دادن، موارد زیر را انجام دهید:
Google Mobile Ads Unity Plugin نسخه
11.6.0یا جدیدتر را نصب کنید.
- برای برنامههای Android، نصب کنید GMA Next-Gen SDK.
فعال کردن آگهیهای آزمایشی و استفاده از شناسههای واحد آگهی آزمایشی زیر:
Android
ca-app-pub-3940256099942544/9657123429iOS
ca-app-pub-3940256099942544/8810945611
بار کردن آگهی
برای بار کردن
PictureInPictureAd
شیء، درخواست آگهی بسازید و متد بار کردن را فراخوانی کنید:
_adUnitId را با شناسه واحد آگهیتان جایگزین کنید.
نمایش آگهی
برای نمایش آگهی تصویردرتصویر روی صفحه، متد show را فراخوانی کنید. مثال زیر آگهی را در جایگاه پیشفرض نمایش میدهد:
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; } }