Объявления в режиме "Картинка в картинке" показываются в плавающем окне поверх контента на экране, например статей, фидов или игрового процесса. Этот формат позволяет пользователям взаимодействовать с приложением, пока объявление остается видимым. Выберите этот формат, чтобы показывать объявления, которые не занимают весь экран.
В этом руководстве рассказывается, как запрашивать и показывать объявления в режиме "картинка в картинке" в приложении с помощью 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 идентификатором своего рекламного блока.
Покажите объявление
Чтобы показать объявление в режиме "картинка в картинке", вызовите метод 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); }; }
Скрыть объявление
Чтобы убрать плавающее объявление с экрана, вызовите метод hide. Этот метод вызывает событие скрытия объявления:
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; } }