自動調整橫幅廣告是新一代的回應式廣告,會根據裝置調整至適當大小,發揮最佳成效。智慧型橫幅廣告僅支援固定高度,改良後的自動調整橫幅廣告則可讓您指定廣告寬度,以此決定理想的廣告大小。
為選擇最適合的廣告大小,自動調整橫幅廣告採用固定的顯示比例,而非固定高度。因此在不同裝置的螢幕上顯示橫幅廣告時,所占版面比例會更加一致,有助提升成效。
請注意,對於相同的裝置和寬度,自動調整橫幅廣告一律會傳回固定大小的廣告。當您在特定裝置上測試過版面配置後,即可確定廣告大小不會再變動。不過,橫幅廣告素材的大小可能會依裝置而異,因此建議您採用能配合不同廣告高度的版面配置。如果廣告素材無法完全填滿自動調整橫幅廣告版位,系統會改為置中顯示標準大小的廣告素材,但這種情況不常見。
必備條件
- 按照「入門指南」的操作說明,匯入 Mobile Ads Unity 外掛程式,並加入 Mobile Ads SDK。
自動調整橫幅廣告的使用時機
自動調整橫幅廣告會直接取代業界標準的 320x50 橫幅廣告,以及智慧型橫幅廣告格式。
這些尺寸常用於錨定橫幅廣告,並固定顯示在畫面頂端或底部。
對於此類錨定橫幅廣告,自動調整橫幅廣告會採用與標準 320x50 廣告相似的顯示比例,如下列三個範例所示:
![]() 320x50 橫幅廣告 |
![]() 自動調整橫幅廣告 |
![]() 智慧型橫幅廣告 |
自動調整橫幅廣告能更有效運用可用的螢幕空間,而且與智慧型橫幅廣告相比,還具有以下優勢:
可設定任何寬度,而非強制採用全螢幕寬度,因此能在 iOS 裝置上保留安全區域,並避開 Android 裝置的螢幕凹口。
根據裝置選擇最佳高度,而非在所有裝置上採用固定高度,減輕不同裝置畫面尺寸造成的影響。
導入注意事項
在應用程式中導入自動調整橫幅廣告時,請注意以下幾點:
- 您須知道廣告所在檢視區塊的寬度,且計算時應考量裝置寬度,並務必保留安全區域或避開螢幕凹口。
- 務必採用不透明的廣告檢視區塊背景,避免因廣告尺寸不足以填滿版位而違反 AdMob 政策。
- 確認使用的 Google Mobile Ads Unity 外掛程式為最新版本。如果使用中介服務,請確保所有中介服務轉接程式均為最新版本。
- 自動調整橫幅廣告採用最大可用寬度時成效最佳,通常是所用裝置的螢幕全寬。請務必考慮到需保留的安全區域。
- 使用自動調整 AdSize API 時,Google Mobile Ads SDK 會依指定寬度選擇最合適的橫幅廣告高度。
- 您可以透過三種方法取得自動調整廣告尺寸:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
(橫向螢幕適用)、AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
(直向螢幕適用),以及AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
(用於執行操作時的螢幕方向)。 - 對於特定的裝置與寬度,系統一律會傳回固定的尺寸,因此在特定裝置上測試過版面配置後,即可確定廣告大小不會改變。
- 錨定橫幅廣告的高度上限為裝置高度的 15%,或 90 個密度獨立像素 (以較小者為準),高度下限則為 50 個密度獨立像素。
- 如要放送全寬橫幅廣告,您可以改用
AdSize.FullWidth
標記,而非提供具體寬度。
快速入門導覽課程
導入簡易自動調整錨定橫幅廣告的步驟如下:
- 取得自動調整橫幅廣告尺寸。 您取得的尺寸會用於請求自動調整橫幅廣告。如要取得自動調整廣告尺寸,請務必完成下列操作:
- 取得所用裝置的寬度 (以密度獨立像素計算);如果不想使用螢幕全寬,也可自行設定寬度。
Screen.width
這類 Unity API 會傳回絕對像素值,因此您須將該值除以裝置縮放比例 (可透過MobileAds.Utils.GetDeviceScale()
取得)。 - 如要放送全寬橫幅廣告,請使用
AdSize.FullWidth
標記。 - 針對廣告尺寸類別使用適當的靜態方法 (例如
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
),取得符合目前螢幕方向的自動調整AdSize
物件。
- 取得所用裝置的寬度 (以密度獨立像素計算);如果不想使用螢幕全寬,也可自行設定寬度。
- 使用廣告單元 ID、自動調整廣告尺寸和廣告相關位置,建立
BannerView
物件。 - 建立廣告請求物件,然後在您準備的廣告檢視區塊中,使用
LoadAd()
方法載入橫幅廣告,做法與處理一般橫幅廣告請求相同。
程式碼範例
以下指令碼範例會配合螢幕寬度,載入及重新載入自動調整橫幅廣告,且不會占用安全區域:
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
}
以下範例使用 AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
函式,取得在目前介面方向中,錨定位置的橫幅廣告尺寸。如要在特定螢幕方向預先載入錨定橫幅廣告,請使用 AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
和 AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
的相關函式。