Banner adaptif adalah generasi iklan responsif berikutnya, yang memaksimalkan performa dengan mengoptimalkan ukuran iklan untuk setiap perangkat. Demi menyempurnakan banner cerdas, yang hanya mendukung tinggi tetap, banner adaptif memungkinkan Anda menentukan lebar iklan dan menggunakannya untuk menentukan ukuran iklan yang optimal.
Untuk memilih ukuran iklan terbaik, banner adaptif menggunakan rasio lebar tinggi tetap, bukan tinggi tetap. Hal ini menghasilkan iklan banner yang menempati bagian layar dengan lebih konsisten di berbagai perangkat dan memberikan peluang untuk meningkatkan performa.
Saat menggunakan banner adaptif, perhatikan bahwa banner tersebut akan selalu menampilkan ukuran konstan untuk perangkat dan lebar tertentu. Setelah menguji tata letak di perangkat tertentu, Anda dapat yakin bahwa ukuran iklan tidak akan berubah. Namun, ukuran materi iklan banner dapat berubah di berbagai perangkat. Oleh karena itu, sebaiknya tata letak Anda mengakomodasi variasi tinggi iklan. Dalam kasus yang jarang terjadi, ukuran adaptif penuh mungkin tidak terisi dan materi iklan ukuran standar akan dipusatkan di slot ini.
Prasyarat
- Ikuti petunjuk dari Panduan memulai tentang cara Mengimpor plugin Unity Mobile Ads dan Menyertakan Mobile Ads SDK.
Kapan harus menggunakan banner adaptif
Banner adaptif dirancang untuk secara langsung menggantikan ukuran banner standar industri berukuran 320x50 dan format banner cerdas yang digantikannya.
Ukuran banner ini biasanya digunakan sebagai banner anchor, yang biasanya terkunci di bagian atas atau bawah layar.
Untuk banner anchor tersebut, rasio aspek saat menggunakan banner adaptif akan mirip dengan iklan standar 320x50, seperti yang dapat dilihat dalam tiga contoh di bawah:
Banner 320x50 |
Banner adaptif |
Banner cerdas |
Banner adaptif memanfaatkan ukuran layar yang tersedia dengan lebih baik. Selain itu, banner adaptif adalah pilihan yang lebih baik dibandingkan banner cerdas karena:
Banner ini menggunakan lebar yang Anda berikan, bukan memaksa lebar menjadi layar penuh, sehingga Anda dapat memperhitungkan area aman di iOS, dan menampilkan potongan di Android.
Fitur ini memilih tinggi yang optimal untuk perangkat tertentu, bukan memiliki tinggi yang konstan di berbagai perangkat berukuran berbeda, sehingga mengurangi efek fragmentasi perangkat.
Catatan penerapan
Saat menerapkan banner adaptif di aplikasi, perhatikan poin-poin berikut:
- Anda harus mengetahui lebar tampilan tempat iklan akan ditempatkan, dan hal ini harus mempertimbangkan lebar perangkat serta area aman atau potongan yang berlaku.
- Pastikan latar belakang tampilan iklan Anda buram agar mematuhi kebijakan AdMob saat ukuran iklan yang lebih kecil ditayangkan dan tidak mengisi slot iklan.
- Pastikan Anda menggunakan plugin Unity Google Mobile Ads versi terbaru. Untuk mediasi, gunakan versi terbaru setiap adaptor mediasi.
- Ukuran banner adaptif dirancang agar berfungsi optimal saat menggunakan lebar penuh yang tersedia. Biasanya, ini akan menjadi lebar penuh layar perangkat yang digunakan. Pastikan untuk mempertimbangkan area aman yang berlaku.
- Google Mobile Ads SDK akan menentukan ukuran banner dengan tinggi iklan yang dioptimalkan untuk lebar yang ditentukan saat menggunakan AdSize API adaptif.
- Ada tiga metode untuk mendapatkan ukuran iklan untuk adaptif:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
untuk lanskap,AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
untuk potret, danAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
untuk orientasi saat ini pada saat eksekusi. - Ukuran yang ditampilkan untuk lebar tertentu pada perangkat tertentu akan selalu sama, sehingga setelah menguji tata letak di perangkat tertentu, Anda dapat yakin bahwa ukuran iklan tidak akan berubah.
- Tinggi banner yang ditautkan tidak boleh lebih besar dari 15% tinggi perangkat atau 90 piksel independen kepadatan dan tidak boleh lebih kecil dari 50 piksel independen kepadatan.
- Untuk banner lebar penuh, Anda dapat menggunakan flag
AdSize.FullWidth
, bukan memberikan lebar tertentu.
Panduan memulai
Ikuti langkah-langkah di bawah ini untuk menerapkan banner anchor adaptif sederhana.
- Dapatkan ukuran iklan banner adaptif. Ukuran yang Anda dapatkan akan digunakan untuk meminta banner adaptif. Untuk mendapatkan ukuran iklan adaptif, pastikan Anda:
- Dapatkan lebar perangkat yang digunakan dalam piksel independen kepadatan, atau tetapkan lebar Anda sendiri jika tidak ingin menggunakan lebar layar penuh.
Karena Unity API seperti
Screen.width
menampilkan piksel absolut, Anda perlu membagi dengan skala perangkat (dapat diambil dariMobileAds.Utils.GetDeviceScale()
). - Gunakan flag
AdSize.FullWidth
untuk banner lebar penuh. - Gunakan metode statis yang sesuai pada class ukuran iklan, seperti
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
untuk mendapatkan objekAdSize
adaptif untuk orientasi saat ini.
- Dapatkan lebar perangkat yang digunakan dalam piksel independen kepadatan, atau tetapkan lebar Anda sendiri jika tidak ingin menggunakan lebar layar penuh.
Karena Unity API seperti
- Buat objek
BannerView
dengan ID unit iklan, ukuran adaptif, dan posisi yang relevan untuk iklan Anda. - Buat objek permintaan iklan dan muat banner menggunakan metode
LoadAd()
di tampilan iklan yang telah disiapkan, seperti yang Anda lakukan dengan permintaan banner normal.
Contoh kode
Berikut adalah contoh skrip yang memuat dan memuat ulang banner adaptif agar sesuai dengan lebar layar, dengan mempertimbangkan area aman:
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
}
Di sini, fungsi
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
digunakan
untuk mendapatkan ukuran banner dalam posisi yang ditambatkan untuk orientasi
antarmuka saat ini. Untuk melakukan pramuat banner yang ditautkan dalam orientasi tertentu, gunakan
fungsi yang relevan dari AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
dan AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
.