Biểu ngữ thích ứng là thế hệ tiếp theo của quảng cáo thích ứng, giúp bạn tăng tối đa hiệu suất bằng cách tối ưu hóa kích thước của quảng cáo cho từng thiết bị. Được cải tiế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 nhà phát triể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 của 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. Do đó, quảng cáo biểu ngữ sẽ chiếm phần màn hình nhất quán hơn trên tất cả các thiết bị và mang lại 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ữ này sẽ luôn hiển thị ở một kích thước không đổi cho một thiết bị và chiều rộng nhất định. 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ạn nên đảm bảo bố cục của mình có thể phù hợp với các phiên bản có chiều cao quảng cáo khác nhau. Trong một số ít trường hợp, kích thước thích ứng đầy đủ có thể không được lấp đầy và quảng cáo có kích thước tiêu chuẩn sẽ được đặt ở giữa trong vùng này.
Trường hợp sử dụng biểu ngữ thích ứng
Mục đích của biểu ngữ thích ứng là để thay thế cho biểu ngữ có kích thước tiêu chuẩn 320x50, cũng như định dạng biểu ngữ thông minh.
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 được khóa ở đầ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ẽ tương tự như tỷ lệ khung hình của quảng cáo chuẩn 320x50. Hãy xem các ảnh chụp màn hình sau đây:
Biểu ngữ 320x50 |
Biểu ngữ thông minh |
Biểu ngữ thích ứng |
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, biểu ngữ thích ứng là lựa chọn tốt hơn vì:
Biểu ngữ thích ứng chấp nhận chiều rộng đã cung cấp thay vì chiều rộng toàn màn hình, cho phép bạn tính đến vết cắt trên màn hình .
Biểu ngữ thích ứng lựa chọn chiều cao tối ưu cho từng thiết bị, thay vì sử dụng chiều cao cố định trên các thiết bị có kích thước khác nhau. Việc này giúp giảm thiểu tác động của sự phân mảnh thiết bị.
Lưu ý khi triển khai
Khi triển khai biểu ngữ thích ứng trong ứng dụng của bạn, hãy lưu ý các điểm sau:
- Bạn phải biết chiều rộng của chế độ xem mà quảng cáo xuất hiện và phải xét đến chiều rộng của thiết bị cũng như mọi vết cắt trên màn hình (nếu có).
Đảm bảo rằng nền chế độ xem quảng cáo của bạn được làm mờ để tuân thủ AdMob chính sách khi kích thước quảng cáo nhỏ hơn phân phát, kích thước này 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 SDK 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 bộ chuyển đổi dàn xếp có phiên bản mới nhất.
Kích thước của biểu ngữ thích ứng 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 tối đa của màn hình thiết bị mà bạn đang sử dụng. Hãy nhớ cân nhắc vết cắt trên mạng hiển thị.
SDK quảng cáo trên thiết bị di động của Google sẽ trả về chiều cao quảng cáo được tối ưu hóa cho chiều rộng đã cho trong
AdSize
.Có 3 phương pháp để thu thập kích thước quảng cáo cho biểu ngữ thích ứng – một phương pháp cho biểu ngữ ngang, một phương pháp cho biểu ngữ dọc và một phương pháp cho hướng hiện tại vào thời điểm thực thi. Để biết thêm thông tin, hãy xem tài liệu đầy đủ về API ở bên dưới.
Kích thước được trả lại cho một chiều rộng nhất định trên một thiết bị nhất định sẽ luôn giống nhau, do đó, 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.
Chiều cao của biểu ngữ cố định không được lớn hơn 15% chiều cao của thiết bị và không được nhỏ hơn 50 dp.
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.
Tạo an
AdView
đối tượng và đặt mã đơn vị quảng cáo của bạ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 thu được sẽ dùng để yêu cầu biểu ngữ thích ứng. Để thu được kích thước của quảng cáo thích ứng, hãy đảm bảo rằng bạn:
- Biết chiều rộng của thiết bị mà bạn đang sử dụng hoặc đặt chiều rộng riêng nếu bạn không muốn sử dụng chiều rộng toàn màn hình.
- Sử dụng các phương thức tĩnh thích hợp trên lớp kích thước của quảng cáo, chẳng hạn như
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width)
để thu thập đối tượngAdSize
dành cho hướng đã chọn. - Đặt kích thước quảng cáo trên chế độ xem quảng cáo biểu ngữ — hãy thực hiện việc này
bằng cách sử dụng
AdView.setAdSize()
.
Hãy xem ví dụ đầy đủ bên dưới.
Tạo đố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.
Mã mẫu
Dưới đây là ví dụ về hoạt động tải một biểu ngữ thích ứng cho vừa với chiều rộng của màn hình:
Java
import android.graphics.Rect; import android.os.Bundle; import android.widget.FrameLayout; import androidx.appcompat.app.AppCompatActivity import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdSize; import com.google.android.gms.ads.AdView; import com.google.android.gms.ads.MobileAds; import com.google.android.gms.ads.initialization.InitializationStatus; import com.google.android.gms.ads.initialization.OnInitializationCompleteListener; /** Main Activity. Inflates main activity xml and child fragments. */ public class MyActivity extends AppCompatActivity { private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/6300978111"; private AdView adView; private FrameLayout adContainerView; private boolean initialLayoutComplete = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); // Initialize the Mobile Ads SDK. MobileAds.initialize(this, new OnInitializationCompleteListener() { @Override public void onInitializationComplete(InitializationStatus initializationStatus) { } }); adContainerView = findViewById(R.id.ad_view_container); adView = new AdView(this); adContainerView.addView(adView); // Since we're loading the banner based on the adContainerView size, we need // to wait until this view is laid out before we can get the width. adContainerView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (!initialLayoutComplete) { initialLayoutComplete = true; loadBanner(); } } }); } private void loadBanner() { adView.setAdUnitId(AD_UNIT_ID); AdSize adSize = getAdSize(); adView.setAdSize(adSize); // Create an ad request. Check your logcat output for the hashed device ID // to get test ads on a physical device, e.g., // "Use AdRequest.Builder.addTestDevice("ABCDE0123") to get test ads on this // device." AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); // Start loading the ad in the background. adView.loadAd(adRequest); } // Determine the screen width (less decorations) to use for the ad width. private AdSize getAdSize() { WindowMetrics windowMetrics = getWindowManager().getCurrentWindowMetrics(); Rect bounds = windowMetrics.getBounds(); float adWidthPixels = adContainerView.getWidth(); // If the ad hasn't been laid out, default to the full screen width. if (adWidthPixels == 0f) { adWidthPixels = bounds.width(); } float density = getResources().getDisplayMetrics().density; int adWidth = (int) (adWidthPixels / density); return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth); } }
Kotlin
import android.os.Bundle import android.widget.FrameLayout import androidx.appcompat.app.AppCompatActivity import com.google.android.gms.ads.* /** Main Activity. Inflates main activity xml and child fragments. */ class MyActivity : AppCompatActivity() { private lateinit var adView: AdView private lateinit var adContainerView: FrameLayout private var initialLayoutComplete = false // Determine the screen width (less decorations) to use for the ad width. private val adSize: AdSize get() { val windowMetrics = windowManager.currentWindowMetrics val bounds = windowMetrics.bounds var adWidthPixels = adContainerView.width.toFloat() // If the ad hasn't been laid out, default to the full screen width. if (adWidthPixels == 0f) { adWidthPixels = bounds.width().toFloat() } val density = resources.displayMetrics.density val adWidth = (adWidthPixels / density).toInt() return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my) // Initialize the Mobile Ads SDK. MobileAds.initialize(this) {} adContainerView = findViewById(R.id.ad_view_container) adView = AdView(this) adContainerView.addView(adView) // Since we're loading the banner based on the adContainerView size, we need // to wait until this view is laid out before we can get the width. adContainerView.viewTreeObserver.addOnGlobalLayoutListener { if (!initialLayoutComplete) { initialLayoutComplete = true loadBanner() } } } private fun loadBanner() { adView.adUnitId = AD_UNIT_ID adView.adSize(adSize) // Create an ad request. Check your logcat output for the hashed device ID to // get test ads on a physical device, e.g., // "Use AdRequest.Builder.addTestDevice("ABCDE0123") to get test ads on this device." val adRequest = AdRequest .Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build() // Start loading the ad in the background. adView.loadAd(adRequest) } companion object { // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID. private val AD_UNIT_ID = "ca-app-pub-3940256099942544/6300978111" } }
Ở đây, hàm AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize
được dùng để
lấy kích thước của biểu ngữ ở một vị trí cố định cho hướng giao diện
hiện tại. Để 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 phù hợp từ AdSize.getPortraitAnchoredAdaptiveBannerAdSize
và
AdSize.getLandscapeAnchoredAdaptiveBannerAdSize
.
Ví dụ hoàn chỉnh trên GitHub
Tải Java xuống | Tải Kotlin xuống |