콘텐츠로 이동

AdKit Unity for DARO

AdKit Unity for DARO는 DARO API를 적용하여 개발한 Unity용 광고 모듈로, SDK 또는 개별 모듈과 함께 사용하면 애널리틱스 서버로 로그가 전송되어 별도의 광고 분석 작업을 생략할 수 있습니다. 또한 AdKit Unity for DARO를 사용하면 SDK 유저가 DARO에서 제공하는 Unity 패키지를 적용하는 과정에 발생하는 오류를 수정하고 시행 착오를 줄일 수 있습니다.

본 가이드에서 AdKit Unity for DARO를 설치 및 각 OS별 Unity 환경에 맞추어 사전 설정, 그리고 기능별 사용 방법을 설명합니다.

설치 또는 업데이트

AdKit for DARO를 처음 사용하는 경우, 아래의 순서대로 설치하세요.

또는 사용 중이던 AdKit을 업데이트하려면 기존 설치 버전을 삭제하고 아래 순서대로 AdKit for DARO 최신 버전을 설치하세요.

  1. AdKit for DARO 최신 버전을 다운로드하고 설치하세요.
  2. Unity 툴바의 Assets > Import Package > Custom Package...에서 .unitypackage 파일을 선택하고 Import를 클릭하세요.

  3. Import 완료 후 Assets 폴더 하위에 Hive AdKit 및 DARO 관련 파일과 폴더가 생성되었는지 확인하세요.

  4. EDM4U 최신 버전을 다운로드하고 설치하세요. Hive SDK v4에는 EDM4U가 포함되어 있습니다. Hive SDK v4를 사용한다면, 이 단계는 생략해주세요.

삭제

Hive AdKit for DARO를 삭제하려면, 아래 목록의 Unity 프로젝트 내 폴더를 삭제하세요.

  • Assets/HIVEAdKit
  • Assets/HIVEAdKit_Example

사전 설정

AdKit for DARO 설치를 완료하였다면, 이를 적용하기 위한 사전 설정 단계로 각 OS 별로 DARO 키 값을 추가하고 빌드 설정을 확인합니다.

Android

Android 기반 Untiy 프로젝트에 DARO 대시보드에서 다운로드한 키 값을 추가합니다.

  1. HIVEAdKit/Plugins/Android 폴더 내 다운로드 받은 android-daro-key.txt 파일을 복사합니다.
    • android-daro-key.txt 파일은 DARO 대시보드 - Apps 화면에서 'Key File' 의 Download 버튼을 눌러 다운받을 수 있습니다.
  2. gradleTemplage.properties 에 아래와 같이 daroAppKey 를 추가합니다.
    daroAppKey=INPUT_DARO_APP_KEY
    

iOS

iOS 기반 Untiy 프로젝트에 DARO 대시보드에서 다운로드한 키 값을 추가합니다.

  1. HIVEAdKit/Plugins/iOS 폴더 내 다운로드 받은 ios-daro-key.txt 파일을 복사합니다.
  2. HIVEAdKit/Editor/iOSAdKitPostBuildProcessor.cs 파일 내 아래와 같이 주석 처리된 Google Admob appIdDaro App Key 주석을 해제하고 내부 값을 추가합니다.
    // Set GADApplicationIdentifier (Please contact Daro for your own ADMOB APPID)
    //rootDict.SetString("GADApplicationIdentifier", "YOUR GOOGLE ADMOB APPID");
    
    // Set DaroAppKey (Please contact DARO for your own Daro App Key)
    //rootDict.SetString("DaroAppKey", "YOUR Daro App Key");
    
    • Google Admob appIdDaro App KeyDARO 대시보드에서 다운로드할 수 있습니다.

iOS 빌드 설정 확인

iOS 프로젝트 빌드 시 DynamicFramework로 동작하는 UnityFramewok 타겟이 생성됩니다.

  1. EDM4U 설정 (1.2.179 기준) Unity의 iOS Resolver Settings(메뉴: Assets > External Dependency Manager > iOS Resolver > Settings)에서 static_framework 빌드 설정이 되어 있는지 확인합니다.

  2. 프로젝트를 빌드합니다. 빌드 완료 후, 생성된 프로젝트 루트 경로에서 Podfile을 열어 파일 설정을 확인합니다.

    source 'https://github.com/Com2uSPlatformCorp/HiveAdKit-iOS.git'
    source 'https://cdn.cocoapods.org/'
    
    platform :ios, '13.0'
    
    target 'UnityFramework' do
      pod 'HiveAdKit_DARO_UnityPlugin', '1.5.3'
    end
    target 'Unity-iPhone' do
    end
    use_frameworks!
    
Warning

AdKit Unity를 적용한 배포용 서비스 빌드 전에 반드시 Assets/HIVEAdKit_Example 폴더를 삭제해야 합니다. HIVEAdKit Example 설정이 포함될 수 있습니다.

DARO Proguard 설정

라이브러리 AAR 파일에 Proguard 규칙 포함하여 배포되므로 별도로 설정없이 자동으로 설정됩니다.

사용 가이드

AdKit Unity for DARO 기능을 사용하기 위한 설정 및 API를 호출 방법을 안내합니다.

AdKit 초기화

  • 게임이 유럽 및 영국(EEA & UK) 지역을 타겟팅 하는 경우, GDPR 동의 팝업을 띄우기 위하여 ShowConsentUI API 를 호출한 이후 AdKit을 초기화해아 합니다. 만약 국내에서만 서비스를 하는 경우에는 HIVEAdKit.Initialize API 를 호출하여 바로 초기화를 진행합니다.
    HIVEAdKit 에서 제공하는 모든 API 기능은 반드시 Unity 의 메인 스레드 에서 호출해야 합니다.
using hive.adkit.daro;

// GDPR 팝업 호출
public void ShowGDPR(string noticeId)
{
    HIVEAdKit.ShowConsentUI(noticeId, () =>
    {
        initSdk();
    });
}

// Hive AdKit 초기화
public void initSdk()
{
    HIVEAdKit.Initialize(isSuccess =>
    {
        if (isSuccess)
            Debug.Log("AdKit SDK 초기화 성공!");
        else
            Debug.Log("AdKit SDK 초기화 실패!");
    });
}

Callback 사용하기

Callback 함수를 사용하려면 HIVEAdKit.InitPlugin 를 호출하여 AdKitCallbackManager 를 GameObject로 등록해야 합니다.
앱 시작 시 Start 코드 블럭에서 호출합니다.

using hive.adkit.daro;

void Start()
{
    HIVEAdKit.InitPlugin(); // Hive AdKit 콜백 등록을 위해 게임 오브젝트를 생성
}

부가 정보 설정

부가 정보를 설정할 수 있으며, 구현 코드는 아래와 같습니다.

using hive.adkit.daro;

[Serializable]
public class SendInfo 
{
    public int level;
    public int gold;
}

SendInfo addtionalInfo = new SendInfo();

public void SetAdditionalInfo()
{
    addtionalInfo.level = 1;
    addtionalInfo.gold = 100;

    // JSON Obejct 형태로 전송
    HIVEAdKit.SetAdditionalInfo(JsonUtility.ToJson(addtionalInfo));
}

리워드 보상 광고 기능

일정 시간 이상 광고 시청 시 보상이 주어지는 보상형 광고 기능을 제공합니다. 한 번에 하나의 광고만 로드할 수 있습니다. 리워드 보상 광고 기능을 구현하는 코드는 아래와 같습니다.

using hive.adkit.daro;

private HIVEAdKit.RewardVideo RewardVideoAd = null;

public void InitRewardedAd()
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                    .OnAdLoaded(OnRewardVideoAdLoadedCB)
                                                    .OnAdOpening(OnRewardVideoAdOpeningCB)
                                                    .OnAdClosed(OnRewardVideoAdClosedCB)
                                                    .OnAdFailed(OnRewardVideoAdFailedCB)
                                                    .OnAdReward(OnRewardVideoAdRewardCB)
                                                    .OnAdClick(OnRewardVideoAdClickCB)
                                                    .OnAdPaidEvent(OnRewardVideoAdPaidEventCB)
                                                    .Build();

    // Create RewardVideoAd Instance
    RewardVideoAd = HIVEAdKit.RewardVideo.Initialize(rewardVideoUnitId, eventHandlers);
}

public void LoadRewardedAd()
{
    // Load RewardVideoAd
    HIVEAdKit.RewardVideo.Load(RewardVideoAd, "Unity-RewardVideo-Load-AdPlacementInfo");
}

public void ShowRewardedAd()
{
    // Show RewardVideoAd
    if( HIVEAdKit.RewardVideo.IsLoaded(RewardVideoAd) ) {
        HIVEAdKit.RewardVideo.Show(RewardVideoAd, "Unity-RewardVideo-Show-AdPlacementInfo");
    }
}

public void DestroyRewardedAd()
{
    // Destroy RewardVideoAd
    HIVEAdKit.RewardVideo.Destroy(RewardVideoAd);
    RewardVideoAd = null;
}

전면 광고 기능

화면 전체를 차지하는 전면 광고 기능을 제공하며, 구현 코드는 아래와 같습니다.

using hive.adkit.daro;

private HIVEAdKit.Interstitial InterstitialAd = null;

public void InitRewardedAd(string unitId)
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                .OnAdLoaded(OnInterstitialAdLoadedCB)
                                                .OnAdOpening(OnInterstitialAdOpeningCB)
                                                .OnAdClosed(OnInterstitialAdClosedCB)
                                                .OnAdFailed(OnInterstitialAdFailedCB)
                                                .OnAdClick(OnInterstitialAdClickCB)
                                                .OnAdPaidEvent(OnInterstitialAdPaidEventCB)
                                                .Build();

    // Create InterstitialAd Instance                                               
    InterstitialAd = HIVEAdKit.Interstitial.Initialize(unitId, eventHandlers);
}

public void LoadInterstitialAd()
{
    // Load InterstitialAd
    HIVEAdKit.Interstitial.Load(InterstitialAd, "Unity-Interstitial-Load-AdPlacementInfo");
}

public void ShowInterstitialAd()
{
    // Show InterstitialAd
    if( HIVEAdKit.Interstitial.IsLoaded(InterstitialAd) ) {
        HIVEAdKit.Interstitial.Show(InterstitialAd, "Unity-Interstitial-Show-AdPlacementInfo");
    }
}

public void DestroyInterstitialAd()
{
    // Destroy InterstitialAd
    HIVEAdKit.Interstitial.Destroy(InterstitialAd);
    InterstitialAd = null;
}

화면의 일부를 차지하는 배너 광고 기능을 제공합니다. BannerPosition을 입력하여 화면 상단 또는 하단으로 배너 위치를 조정할 수 있습니다.
배너 광고는 OnAdClosed() 콜백을 전달받지 않습니다.

using hive.adkit.daro;

private HIVEAdKit.Banner BannerAd = null;

public void InitBannerAd(string unitId)
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                .OnAdLoaded(OnBannerAdLoadedCB)
                                                .OnAdFailed(OnBannerAdFailedCB)
                                                .OnAdClick(OnBannerAdClickCB)
                                                .OnAdPaidEvent(OnBannerAdPaidEventCB)
                                                .Build();

    BannerAd = HIVEAdKit.Banner.Initialize(unitId, BannerPosition.Bottom, eventHandlers);
}

public void LoadBannerAd()
{
    // Automatic Load & Show BannerAd
    HIVEAdKit.AdaptiveBanner.Load(BannerAd, "Unity-AdaptiveBanner-Load-AdPlacementInfo");
}

public void DestroyBannerAd()
{
    // Destroy BannerAd
    HIVEAdKit.Banner.Destroy(BannerAd);
    BannerAd = null;
}