自動調整橫幅廣告是新一代的回應式廣告 根據裝置調整廣告大小,有效提升廣告成效。進一步改善智慧型橫幅廣告 僅支援固定高度,自動調整橫幅廣告則可讓您指定 並以此決定最合適的廣告大小。
為了選擇最佳廣告大小,自動調整橫幅廣告會採用固定的長寬比,而非 固定高度。這會導致橫幅廣告佔用比例更加一致 且能幫助他們提升廣告品質 才需進行
使用自動調整橫幅廣告時,請注意,自動調整橫幅廣告一律會針對特定裝置和寬度傳回固定大小,在特定裝置上測試版面配置後,您可以確保廣告大小不會改變。不過,橫幅廣告素材的大小可能會因裝置而異。因此,建議您在版面配置中納入廣告高度的變化。在極少數情況下 可能無法填入完整自動調整大小,且系統會傳回標準大小的廣告素材 已改為在這個版位置中
必要條件
- 按照入門指南的說明操作 瞭解如何匯入行動廣告 Unity 外掛程式 並納入 Mobile Ads SDK。
自動調整橫幅廣告的使用時機
在設計上,自動調整橫幅廣告旨在直接取代業界標準的 320x50 橫幅廣告大小,以及智慧型橫幅廣告格式。
這些橫幅廣告大小經常被當做錨定橫幅廣告, 並固定在畫面的頂端或底部
就這類錨定橫幅廣告而言,採用自動調整橫幅廣告時的顯示比例會是 就像標準 320x50 廣告一樣 如下:
320x50 橫幅 |
自動調整橫幅廣告 |
智慧型橫幅廣告 |
自動調整橫幅廣告會善用可用的螢幕大小。此外, 與智慧型橫幅廣告相比,自動調整橫幅廣告是更好的選擇,原因如下:
使用你提供的任何寬度,不會強制要求整個寬度 畫面,進而考量 iOS 上的安全區域以及螢幕凹口 。
這個模式會選擇該裝置適用的最佳高度,而不是 讓不同尺寸的裝置保持固定高度,減緩 裝置結構化
實作注意事項
在應用程式中導入自動調整橫幅廣告時,請注意以下幾點:
- 您必須知道廣告擺放的檢視畫面寬度 考量裝置寬度和任何安全區域 建議採用的剪接方式
- 確保廣告檢視畫面背景不透明,以符合相關規定 AdMob 政策 (適用於較小的廣告大小) 未填滿廣告版位。
- 確認您使用的是最新版的 Google 行動廣告 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
。