Banner Ad

1. 基本要求

  • ADX Unity SDK添加到项目中。

  • 用于横幅广告的已发行 ADX 广告单元 ID。

  • 在请求广告之前 SDK 初始化请先进行。

    • SDK 初始化请在应用运行时只调用一次,并且 广告请求必须在初始化完成后进行。

2. 实现

  1. 如果 Android 和 iOS 均有发布,请分别输入为各平台签发的广告单元 ID。

  2. AdxBannerAd进行实例化并注册所需的回调。

  3. Load() 以加载广告。

#if UNITY_ANDROID
    string adxBannerAdUnitId = "<ANDROID_ADX_BANNER_AD_UNIT_ID>";
#elif UNITY_IOS
    string adxBannerAdUnitId = "<IOS_ADX_BANNER_AD_UNIT_ID>";
#endif

void LoadBannerAd()
{
    if (bannerAd != null)
    {
        bannerAd.Destroy();
        bannerAd = null;
    }

    bannerAd = new AdxBannerAd(adxBannerAdUnitId, AdxBannerAd.AD_SIZE_320x50, AdxBannerAd.POSITION_TOP);
    bannerAd.OnAdLoaded += BannerAd_OnAdLoaded;
    bannerAd.OnAdFailedToLoad += BannerAd_OnAdFailedToLoad;
    bannerAd.OnAdClicked += BannerAd_OnAdClicked;
    bannerAd.Load();
}

横幅广告支持的 POSITIONAD_SIZE如下。

// -------- Banner广告尺寸 --------
// AdxBannerAd.AD_SIZE_320x50
// AdxBannerAd.AD_SIZE_728x90
// AdxBannerAd.AD_SIZE_320x100
// AdxBannerAd.AD_SIZE_300x250

// -------- Banner广告位置 --------
// AdxBannerAd.POSITION_TOP
// AdxBannerAd.POSITION_BOTTOM
// AdxBannerAd.POSITION_TOP_LEFT
// AdxBannerAd.POSITION_TOP_RIGHT
// AdxBannerAd.POSITION_BOTTOM_LEFT
// AdxBannerAd.POSITION_BOTTOM_RIGHT
// AdxBannerAd.POSITION_CENTER

3. Callback

可以接收特定事件。请根据需要实现。

public event Action OnAdLoaded = delegate { };
public event Action<int> OnAdFailedToLoad = delegate { };
public event Action OnAdClicked = delegate { };
public event Action<double> OnPaidEvent = delegate { };

4. Ad Revenue (OnPaidEvent)

您可以查看广告展示的预估广告收入。

  • 如下面示例,使用 'OnPaidEvent' 回调可以查看预估的 eCPM 值。

  • 在中介设置过程中手动设置的值与精确值混合, 建议将其用作预估值

  • eCPM 的货币单位为 USD。

  • 可以将广告收入数据与 MMP 对接。详细信息请参阅下面的 SDK 对接指南。

bannerAd.OnPaidEvent += BannerAd_OnPaidEvent;

void BannerAd_OnPaidEvent(double ecpm)
{
   double revenue = ecpm / 1000f;
   
   // Firebase Analytics 示例
   var impressionParameters = new[] {
    new Firebase.Analytics.Parameter("ad_platform", "AD(X)"),
    new Firebase.Analytics.Parameter("ad_unit_name", "ADX Banner Ad"),
    new Firebase.Analytics.Parameter("ad_format", "BannerAd"),
    new Firebase.Analytics.Parameter("value", revenue),
    new Firebase.Analytics.Parameter("currency", "USD")
   };

   Firebase.Analytics.FirebaseAnalytics.LogEvent("ad_impression", impressionParameters);
   
   // AppsFlyer 示例
   Dictionary<string, string> dic = new Dictionary<string, string>();
   dic.Add("AdUnitName", "ADX Banner Ad")
   dic.Add("AdType", "BannerAd");

   AppsFlyerAdRevenue.logAdRevenue("AD(X)", AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeCustomMediation, revenue, "USD", dic);
}

最后更新于

这有帮助吗?