แบนเนอร์แบบปรับขนาดได้เป็นโฆษณาที่ปรับเปลี่ยนตามพื้นที่โฆษณารุ่นถัดไป ซึ่งจะเข้ามาช่วยเพิ่มประสิทธิภาพด้วยการปรับขนาดโฆษณาให้เหมาะกับแต่ละอุปกรณ์ แบนเนอร์แบบปรับขนาดได้พัฒนามาจากแบนเนอร์อัจฉริยะที่รองรับเฉพาะความสูงแบบคงที่ โดยแบนเนอร์แบบใหม่นี้จะช่วยให้คุณระบุความกว้างของโฆษณาเพื่อนำไปใช้กำหนดขนาดโฆษณาให้เหมาะสมได้
แบนเนอร์แบบปรับขนาดได้ใช้สัดส่วนภาพแบบคงที่แทนที่จะใช้ความสูงตายตัวในการเลือกขนาดโฆษณาที่ดีที่สุด ซึ่งส่งผลให้การยึดพื้นที่ส่วนใดส่วนหนึ่งในหน้าจอของโฆษณาแบนเนอร์ในอุปกรณ์ต่างๆ มีความสอดคล้องกันมากขึ้นและเปิดโอกาสให้มีการปรับปรุงประสิทธิภาพให้ดีขึ้นด้วย
เมื่อใช้แบนเนอร์แบบปรับขนาดได้ โปรดทราบว่าแบนเนอร์จะแสดงขนาดคงที่สำหรับอุปกรณ์และความกว้างหนึ่งๆ เสมอ เมื่อทดสอบเลย์เอาต์ในอุปกรณ์หนึ่งๆ แล้ว คุณจะมั่นใจได้ว่าขนาดโฆษณาจะไม่เปลี่ยนแปลง อย่างไรก็ตาม ขนาดของครีเอทีฟโฆษณาแบนเนอร์อาจแตกต่างกันไปตามอุปกรณ์ เราจึงขอแนะนําให้เลย์เอาต์ของคุณรองรับความหลากหลายของตําแหน่งโฆษณา ในบางกรณี ระบบอาจไม่แสดงครีเอทีฟโฆษณาขนาดเต็มแบบปรับเปลี่ยนได้ และระบบจะวางครีเอทีฟโฆษณาขนาดมาตรฐานไว้ตรงกลางในช่องนี้แทน
ข้อกำหนดเบื้องต้น
กรณีที่ควรใช้แบนเนอร์แบบปรับขนาดได้
แบนเนอร์แบบปรับขนาดได้ถูกออกแบบมาให้ใช้แทนที่แบนเนอร์ขนาด 320x50 ซึ่งเป็นมาตรฐานอุตสาหกรรมได้โดยตรง รวมถึงแบนเนอร์อัจฉริยะ ซึ่งเป็นรูปแบบที่แบนเนอร์นี้เข้ามาแทนที่
แบนเนอร์ขนาดเหล่านี้มักใช้เป็นแบนเนอร์ยึดตําแหน่ง ซึ่งมักจะล็อกไว้ที่ด้านบนหรือด้านล่างของหน้าจอ
สําหรับแบนเนอร์ที่ยึดตําแหน่งดังกล่าว สัดส่วนภาพเมื่อใช้แบนเนอร์แบบปรับขนาดได้จะคล้ายกับโฆษณาขนาด 320x50 มาตรฐาน ดังที่เห็นในตัวอย่าง 3 รายการด้านล่าง
แบนเนอร์ขนาด 320x50 |
แบนเนอร์แบบปรับขนาดได้ |
แบนเนอร์อัจฉริยะ |
แบนเนอร์แบบปรับขนาดได้ใช้ประโยชน์จากขนาดหน้าจอที่มีอยู่ได้ดีขึ้น นอกจากนี้ แบนเนอร์แบบปรับขนาดได้ยังเป็นตัวเลือกที่ดีกว่าแบนเนอร์อัจฉริยะเนื่องจาก
โดยจะใช้ความกว้างที่คุณระบุแทนที่จะบังคับให้เต็มหน้าจอ ซึ่งจะช่วยให้คุณคำนึงถึงพื้นที่ปลอดภัยใน iOS และแสดงส่วนที่ถูกตัดออกใน Android ได้
โดยจะเลือกความสูงที่เหมาะสมสําหรับอุปกรณ์หนึ่งๆ แทนที่จะมีความสูงคงที่ในอุปกรณ์ขนาดต่างๆ ซึ่งช่วยลดผลกระทบจากการกระจายตัวของอุปกรณ์
หมายเหตุการติดตั้งใช้งาน
โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อติดตั้งใช้งานแบนเนอร์แบบปรับขนาดได้ในแอป
- คุณต้องทราบความกว้างของมุมมองที่จะวางโฆษณา โดยควรคำนึงถึงความกว้างของอุปกรณ์และพื้นที่ปลอดภัยหรือส่วนที่ตัดออกที่เกี่ยวข้อง
- ตรวจสอบว่าพื้นหลังของมุมมองโฆษณาทึบแสงเพื่อให้เป็นไปตามนโยบาย AdMob เมื่อแสดงโฆษณาขนาดที่เล็กกว่าซึ่งไม่เต็มช่องโฆษณา
- ตรวจสอบว่าคุณใช้ปลั๊กอิน Google Mobile Ads Unity เวอร์ชันล่าสุด สําหรับสื่อกลาง ให้ใช้อะแดปเตอร์สื่อกลางแต่ละรายการเวอร์ชันล่าสุด
- ขนาดแบนเนอร์แบบปรับขนาดได้ออกแบบมาเพื่อให้ทำงานได้ดีที่สุดเมื่อใช้ความกว้างที่มีให้อย่างเต็มที่ ในกรณีส่วนใหญ่ จะเป็นความกว้างเต็มของหน้าจอของอุปกรณ์ที่ใช้ อย่าลืมคำนึงถึงพื้นที่ปลอดภัยที่เกี่ยวข้อง
- SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google จะปรับขนาดแบนเนอร์ให้มีโฆษณาสูงตามค่าที่เหมาะสมสำหรับความกว้างที่ระบุเมื่อใช้ AdSize API แบบปรับขนาดได้
- วิธีการรับขนาดโฆษณาแบบปรับขนาดได้มี 3 วิธี ได้แก่
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
สำหรับแนวนอนAdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
สำหรับแนวตั้ง และAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
สำหรับการวางแนวปัจจุบัน ณ เวลาที่แสดง - ขนาดที่แสดงสำหรับความกว้างหนึ่งๆ ในอุปกรณ์หนึ่งๆ จะเหมือนกันเสมอ ดังนั้นเมื่อทดสอบเลย์เอาต์ในอุปกรณ์หนึ่งๆ แล้ว คุณจะมั่นใจได้ว่าขนาดโฆษณาจะไม่เปลี่ยนแปลง
- ความสูงของแบนเนอร์ที่ยึดตําแหน่งต้องไม่ใหญ่กว่า 15% ของความสูงของอุปกรณ์หรือ 90 พิกเซลแบบไม่ขึ้นกับความละเอียด และจะต้องไม่เล็กกว่า 50 พิกเซลแบบไม่ขึ้นกับความละเอียด
- สําหรับแบนเนอร์แบบเต็มความกว้าง คุณสามารถใช้ Flag
AdSize.FullWidth
แทนการระบุความกว้างที่เฉพาะเจาะจง
คู่มือเริ่มใช้งานฉบับย่อ
ทําตามขั้นตอนด้านล่างเพื่อติดตั้งใช้งานแบนเนอร์ Anchor แบบปรับเปลี่ยนได้ง่ายๆ
- ดูขนาดโฆษณาแบนเนอร์แบบปรับขนาดได้ ระบบจะใช้ขนาดที่คุณได้รับเพื่อส่งคําขอแบนเนอร์แบบปรับขนาดได้ หากต้องการใช้ขนาดโฆษณาแบบปรับอัตโนมัติ โปรดตรวจสอบว่าคุณได้ดำเนินการต่อไปนี้
- รับความกว้างของอุปกรณ์ที่ใช้เป็นพิกเซลที่ไม่ขึ้นอยู่กับความหนาแน่น หรือตั้งค่าความกว้างของคุณเองหากไม่ต้องการเต็มความกว้างของหน้าจอ
เนื่องจาก Unity API เช่น
Screen.width
จะแสดงผลพิกเซลแบบสัมบูรณ์ คุณจึงต้องหารด้วยขนาดอุปกรณ์ (ดึงมาจากMobileAds.Utils.GetDeviceScale()
) - ใช้ Flag
AdSize.FullWidth
สําหรับแบนเนอร์แบบเต็มความกว้าง - ใช้เมธอดแบบคงที่ที่เหมาะสมในคลาสขนาดโฆษณา เช่น
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
เพื่อรับออบเจ็กต์AdSize
แบบปรับเปลี่ยนได้สำหรับการวางแนวปัจจุบัน
- รับความกว้างของอุปกรณ์ที่ใช้เป็นพิกเซลที่ไม่ขึ้นอยู่กับความหนาแน่น หรือตั้งค่าความกว้างของคุณเองหากไม่ต้องการเต็มความกว้างของหน้าจอ
เนื่องจาก Unity API เช่น
- สร้างออบเจ็กต์
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/ad-manager/mobile-ads-sdk/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