Quảng cáo hình trong hình (PiP) xuất hiện trong một cửa sổ nổi luôn ở trên cùng của nội dung trên màn hình, chẳng hạn như bài viết, nguồn cấp dữ liệu hoặc trò chơi. Định dạng này cho phép người dùng tương tác với ứng dụng của bạn trong khi quảng cáo vẫn hiển thị. Để hiển thị quảng cáo hiển thị không chiếm toàn bộ màn hình, hãy chọn định dạng này.
Hướng dẫn này trình bày cách yêu cầu và hiển thị quảng cáo hình trong hình trong ứng dụng của bạn bằng Google Mobile Ads Unity Plugin.
Trước khi bắt đầu
Trước khi tiếp tục, hãy làm như sau:
Cài đặt Google Mobile Ads Unity Plugin phiên bản
11.6.0trở lên.
- Đối với ứng dụng Android, hãy cài đặt GMA Next-Gen SDK.
Bật quảng cáo thử nghiệm và sử dụng mã đơn vị quảng cáo thử nghiệm sau:
/21775744923/example/picture-in-picture
Tải một quảng cáo
Để tải một đối tượng
PictureInPictureAd, hãy tạo một yêu cầu quảng cáo và gọi phương thức tải:
Thay thế _adUnitId bằng mã đơn vị quảng cáo của bạn.
Hiển thị quảng cáo
Để hiển thị quảng cáo trong hình trong hình trên màn hình, hãy gọi phương thức show. Ví dụ sau đây cho thấy quảng cáo ở vị trí mặc định:
public void ShowPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Show(); } else { Debug.Log("No ad to show."); } }
Đặt vị trí
Theo mặc định, Google Mobile Ads Unity Plugin sẽ hiển thị quảng cáo hình trong hình ở góc dưới cùng bên phải màn hình khi xuất hiện lần đầu hoặc ở vị trí đã biết gần đây nhất nếu xuất hiện trước đó. Để tuỳ chỉnh vị trí xuất hiện của quảng cáo, hãy chỉ định một vị trí khi hiển thị quảng cáo. Ví dụ sau đây đặt vị trí ở đầu nội dung ở góc trên cùng bên trái màn hình:
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."); } }
Để biết tất cả các vị trí có sẵn, hãy xem PictureInPictureAdPosition.
Theo dõi các sự kiện quảng cáo
Để xử lý các sự kiện trong vòng đời quảng cáo ở chế độ hình trong hình, hãy đăng ký các sự kiện quảng cáo trước khi hiển thị quảng cáo. Các báo cáo Sự kiện này báo cáo lượt tương tác với quảng cáo, chẳng hạn như lượt nhấp và lượt hiển thị. Các sự kiện này cũng báo cáo các sự kiện dành riêng cho chế độ hình trong hình, chẳng hạn như khi quảng cáo hiển thị hoặc ẩn:
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); }; }
Ẩn quảng cáo
Để xoá quảng cáo nổi khỏi màn hình, hãy gọi phương thức ẩn. Phương thức này gọi sự kiện quảng cáo bị ẩn:
public void HidePictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Hide(); } else { Debug.Log("No ad to hide."); } }
Xoá tài nguyên quảng cáo
Để tránh rò rỉ bộ nhớ, hãy bỏ tham chiếu đến đối tượng quảng cáo khi ứng dụng của bạn hoàn tất việc sử dụng quảng cáo. Ví dụ: khi ứng dụng của bạn không còn hiển thị hoặc tương tác với quảng cáo nữa:
public void DestroyPictureInPictureAd() { // Use the ad reference saved from the Load callback. if (_pictureInPictureAd != null) { _pictureInPictureAd.Destroy(); _pictureInPictureAd = null; } }