آگهیهای تصویردرتصویر (PiP) در پنجره شناوری نمایش داده میشوند که روی محتوای صفحه (مثل مقالهها، فیدها، یا شیوه بازی) باقی میماند. این قالب به کاربران امکان میدهد درحالیکه آگهی قابلمشاهده است با برنامه شما تعامل داشته باشند. برای نمایش آگهیهایی که کل صفحهنمایش را اشغال نمیکنند، این قالب را انتخاب کنید.
این راهنما درخواست و نمایش آگهیهای تصویردرتصویر در برنامه شما بااستفاده از Google Mobile Ads Unity Plugin را پوشش میدهد.
قبلاز شروع
پیشاز ادامه دادن، کارهای زیر را انجام دهید:
Google Mobile Ads Unity Plugin نسخه
11.6.0یا جدیدتر را نصب کنید.
- برای برنامههای Android، نصب GMA Next-Gen SDK.
آگهیهای آزمایشی را فعال کنید و از شناسه واحد آگهی آزمایشی زیر استفاده کنید:
/21775744923/example/picture-in-picture
بار کردن آگهی
برای بار کردن شیء
PictureInPictureAd
، درخواست آگهی ایجاد کنید و روش بار کردن را فراخوانی کنید:
_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; } }