Interstitial Ad

1. 기본 요건

  • ADX Unity SDK를 프로젝트에 추가합니다.

  • Interstitial Ad용으로 발급받은 ADX Ad Unit ID를 사용합니다.

  • 광고를 요청하기 전에 SDK 초기화를 먼저 진행합니다.

    • SDK 초기화는 앱 실행 시 한 번만 호출하여 주시고, 광고 요청은 초기화가 완료된 후에 이뤄져야 합니다.

2. 구현

  1. Android와 iOS 모두 배포된 경우 플랫폼 별로 발급받은 Ad Unit ID를 입력합니다.

  2. AdxInterstitialAd를 인스턴스화 하고 필요한 콜백을 등록합니다.

  3. Load() 를 호출하여 광고를 로드합니다.

  4. 광고 객체 해지시 Destroy() 를 호출합니다.

광고 객체의 경우 재사용 가능하며 OnPaidEvent를 사용하시는 경우 2.3.5 버전부터 사용을 권장드립니다.

#if UNITY_ANDROID
    string adxInterstitialAdUnitId = "<ANDROID_ADX_INTERSTITIAL_AD_UNIT_ID>";
#elif UNITY_IOS
    string adxInterstitialAdUnitId = "<IOS_ADX_INTERSTITIAL_AD_UNIT_ID>";
#endif

void LoadInterstitialAd()
{
    if (interstitialAd == null)
    {
        interstitialAd = new AdxInterstitialAd(adxInterstitialAdUnitId);
        interstitialAd.OnAdLoaded += InterstitialAd_OnAdLoaded;
        interstitialAd.OnAdFailedToLoad += InterstitialAd_OnAdFailedToLoad;
        interstitialAd.OnAdClicked += InterstitialAd_OnAdClicked;
        interstitialAd.OnAdShown += InterstitialAd_OnAdShown;
        interstitialAd.OnAdClosed += InterstitialAd_OnAdClosed;
        interstitialAd.OnAdFailedToShow += InterstitialAd_OnAdFailedToShow;
    }

    interstitialAd.Load();
}
  • 광고가 로드가 되면 Show() 를 호출하여 광고를 표출합니다.

void ShowInterstitialAd()
{
    if (interstitialAd != null && interstitialAd.IsLoaded()){
        interstitialAd.Show();
    }
}
  • 광고 객체 해지시 Destroy() 를 호출합니다.

void DestroyInterstitialAd()
{
    if (interstitialAd != null){
        interstitialAd.Destroy();
        interstitialAd = null;
    }
}

3. Callback

특정 이벤트를 수신할 수 있습니다. 필요에 따라 구현해주세요.

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

4. Ad Revenue (OnPaidEvent)

  • 광고 노출이 발생동안 예상되는 광고 수익을 받아볼 수 있습니다.

  • 이는 미디에이션 설정 과정에서 수동적으로 설정한 값과 정확한 값이 섞여 있어서 예상 값으로 사용하시는 것을 권장드립니다.

  • ecpm의 currency는 USD입니다.

  • 아래와 같이 OnPaidEvent 콜백을 등록하여 사용하시면 됩니다.

  • AdJust의 광고 매출 데이터 연동을 지원합니다. 상세한 내용은 AdJust의 AD(X) SDK 연동 가이드를 확인 부탁드립니다.

  • 해당 기능은 Unity SDK 2.3.5 이상에서 사용을 권장드립니다.

interstitialAd.OnPaidEvent += InterstitialAd_OnPaidEvent;

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

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

Last updated