Biểu ngữ thích ứng là thế hệ tiếp theo của quảng cáo thích ứng, giúp tăng tối đa bằng cách tối ưu hoá kích thước quảng cáo cho mỗi thiết bị. Nhờ cải thiện dựa trên biểu ngữ thông minh, vốn chỉ hỗ trợ chiều cao cố định, biểu ngữ thích ứng cho phép bạn chỉ định chiều rộng của quảng cáo và sử dụng chiều rộng này để xác định kích thước quảng cáo tối ưu.
Để chọn kích thước quảng cáo phù hợp nhất, biểu ngữ thích ứng sử dụng tỷ lệ khung hình cố định thay vì chiều cao cố định. Nhờ đó, quảng cáo biểu ngữ chiếm phần không gian nhất quán hơn màn hình trên các thiết bị và tạo cơ hội để cải thiện hiệu suất.
Khi sử dụng biểu ngữ thích ứng, xin lưu ý rằng biểu ngữ thích ứng sẽ luôn trả về kích thước không đổi cho một thiết bị và chiều rộng cho trước. Sau khi đã thử nghiệm bố cục trên một thiết bị nhất định, bạn có thể chắc chắn rằng kích thước quảng cáo đó sẽ không thay đổi. Tuy nhiên, kích thước của quảng cáo biểu ngữ có thể thay đổi trên các thiết bị khác nhau. Do đó, bố cục của bạn nên phù hợp với các biến thể về chiều cao quảng cáo. Trong một số ít trường hợp, kích thước thích ứng đầy đủ có thể không hiển thị được và một quảng cáo có kích thước tiêu chuẩn sẽ được đặt ở giữa trong vùng này.
Điều kiện tiên quyết
- Làm theo các hướng dẫn trong Hướng dẫn bắt đầu sử dụng về cách Nhập trình bổ trợ Unity quảng cáo trên thiết bị di động và Bao gồm SDK quảng cáo trên thiết bị di động.
Trường hợp nên sử dụng quảng cáo biểu ngữ thích ứng
Biểu ngữ thích ứng được thiết kế để thay thế cho cả ngành kích thước biểu ngữ chuẩn 320x50 và định dạng biểu ngữ thông minh mà chúng thay thế.
Các kích thước biểu ngữ này thường được dùng làm biểu ngữ cố định, thường là cố định ở đầu hoặc cuối màn hình.
Đối với các biểu ngữ cố định như vậy, tỷ lệ khung hình khi sử dụng biểu ngữ thích ứng sẽ là tương tự như quảng cáo chuẩn 320x50, như có thể thấy trong ba ví dụ bên dưới:
Biểu ngữ 320x50 |
Biểu ngữ thích ứng |
Biểu ngữ thông minh |
Biểu ngữ thích ứng sử dụng kích thước màn hình có sẵn hiệu quả hơn. Ngoài ra, so với biểu ngữ thông minh, bạn nên chọn biểu ngữ thích ứng vì:
Biểu ngữ này sử dụng bất kỳ chiều rộng nào mà bạn cung cấp, thay vì buộc phải đầy đủ chiều rộng màn hình, cho phép bạn tính đến vùng an toàn trên iOS và vết cắt trên màn hình trên Android.
Quảng cáo này chọn một chiều cao tối ưu cho thiết bị cụ thể, thay vì có chiều cao không đổi giữa các thiết bị có kích thước khác nhau, giảm thiểu ảnh hưởng của phân mảnh thiết bị.
Ghi chú triển khai
Khi triển khai biểu ngữ thích ứng trong ứng dụng, hãy lưu ý những điểm sau:
- Bạn phải biết chiều rộng của chế độ xem mà quảng cáo sẽ được đặt trong đó, và điều này cần tính đến chiều rộng của thiết bị cũng như mọi vùng an toàn hoặc vết cắt thích hợp.
- Đảm bảo nền của chế độ xem quảng cáo được làm mờ để tuân thủ Các chính sách của AdMob khi kích thước quảng cáo nhỏ hơn phân phát không lấp đầy vùng quảng cáo.
- Đảm bảo bạn đang sử dụng phiên bản mới nhất của Unity quảng cáo trên thiết bị di động của Google . Để sử dụng tính năng dàn xếp, hãy sử dụng phiên bản mới nhất của mỗi bộ chuyển đổi dàn xếp.
- Kích thước biểu ngữ thích ứng được thiết kế để hoạt động hiệu quả nhất khi sử dụng toàn bộ chiều rộng có sẵn. Trong hầu hết các trường hợp, đây sẽ là chiều rộng toàn màn hình của thiết bị đang được sử dụng. Hãy nhớ tính đến các vùng an toàn có thể áp dụng.
- SDK quảng cáo trên thiết bị di động của Google sẽ định kích thước biểu ngữ với chiều cao quảng cáo được tối ưu hoá cho chiều rộng đã cho khi sử dụng API AdSize thích ứng.
- Có ba phương pháp để thu thập kích thước quảng cáo cho thích ứng:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
cho chế độ ngang,AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
cho hướng dọc vàAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
cho tại thời điểm thực thi. - Kích thước được trả về cho một chiều rộng nhất định trên một thiết bị cụ thể sẽ luôn là do đó, sau khi thử nghiệm bố cục trên một thiết bị nhất định, bạn có thể đảm bảo kích thước quảng cáo sẽ không thay đổi.
- Chiều cao của biểu ngữ cố định không bao giờ lớn hơn 15% của của thiết bị hoặc 90 pixel không phụ thuộc vào mật độ và không bao giờ nhỏ hơn 50 các pixel không phụ thuộc vào mật độ.
- Đối với biểu ngữ có chiều rộng đầy đủ, bạn có thể sử dụng cờ
AdSize.FullWidth
thay vì cung cấp chiều rộng cụ thể.
Bắt đầu nhanh
Làm theo các bước bên dưới để triển khai một biểu ngữ thích ứng cố định đơn giản.
- Thu thập kích thước của quảng cáo biểu ngữ thích ứng. Kích thước bạn nhận sẽ được dùng để yêu cầu
biểu ngữ thích ứng. Để có kích thước quảng cáo thích ứng, hãy đảm bảo rằng bạn:
- Lấy chiều rộng của thiết bị đang được sử dụng tính bằng pixel không phụ thuộc vào mật độ hoặc đặt
chiều rộng riêng nếu bạn không muốn sử dụng toàn bộ chiều rộng của màn hình.
Vì các API Unity, chẳng hạn như
Screen.width
, sẽ trả về pixel tuyệt đối, nên bạn cần chia theo tỷ lệ thiết bị (có thể truy xuất từMobileAds.Utils.GetDeviceScale()
). - Sử dụng cờ
AdSize.FullWidth
cho các biểu ngữ có chiều rộng đầy đủ. - Sử dụng các phương thức tĩnh thích hợp trên lớp kích thước quảng cáo, chẳng hạn như
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
để thu thập đối tượngAdSize
thích ứng cho hướng hiện tại.
- Lấy chiều rộng của thiết bị đang được sử dụng tính bằng pixel không phụ thuộc vào mật độ hoặc đặt
chiều rộng riêng nếu bạn không muốn sử dụng toàn bộ chiều rộng của màn hình.
Vì các API Unity, chẳng hạn như
- Tạo một đối tượng
BannerView
có mã đơn vị quảng cáo, kích thước thích ứng và vị trí phù hợp cho quảng cáo của bạn. - Tạo một đối tượng yêu cầu quảng cáo và tải biểu ngữ của bạn bằng cách sử dụng phương thức
LoadAd()
trên chế độ xem quảng cáo đã chuẩn bị, giống như cách bạn thực hiện với yêu cầu biểu ngữ thông thường.
Ví dụ về mã
Sau đây là ví dụ về tập lệnh có chức năng tải và tải lại một biểu ngữ thích ứng để hiển thị vừa với chiều rộng của màn hình, có tính đến vùng an toàn:
using UnityEngine;
using System;
using GoogleMobileAds.Api;
public class AdaptiveBannerSample : MonoBehaviour
{
private BannerView _bannerView;
// Use this for initialization
void Start()
{
// Set your test devices.
// https://developers.google.com/admob/unity/test-ads
RequestConfiguration requestConfiguration = new RequestConfiguration
{
TestDeviceIds = new List<string>
{
AdRequest.TestDeviceSimulator,
// Add your test device IDs (replace with your own device IDs).
#if UNITY_IPHONE
"96e23e80653bb28980d3f40beb58915c"
#elif UNITY_ANDROID
"75EF8D155528C04DACBBA6F36F433035"
#endif
}
};
MobileAds.SetRequestConfiguration(requestConfiguration);
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus status) =>
{
RequestBanner();
});
}
public void OnGUI()
{
GUI.skin.label.fontSize = 60;
Rect textOutputRect = new Rect(
0.15f * Screen.width,
0.25f * Screen.height,
0.7f * Screen.width,
0.3f * Screen.height);
GUI.Label(textOutputRect, "Adaptive Banner Example");
}
private void RequestBanner()
{
// These ad units are configured to always serve test ads.
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "ca-app-pub-3212738706492790/6113697308";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3212738706492790/5381898163";
#else
string adUnitId = "unexpected_platform";
#endif
// Clean up banner ad before creating a new one.
if (_bannerView != null)
{
_bannerView.Destroy();
}
AdSize adaptiveSize =
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);
_bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);
// Register for ad events.
_bannerView.OnBannerAdLoaded += OnBannerAdLoaded;
_bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;
AdRequest adRequest = new AdRequest();
// Load a banner ad.
_bannerView.LoadAd(adRequest);
}
#region Banner callback handlers
private void OnBannerAdLoaded(object sender, EventArgs args)
{
Debug.Log("Banner view loaded an ad with response : "
+ _bannerView.GetResponseInfo());
Debug.Log("Ad Height: {0}, width: {1}",
_bannerView.GetHeightInPixels(),
_bannerView.GetWidthInPixels());
}
private void OnBannerAdLoadFailed(LoadAdError error)
{
Debug.LogError("Banner view failed to load an ad with error : "
+ error);
}
#endregion
}
Ở đây, hàm
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
được sử dụng
để lấy kích thước của một biểu ngữ ở một vị trí cố định cho giao diện hiện tại
hướng. Để tải trước một biểu ngữ cố định theo một hướng nhất định, hãy sử dụng
hàm có liên quan từ AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
và AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
.