Rewarded Ad

1. 基本要求

  • ADX Unity SDK添加到项目中。

  • 使用为奖励广告颁发的 ADX 广告单元 ID。

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

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

2. 实现

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

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

  3. Load() 以加载广告。

  4. 当广告对象释放时 Destroy()

广告对象可以复用,如使用 OnPaidEvent。 奖励广告加载可能需要一些时间,建议提前加载后再使用。

#if UNITY_ANDROID
    string adxRewardedAdUnitId = "<ANDROID_ADX_REWARDED_AD_UNIT_ID>";
#elif UNITY_IOS
    string adxRewardedAdUnitId = "<IOS_ADX_REWARDED_AD_UNIT_ID>";
#endif

void LoadRewardedAd()
{
    if (rewardedAd == null)
    {
        rewardedAd = new AdxRewardedAd(adxRewardedAdUnitId);
        rewardedAd.OnRewardedAdLoaded += RewardedAd_OnRewardedAdLoaded;
        rewardedAd.OnRewardedAdFailedToLoad += RewardedAd_OnRewardedAdFailedToLoad;
        rewardedAd.OnRewardedAdShown += RewardedAd_OnRewardedAdShown;
        rewardedAd.OnRewardedAdClicked += RewardedAd_OnRewardedAdClicked;
        rewardedAd.OnRewardedAdFailedToShow += RewardedAd_OnRewardedAdFailedToShow;
        rewardedAd.OnRewardedAdEarnedReward += RewardedAd_OnRewardedAdEarnedReward;
        rewardedAd.OnRewardedAdClosed += RewardedAd_OnRewardedAdClosed;
    }

    rewardedAd.Load();
}
  • 广告加载完成后 Show() 调用以展示广告。

void ShowRewardedAd()
{
    if (rewardedAd != null && rewardedAd.IsLoaded()) {
        rewardedAd.Show();
    }
}
  • 当广告对象释放时 Destroy() 。

void DestroyRewardedAd()
{
    if (rewardedAd != null) {
        rewardedAd.Destroy();
        rewardedAd = null;
    }
}

3. Callback

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

public event Action OnRewardedAdLoaded = delegate { };
public event Action<int> OnRewardedAdFailedToLoad = delegate { };
public event Action OnRewardedAdShown = delegate { };
public event Action OnRewardedAdClicked = delegate { };
public event Action OnRewardedAdFailedToShow = delegate { };
public event Action OnRewardedAdEarnedReward = delegate { };
public event Action OnRewardedAdClosed = delegate { };
public event Action<double> OnPaidEvent = delegate { };

4. Ad Revenue (OnPaidEvent)

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

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

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

  • eCPM 的货币单位为 USD。

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

rewardedAd.OnPaidEvent += RewardedAd_OnPaidEvent;

void RewardedAd_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 Rewarded Ad"),
    new Firebase.Analytics.Parameter("ad_format", "RewardedAd"),
    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 Rewarded Ad")
   dic.Add("AdType", "RewardedAd");

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

5. SSV (Server-side verification) 设置

  • SSV 设置是 可选,仅在需要时设置并使用。

  • SSV 设置是为了在发生奖励事件时向开发者注册的 Callback URL进行 Server to Server 方式的调用而进行的设置。

  • 关于 SSV 设置的调用条件如下。

    • 需要通过控制台在 Rewarded Video 类型下完成 Callback URL 的注册。

    • 在视频观看完成后必须发生奖励事件。

    • 如有需要,请在广告请求之前通过 SDK 设置 User IDCustom Data 信息。

  • 客户端设置的User IDCustom Data 信息如果存在, Callback URL将包含在调用中发送。

    • (示例)https://callback_url?param=value&userid=<valule>&customdata=<value>

    • 该设置必须在广告请求之前调用,才能正确将数据 Callback URL包含在内。

// SSV 设置 (optional)
rewardedAd.SetUserIdForSSV("<USER_ID>");
rewardedAd.SetCustomDataForSSV("<CUSTOM_DATA>");

// 广告请求
rewardedAd.Load();

最后更新于

这有帮助吗?