Les annonces Picture-in-Picture (PiP) s'affichent dans une fenêtre flottante qui reste au-dessus du contenu à l'écran, comme des articles, des flux ou des jeux. Ce format permet aux utilisateurs d'interagir avec votre application pendant que l'annonce reste visible. Choisissez ce format pour diffuser des annonces qui n'occupent pas tout l'écran.
Ce guide explique comment demander et diffuser des annonces Picture-in-Picture dans votre application à l'aide de Google Mobile Ads Unity Plugin.
Avant de commencer
Avant de continuer, procédez comme suit :
Installez la version
11.6.0ou ultérieure de Google Mobile Ads Unity Plugin.
- Pour les applications Android, installez GMA Next-Gen SDK.
Activez les annonces tests et utilisez l'ID de bloc d'annonces test suivant :
/21775744923/example/picture-in-picture
Charger une annonce
Pour charger un
PictureInPictureAd
objet, créez une demande d'annonce et appelez la méthode de chargement :
Remplacez _adUnitId par l'ID de votre bloc d'annonces.
Diffuser l'annonce
Pour afficher l'annonce Picture-in-Picture à l'écran, appelez la méthode show. L'exemple suivant affiche l'annonce à la position par défaut :
public void ShowPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Show(); } else { Debug.Log("No ad to show."); } }
Définir la position
Par défaut, Google Mobile Ads Unity Plugin affiche une annonce Picture-in-Picture en bas à droite de l'écran lors de sa première diffusion, ou à la dernière position connue si elle a déjà été diffusée. Pour personnaliser l'emplacement de l'annonce, spécifiez une position lors de sa diffusion. L'exemple suivant définit la position au-dessus du contenu, en haut à gauche de l'écran :
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."); } }
Pour connaître toutes les positions disponibles, consultez
PictureInPictureAdPosition.
Écouter les événements d'annonce
Pour gérer les événements de cycle de vie des annonces Picture-in-Picture, enregistrez-vous aux événements d'annonce avant de diffuser votre annonce. Ces événements signalent les interactions avec les annonces, telles que les clics et les impressions. Ils signalent également les événements spécifiques aux annonces Picture-in-Picture, par exemple lorsque l'annonce s'affiche ou est masquée :
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); }; }
Masquer l'annonce
Pour supprimer l'annonce flottante de l'écran, appelez la méthode hide. Cette méthode appelle l'événement d'annonce masquée :
public void HidePictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Hide(); } else { Debug.Log("No ad to hide."); } }
Nettoyer les ressources d'annonce
Pour éviter les fuites de mémoire, supprimez votre référence à l'objet d'annonce lorsque votre application a fini d'utiliser l'annonce. Par exemple, lorsque votre application n'affiche plus l'annonce ou n'interagit plus avec elle :
public void DestroyPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Destroy(); _pictureInPictureAd = null; } }