Os anúncios picture-in-picture são mostrados em uma janela flutuante que fica sobre o conteúdo na tela, como artigos, feeds ou gameplay. Esse formato permite que os usuários interajam com o app enquanto o anúncio permanecer visível. Para mostrar anúncios de display que não ocupam a tela inteira, escolha esse formato.
Este guia aborda como solicitar e mostrar anúncios picture-in-picture no seu app usando Google Mobile Ads Unity Plugin.
Antes de começar
Antes de continuar, faça o seguinte:
Instale a versão Google Mobile Ads Unity Plugin
11.6.0ou mais recente.
- Para apps Android, instale GMA Next-Gen SDK.
Ative os anúncios de teste e use este ID do bloco de anúncios de teste:
/21775744923/example/picture-in-picture
Carregar um anúncio
Para carregar um objeto
PictureInPictureAd, crie uma solicitação de anúncio e chame o método de carregamento:
Substitua _adUnitId pelo ID do seu bloco de anúncios.
Veicular o anúncio
Para mostrar o anúncio picture-in-picture na tela, chame o método de exibição. O exemplo a seguir mostra o anúncio na posição padrão:
public void ShowPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Show(); } else { Debug.Log("No ad to show."); } }
Definir a posição
Por padrão, Google Mobile Ads Unity Plugin mostra um anúncio picture-in-picture no canto inferior direito da tela, quando aparece pela primeira vez, ou na última posição conhecida, se já tiver sido mostrado. Para personalizar onde o anúncio aparece, especifique uma posição ao mostrá-lo. O exemplo abaixo define a posição na parte de cima do conteúdo no canto superior esquerdo da tela:
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."); } }
Para ver todas as posições disponíveis, consulte
PictureInPictureAdPosition.
Detectar eventos de anúncios
Para processar eventos de ciclo de vida de anúncios picture-in-picture, registre-se para eventos de anúncios antes de mostrar o anúncio. Esses eventos informam interações com anúncios, como cliques e impressões. Eles também informam eventos específicos do picture-in-picture, como quando o anúncio é mostrado ou ocultado:
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); }; }
Ocultar o anúncio
Para remover o anúncio flutuante da tela, chame o método de ocultação. Esse método invoca o evento de anúncio oculto:
public void HidePictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Hide(); } else { Debug.Log("No ad to hide."); } }
Limpar recursos de anúncio
Para evitar vazamentos de memória, remova a referência ao objeto de anúncio quando o app terminar de usá-lo. Por exemplo, quando o app não mostra mais o anúncio ou não interage mais com ele:
public void DestroyPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Destroy(); _pictureInPictureAd = null; } }