横幅广告和 MREC 广告

在 Unity 游戏中集成 CloudX 横幅广告和 MREC 广告

横幅广告(320x50)

在固定屏幕位置展示的标准横幅广告,支持自动刷新。

using CloudX;
using UnityEngine;

public class BannerExample : MonoBehaviour
{
    private const string BannerAdUnitId = "banner_main";

    void Start()
    {
        // Subscribe to callbacks
        CloudXAdsCallbacks.Banner.OnAdLoadSuccess += OnBannerLoaded;
        CloudXAdsCallbacks.Banner.OnAdLoadFailed += OnBannerLoadFailed;
        CloudXAdsCallbacks.Banner.OnAdClicked += OnBannerClicked;
        CloudXAdsCallbacks.Banner.OnAdRevenuePaid += OnBannerRevenuePaid;

        // Create, load, and show banner
        var config = new CloudXAdViewConfiguration(CloudXAdViewConfiguration.AdViewPosition.BottomCenter);
        CloudXSdk.CreateBanner(BannerAdUnitId, config);
        CloudXSdk.LoadBanner(BannerAdUnitId);
        CloudXSdk.ShowBanner(BannerAdUnitId);
    }

    void OnApplicationFocus(bool hasFocus)
    {
        if (hasFocus)
        {
            CloudXSdk.ShowBanner(BannerAdUnitId);
        }
        else
        {
            CloudXSdk.HideBanner(BannerAdUnitId);
        }
    }

    private void OnBannerLoaded(CloudXAd ad)
    {
        Debug.Log($"Banner loaded: {ad.AdUnitId}");
    }

    private void OnBannerLoadFailed(string adUnitId, CloudXError error)
    {
        Debug.LogError($"Banner failed to load: {adUnitId} - {error}");
    }

    private void OnBannerClicked(CloudXAd ad)
    {
        Debug.Log($"Banner clicked: {ad.AdUnitId}");
    }

    private void OnBannerRevenuePaid(CloudXAd ad)
    {
        Debug.Log($"Banner revenue: ${ad.Revenue} from {ad.NetworkName}");
    }
}

自动刷新控制

横幅广告默认启用自动刷新。如需手动控制刷新:

CloudXSdk.StopBannerAutoRefresh(BannerAdUnitId);  // 停止自动刷新
CloudXSdk.LoadBanner(BannerAdUnitId);              // 手动加载
CloudXSdk.StartBannerAutoRefresh(BannerAdUnitId); // 重新启用自动刷新

广告位和自定义数据

CloudXSdk.SetBannerPlacement(BannerAdUnitId, "home_screen");
CloudXSdk.SetBannerCustomData(BannerAdUnitId, "custom_value");

竖向横幅广告(320x50,旋转展示)

竖向横幅广告是标准的 320x50 横幅广告,旋转 90 度后紧贴屏幕左边缘或右边缘展示。广告在所贴边缘上垂直居中,素材顶部朝向屏幕中心。当该边缘存在屏幕开孔(刘海、摄像头开孔、灵动岛)时(横屏下的常见情况),横幅会自动内移避开开孔,确保素材不被遮挡。

这种格式特别适合垂直空间不足、无法放置顶部或底部横幅的横屏游戏:横幅利用屏幕的短边展示,不占用游戏画面的高度。

创建竖向横幅时,使用 AdViewVerticalPosition(而不是 AdViewPosition)构造 CloudXAdViewConfiguration。其余部分(加载、展示、回调 CloudXAdsCallbacks.Banner、自动刷新控制以及 placement/自定义数据)与水平横幅广告基本相同。

// 将横幅紧贴屏幕左边缘(顺时针旋转)
var config = new CloudXAdViewConfiguration(
    CloudXAdViewConfiguration.AdViewVerticalPosition.Left);
CloudXSdk.CreateBanner(BannerAdUnitId, config);
CloudXSdk.LoadBanner(BannerAdUnitId);
CloudXSdk.ShowBanner(BannerAdUnitId);

AdViewVerticalPosition.Left 将横幅紧贴屏幕左边缘并顺时针旋转;AdViewVerticalPosition.Right 将其紧贴屏幕右边缘并逆时针旋转。

MREC 广告(300x250)

中矩形广告的使用方式与横幅广告相同,但尺寸更大。

using CloudX;
using UnityEngine;

public class MrecExample : MonoBehaviour
{
    private const string MrecAdUnitId = "mrec_main";

    void Start()
    {
        // Subscribe to callbacks
        CloudXAdsCallbacks.Mrec.OnAdLoadSuccess += OnMrecLoaded;
        CloudXAdsCallbacks.Mrec.OnAdLoadFailed += OnMrecLoadFailed;
        CloudXAdsCallbacks.Mrec.OnAdClicked += OnMrecClicked;
        CloudXAdsCallbacks.Mrec.OnAdRevenuePaid += OnMrecRevenuePaid;

        // Create, load, and show MREC
        var config = new CloudXAdViewConfiguration(CloudXAdViewConfiguration.AdViewPosition.Centered);
        CloudXSdk.CreateMrec(MrecAdUnitId, config);
        CloudXSdk.LoadMrec(MrecAdUnitId);
        CloudXSdk.ShowMrec(MrecAdUnitId);
    }

    void OnApplicationFocus(bool hasFocus)
    {
        if (hasFocus)
        {
            CloudXSdk.ShowMrec(MrecAdUnitId);
        }
        else
        {
            CloudXSdk.HideMrec(MrecAdUnitId);
        }
    }

    private void OnMrecLoaded(CloudXAd ad)
    {
        Debug.Log($"MREC loaded: {ad.AdUnitId}");
    }

    private void OnMrecLoadFailed(string adUnitId, CloudXError error)
    {
        Debug.LogError($"MREC failed to load: {adUnitId} - {error}");
    }

    private void OnMrecClicked(CloudXAd ad)
    {
        Debug.Log($"MREC clicked: {ad.AdUnitId}");
    }

    private void OnMrecRevenuePaid(CloudXAd ad)
    {
        Debug.Log($"MREC revenue: ${ad.Revenue} from {ad.NetworkName}");
    }
}

广告位和自定义数据

CloudXSdk.SetMRecPlacement(MrecAdUnitId, "home_screen");
CloudXSdk.SetMRecCustomData(MrecAdUnitId, "custom_value");

自动刷新控制

MREC 广告同样默认启用自动刷新。使用与横幅广告相同的刷新控制方法:

CloudXSdk.StopMrecAutoRefresh(MrecAdUnitId);
CloudXSdk.LoadMrec(MrecAdUnitId);
CloudXSdk.StartMrecAutoRefresh(MrecAdUnitId);