Rewarded Ad
1. 基本要求
ADX Unity SDK添加到项目中。
使用为奖励广告颁发的 ADX 广告单元 ID。
在请求广告之前 SDK 初始化请先进行。
SDK 初始化请在应用运行时只调用一次,并且 广告请求必须在初始化完成后进行。
2. 实现
如果 Android 和 iOS 均有发布,请分别输入为各平台签发的广告单元 ID。
AdxRewardedAd进行实例化并注册所需的回调。Load()以加载广告。当广告对象释放时
Destroy()。
#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)
您可以查看广告展示的预估广告收入。
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 ID或Custom Data信息。
客户端设置的
User ID和Custom 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();最后更新于
这有帮助吗?