横幅广告需要特定类型的专用横幅广告单元。

脚本实现
在脚本标头中,声明包含 Banner
类的 UnityEngine.Advertisements
命名空间。接下来,初始化 SDK,然后使用 Banner.Load
和 Banner.Show
方法来加载和展示横幅广告。
以下示例脚本向您展示了如何在场景中设置按钮以测试此功能。要在 Unity 编辑器中创建按钮,请选择 Game Object(游戏对象)> UI > Button(按钮)。
在 C# 中实现横幅广告
using UnityEngine; using UnityEngine.UI; using UnityEngine.Advertisements; public class BannerAdExample : MonoBehaviour { // For the purpose of this example, these buttons are for functionality testing: [SerializeField] Button _loadBannerButton; [SerializeField] Button _showBannerButton; [SerializeField] Button _hideBannerButton; [SerializeField] BannerPosition _bannerPosition = BannerPosition.BOTTOM_CENTER; [SerializeField] string _androidAdUnitId = "Banner_Android"; [SerializeField] string _iOSAdUnitId = "Banner_iOS"; string _adUnitId = null; // This will remain null for unsupported platforms. void Start() { // Get the Ad Unit ID for the current platform: #if UNITY_IOS _adUnitId = _iOSAdUnitId; #elif UNITY_ANDROID _adUnitId = _androidAdUnitId; #endif // Disable the button until an ad is ready to show: _showBannerButton.interactable = false; _hideBannerButton.interactable = false; // Set the banner position: Advertisement.Banner.SetPosition(_bannerPosition); // Configure the Load Banner button to call the LoadBanner() method when clicked: _loadBannerButton.onClick.AddListener(LoadBanner); _loadBannerButton.interactable = true; } // Implement a method to call when the Load Banner button is clicked: public void LoadBanner() { // Set up options to notify the SDK of load events: BannerLoadOptions options = new BannerLoadOptions { loadCallback = OnBannerLoaded, errorCallback = OnBannerError }; // Load the Ad Unit with banner content: Advertisement.Banner.Load(_adUnitId, options); } // Implement code to execute when the loadCallback event triggers: void OnBannerLoaded() { Debug.Log("Banner loaded"); // Configure the Show Banner button to call the ShowBannerAd() method when clicked: _showBannerButton.onClick.AddListener(ShowBannerAd); // Configure the Hide Banner button to call the HideBannerAd() method when clicked: _hideBannerButton.onClick.AddListener(HideBannerAd); // Enable both buttons: _showBannerButton.interactable = true; _hideBannerButton.interactable = true; } // Implement code to execute when the load errorCallback event triggers: void OnBannerError(string message) { Debug.Log($"Banner Error: {message}"); // Optionally execute additional code, such as attempting to load another ad. } // Implement a method to call when the Show Banner button is clicked: void ShowBannerAd() { // Set up options to notify the SDK of show events: BannerOptions options = new BannerOptions { clickCallback = OnBannerClicked, hideCallback = OnBannerHidden, showCallback = OnBannerShown }; // Show the loaded Banner Ad Unit: Advertisement.Banner.Show(_adUnitId, options); } // Implement a method to call when the Hide Banner button is clicked: void HideBannerAd() { // Hide the banner: Advertisement.Banner.Hide(); } void OnBannerClicked() { } void OnBannerShown() { } void OnBannerHidden() { } void OnDestroy() { // Clean up the listeners: _loadBannerButton.onClick.RemoveAllListeners(); _showBannerButton.onClick.RemoveAllListeners(); _hideBannerButton.onClick.RemoveAllListeners(); } }
横幅广告位置
默认情况下,横幅广告显示画面锚定在屏幕底部中心位置,支持 320 x 50 或 728 x 90 像素分辨率。要指定横幅广告锚点,请使用 Banner.SetPosition
API。例如:
Advertisement.Banner.SetPosition (BannerPosition.TOP_CENTER);