AD(X)
1. 기본 요건
ADX Unity SDK를 프로젝트에 추가합니다.
Rewarded Ad용으로 발급받은 ADX Ad Unit ID를 사용합니다.
광고를 요청하기 전에 SDK 초기화를 먼저 진행합니다.
SDK 초기화는 앱 실행 시 한 번만 호출하여 주시고, 광고 요청은 초기화가 완료된 후에 이뤄져야 합니다.
2. 구현
Android와 iOS 모두 배포된 경우 플랫폼 별로 발급받은 Ad Unit 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)
{
/* Firebase Analytics 샘플
double revenue = ecpm / 1000f;
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 샘플
double revenue = ecpm / 1000f;
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에 포함됩니다.
SDK v2.2 이상에서 동작하며 이전 버전에서는 동작하지 않습니다.
서버측 SSV 콜백 검증을 참고하여 보상에 대한 검증을 합니다.
// SSV 설정 (optional)
rewardedAd.SetUserIdForSSV("<USER_ID>");
rewardedAd.SetCustomDataForSSV("<CUSTOM_DATA>");
// 광고 요청
rewardedAd.Load();
Last updated
Was this helpful?