Skip to content

Android integration guide

pineglobal edited this page Jan 7, 2019 · 6 revisions

Android 통합 가이드

개요

이 가이드에서는 네이티브 Android 게임에 Unity Ads를 구현하는 기본적인 통합 방법을 소개합니다.

  • C#을 사용하는 개발자 분들은 여기를 클릭하세요.
  • Objective-C를 사용하는 iOS 개발자 분들은 여기를 클릭하세요.

Unity의 수익화 플랫폼은 강력한 수익 툴을 제공합니다. 만약 게임에서 광고 외에 인앱 구매도 사용한다면, Unity의 머신러닝 데이터 모델이 콘텐츠 유형을 매끄럽게 혼합하여 수익화 전략을 최적화할 수 있습니다. Unity로 수익을 최적화하는 방법에 대한 자세한 내용은 개인화 플레이스먼트 참고 문서를 참조하세요.

이 가이드는 다음의 내용을 다룹니다.

기본 구현

Unity Developer Dashboard에서 게임 프로젝트 생성

아직 UDN 계정이 없다면 여기에서 계정을 생성하세요. 이미 계정이 있으시다면 아래 과정을 따라 Unity 프로젝트를 생성하실 수 있습니다.

  1. Developer Dashboard에 로그인하고 Operate 탭으로 이동합니다.
  2. 왼쪽 내비게이션에서 Projects(프로젝트)를 선택합니다.
  3. 오른쪽 상단에 있는 NEW PROJECT 버튼을 클릭합니다.

프로젝트를 선택하여 프로젝트의 게임 ID를 찾은 다음, 내비게이션에서 Monetization > Platforms를 선택합니다. Apple App Store Game ID를 복사합니다. 이는 게임에서 Unity Ads 서비스를 활성화하는 데 필요합니다.

플레이스먼트 생성

플레이스먼트는 수익화 콘텐츠를 표시하는 게임 내 트리거 이벤트입니다. Developer DashboardOperate 탭에서 프로젝트를 선택한 다음 왼쪽 내비게이션에서 Monetization > Placements를 선택하면 플레이스먼트를 관리할 수 있습니다.

ADD PLACEMENT 버튼을 클릭하면 플레이스먼트 생성 대화창이 나타납니다. 플레이스먼트 이름을 지정하고 유형을 선택하십시오.

  • 기본 삽입 광고 또는 홍보 콘텐츠를 표시하려면 Non-rewarded를 선택합니다. Non-rewarded(비보상형) 플레이스먼트의 경우에는 플레이어가 지정된 시간이 지나면 광고를 건너뛸 수 있습니다.
  • 플레이어가 광고 보기를 선택하고 보상을 받도록 하려면 Rewarded를 선택합니다. Rewarded(보상형) 플레이스먼트의 경우에는 플레이어가 광고를 건너뛰지 못합니다.
  • 전용 배너 광고 플레이스먼트를 생성하려면 Banner를 클릭합니다.

Unity Ads가 활성화된 모든 프로젝트는 ‘video’(비보상형) 및 ‘rewardedVideo’(보상형) 플레이스먼트를 기본값으로 갖습니다. 필요에 따라 이 두 가지 중 하나를 첫 구현에 자유롭게 사용할 수 있으며, 아니면 직접 생성할 수도 있습니다.

Unity Ads 프레임워크 임포트

여기에서 Unity Ads 프레임워크 unity-ads.aar 을 다운로드하십시오. UnityMonetization API는 SDK 3.0 이상 버전이 필요합니다.

Android Studio 사용

  1. Android Studio에서 기존 Android 프로젝트를 열거나 새로 생성합니다.
  2. 새로운 모듈을 추가하고 unity-ads.aar 파일을 임포트합니다. “unity-ads" 등 모듈의 이름을 지정합니다.
  3. 프로젝트 화면에서 모듈을 오른쪽 클릭한 다음 Open Module Settings > app을 선택하고 "unity-ads" 모듈을 종속 관계(dependency)로 추가합니다.
  4. Java Activity 파일에 다음 임포트 구문을 추가합니다.
import com.unity3d.services.IUnityServicesListener;
import com.unity3d.services.monetization.UnityMonetization;

Android Studio 미사용

빌드 시스템에서 .aar 패키지를 사용할 수 없는 경우에도 유니티는 GitHub에 동일한 리소스를 ZIP 형태의 unity-ads.zip 파일로 제공합니다. Unity Ads를 사용하려면 다음 단계를 따르십시오.

  1. 빌드에 classes.jar 를 포함합니다.
  2. AndroidManifest.xml 로부터 매니페스트를 수동으로 병합합니다. AdUnitActivityAdUnitSoftwareActivity activity가 모두 포함되었는지 확인합니다. 또한 INTERNETACCESS_NETWORK_STATE 권한도 추가해야 합니다.
  3. ProGuard를 사용한다면, ProGuard 구성에 proguard.txt 의 모든 행을 추가합니다.

Unity Ads SDK 초기화

SDK를 초기화하려면, 해당 플랫폼의 프로젝트에 있는 게임 ID를 참조해야 합니다. ID는 Developer DashboardOperate 탭에서 프로젝트를 선택한 다음, 왼쪽 내비게이션에서 Monetization > Platforms를 선택하여 찾을 수 있습니다.

게임 스크립트에서 initialize 메서드를 호출하여 게임 런타임 수명주기의 초반에, 광고 표시 시점 이전에 SDK를 초기화하십시오. 예를 들면 다음과 같습니다.

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate (savedInstanceState);
    setContentView (R.layout.activity_main);

     UnityServices.initialize (myActivity, unityGameID, myListener, true);
}

이 예제에서, myActivity 변수는 현재 Android Activity입니다. unitGameID 변수는 Developer Dashboard에서 확인할 수 있는 프로젝트의 Game ID입니다. myListener 변수는 IUnityMonetizationListener 콜백의 리스너입니다. SDK를 초기화하기 위해서 이 리스너를 반드시 구현해야 합니다. 어떻게 하는지를 알아보시려면 API를 확인해주세요. true boolean 변수는 게임이 테스트 모드에 있음을 나타내며 테스트 광고만을 표시합니다.

###기본(비보상형) 광고 구현 PlacementContent는 수익화 콘텐츠를 나타내며 플레이스먼트에서 표시할 수 있는 오브젝트입니다. 자세한 내용은 콘텐츠 유형개인화 플레이스먼트를 참조하세요. 표시할 준비가 된 콘텐츠를 getPlacementContent 함수로 가져와 show 함수로 표시하십시오. 예를 들면 다음과 같습니다.

@Override
    public void showAds (View view) {

        // Check if the Placement is ready:
        if (UnityMonetization.isReady (placementId)) {
            // Retrieve the PlacementContent that is ready:
            PlacementContent pc = UnityMonetization.getPlacementContent (placementId);
            // Check that the PlacementContent is the desired type:
            if (pc.getType ().equalsIgnoreCase ("SHOW_AD")) {
                // Cast the PlacementContent as the desired type:
                ShowAdPlacementContent p = (ShowAdPlacementContent) pc;
                // Show the PlacementContent:
                p.show (this, this);
            }
        } else {
            Log.e ("This Placement is not ready!");
        }
    }

보상형 광고 구현

광고를 보는 플레이어를 보상하면 사용자 참여가 증가하고 더욱 높은 수익으로 이어질 수 있습니다. 예를 들어, 게임 내 화폐나 소모품, 추가 생명, 경험치 증가 등의 보상이 있습니다. 보상형 광고를 효과적으로 설계하는 방법에 관한 자세한 내용은 광고 베스트 프랙티스 참고 문서를 참조하세요.

광고를 보는 플레이어를 보상하려면, 기본 구현 섹션에 자세히 설명된 동일한 과정을 수행하십시오. 단, 광고 시청을 완료하는 플레이어를 위한 커스텀 로직으로 보상 콜백 메서드를 사용하여 광고를 표시해야 합니다.

플레이스먼트 선택

보상형 광고는 반드시 보상형 플레이스먼트를 통해서 표시해야 합니다. Unity Ads가 활성화된 모든 프로젝트는 ‘rewardedVideo’ 플레이스먼트를 기본값으로 갖습니다. 이것을 자유롭게 구현에 이용할 수 있으며, 아니면 직접 생성할 수도 있습니다. 단, 플레이스먼트를 반드시 보상형으로 구성해야 합니다.

스크립트에 콜백 메서드 추가

show 함수는 SDK가 FinishState 열거형을 반환하는 데 사용하는 onAdsFinished 콜백 메서드를 받습니다. 이 결과는 플레이어가 광고를 끝까지 시청했는지 아니면 건너뛰었는지를 나타냅니다. 이 정보를 이용하여 각 시나리오별로 핸들링 방법에 관해 커스텀 함수를 작성하십시오. 예를 들면 다음과 같습니다.

@Override
public void onAdFinished (String s, UnityAds.FinishState finishState) {
    if (finishState == UnityAds.FinishState.COMPLETED) {
        if (s.equals (rewardedPlacementId)) {
            // Reward the player here.
        }
    }
}

보상형 광고 버튼 코드 예제

다음 예제는 게임 내 특정 지점에서 PlacementContent를 표시할 준비가 되었는지 점검하는 과정을 보여 줍니다. 또 다른 방법으로는, 콘텐츠를 이용할 수 있는 시점을 알리는 리스너를 구현할 수도 있습니다.

public class MainActivity extends AppCompatActivity implements View.OnClickListener, IUnityServicesListener, IShowAdListener {
    private Button rewardedAdsButton;
    private String unityGameID = "1234567";
    private String interstitialPlacementId = "video";
    private String rewardedPlacementId = "rewardedVideo";

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);

        UnityServices.initialize (this, unityGameID, this);

        rewardedAdsButton = findViewById (R.id.rewardedAdsButton);
        rewardedAdsButton.setOnClickListener (this);
    }

    @Override
    public void onClick (View view) {
        if (UnityMonetization.isReady (rewardedPlacementId)) {
            PlacementContent pc = UnityMonetization.getPlacementContent (rewardedPlacementId);
            if (placement.getType ().equalsIgnoreCase ("SHOW_AD")) {
                ShowAdPlacementContent p = (ShowAdPlacementContent) pc;
                p.show(this, this);
            }
        } else {
            Log.e ("This Placement is not ready!");
        }
    }

    @Override
    public void onAdFinished (String s, UnityAds.FinishState finishState) {
        if (finishState == UnityAds.FinishState.COMPLETED) {
            if (s.equals (rewardedPlacementId)) {
                // Reward the player here.
            }
        }
    }
}

배너 광고 구현

플레이스먼트 구성

배너 광고는 특정 유형의 전용 배너 플레이스먼트가 필요합니다. 현재 배너는 화면 중앙 하단에 고정되어 표시됩니다.

스크립트 구현

게임 스크립트에서 UnityBanners API를 임포트한 뒤에 SDK에 콜백을 제공할 수 있는 IUnityBannerListener 클래스를 구현할 수 있습니다. 그리고 loadBannerdestroy 함수를 사용하여 배너를 표시하거나 숨길 수 있습니다. 다음 스크립트 샘플은 배너 광고를 표시하는 구현 예제입니다.

public class UnityBannerExample extends Activity {
    private View bannerView;
    private Button bannerButton;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.unityads_example_layout);
        final Activity myActivity = this;

        final IUnityBannerListener unityBannerListener = new UnityBannerListener ();
        final IUnityMonetizationListener unityMonetizationListener = new UnityMonetizationListener ();

        UnityBanners.setBannerListener (unityBannerListener);

        bannerButton = (Button) findViewById (R.id.unityads_example_banner_button);
        bannerButton.setEnabled (true);
        bannerButton.setOnClickListener (new View.OnClickListener() {
            @Override
            public void onClick (View v) {
                if (bannerView == null) {
                    UnityBanners.loadBanner (myActivity, "banner");
                } else {
                    UnityBanners.destroy ();
                }
            }
        });

        final Button initializeButton = (Button) findViewById (R.id.unityads_example_initialize_button);
        initializeButton.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick (View v) {
                UnityMonetization.initialize (myActivity, "1234567", unityMonetizationListener, true);
            }
        });
    }

    private class UnityBannerListener implements IUnityBannerListener {

        @Override
        public void onUnityBannerLoaded (String placementId, View view) {
            bannerView = view;
            ((ViewGroup) findViewById (R.id.unityads_example_layout_root)).addView (view);
        }

        @Override
        public void onUnityBannerUnloaded (String placementId) {
            bannerView = null;
        }

        @Override
        public void onUnityBannerShow (String placementId) {
        }

        @Override
        public void onUnityBannerClick (String placementId) {
        }

        @Override
        public void onUnityBannerHide (String placementId) {
        }

        @Override
        public void onUnityBannerError (String message) {

        }
    }

    private class UnityMonetizationListener implements IUnityMonetizationListener {

        @Override
        public void onPlacementContentReady (String placementId, PlacementContent placementContent) {
        }

        @Override
        public void onPlacementContentStateChange (String placementId, PlacementContent placementContent, UnityMonetization.PlacementContentState previousState, UnityMonetization.PlacementContentState newState) {
        }

        @Override
        public void onUnityServicesError (UnityServices.UnityServicesError error, String message) {
        }
    }
}

테스트

게임을 퍼블리시하기 전에 다음의 과정을 따라 테스트 모드를 활성화하십시오.

  1. 먼저 Developer DashboardOperate 탭에서 프로젝트를 선택합니다.
  2. 왼쪽 내비게이션에서 Monetization > Platforms를 선택합니다.
  3. 원하는 플랫폼을 지정하고 SETTINGS 탭을 선택합니다.
  4. 아래로 스크롤하여 TEST MODE 섹션에서 오버라이드 클라이언트 테스트 모드로 토글한 다음 Force test mode ON 라디오 버튼을 선택합니다.

프로젝트를 실행하고 광고가 잘 구현되었는지 테스트합니다.

참고: 광고가 잘 통합되었는지 테스트하기 전에 테스트 모드를 활성화해야만 부정행위(fraud) 적발을 방지할 수 있습니다.

수익 최적화

축하합니다. 이제 Unity Ads를 구현하셨습니다! 유니티의 목표는 사용자가 간편한 방법으로 수익을 최대화하는 것입니다. 이 점을 염두에 두고 다음 단계들을 살펴보십시오.

  • 게임에서 인앱 구매를 사용한다면 Android용 구매 통합을 사용하여 IAP Promo를 구현하고 인앱 구매를 홍보하세요.
  • Ads와 IAP Promo가 준비되었다면 개인화 플레이스먼트를 사용하여 광고와 IAP 전략을 강화하고 전체 게임의 수익 상승을 노려 보세요.
  • 여기 베스트 프랙티스 가이드를 통해서 효율적인 광고를 설계하는 원리와 방법을 이해할 수 있습니다.

맨 위로

Android API 레퍼런스

UnityMonetization

플레이스먼트 상태와 콘텐츠를 처리하는 델리게이트를 구현하는 정적 클래스입니다.

Initialize

런타임 시 게임에서 Unity Ads를 초기화합니다. 오류를 방지하려면 초기화는 게임 런타임 수명주기의 초반에, 가능하다면 부팅 시점에 수행하는 것이 좋습니다. 초기화는 광고 표시 시점 이전에 이루어져야 합니다.

public static void initialize (final Activity activity, final String gameId, final IUnityMonetizationListener listener, final boolean testMode);

여기에서 activity 파라미터는 현재의 Android Activity입니다. 그리고 gameID 파라미터는 Developer Dashboard에서 확인할 수 있는 프로젝트의 게임 ID입니다. listener 파라미터는 IUnityMonetizationListener 콜백의 리스너입니다. testMode 파라미터는 게임이 테스트 모드 상태인지를 나타냅니다. testModetrue이면, 테스트 광고만 볼 수 있습니다. testModefalse이면, 라이브 광고를 볼 수 있습니다. 게임 출시 전까지는 테스트 모드를 사용하여 부정행위(fraud) 적발을 방지하는 것이 좋습니다.

setListener

PlacementContent 콜백 이벤트에 대한 IUnityMonetizationListener를 설정합니다.

public static void setListener (IUnityMonetizationListener listener);

getListener

PlacementContent 콜백 이벤트에 대한 현재 IUnityMonetizationListener 리스너를 반환합니다.

public static IUnityMonetizationListener getListener ();

IUnityMonetizationListener

개발자는 이 인터페이스를 구현하여 SDK에 전달합니다.

onPlacementContentReady

이 함수는 해당 플레이스먼트에서 PlacementContent 오브젝트를 이용할 수 있으며 표시할 준비가 되었다는 것을 사용자에게 알립니다.

onPlacementContentChanged

이 함수는 준비된 PlacementContent 오브젝트의 새로고침으로 인해 상태가 변경이 되면 알립니다.

IUnityMonetizationListener 구현 예제

private class UnityMonetizationListener implements IUnityMonetizationListener {

    @Override
    public void onPlacementContentReady (String placementId, PlacementContent placementContent) {
        // Check the Placement ID to determine behavior
        switch (placementId) {
            case "mixedPlacement":
                if (placementContent instanceof PromoAdPlacementContent) {
                    PromoAdPlacementContent promoPlacementContent = ((PromoAdPlacementContent) placementContent)
                    // Promo content is ready, prepare Promo display
                } else if (placementContent instanceof ShowAdPlacementContent) {
                    ShowAdPlacementContent adPlacementContent = ((ShowAdPlacementContent) placementContent);
                    // Ad content is ready, prepare video ad display
                }
                break;
            case "rewardedVideo":
                if (placementContent instanceof ShowAdPlacementContent) {
                    ShowAdPlacementContent adPlacementContent = ((ShowAdPlacementContent) placementContent);
                    if (adPlacementContent.isRewarded ()) {
                        // Rewarded content is ready, prepare content for display and implement reward handlers 
                    }
                }
                break;
        }
    }

    @Override
    public void onPlacementContentStateChange (String placementId, PlacementContent placementContent, UnityMonetization.PlacementContentState previousState, UnityMonetization.PlacementContentState newState) {
    }
}

isReady

해당 플레이스먼트에 PlacementContent 오브젝트가 준비되었는지 확인합니다. 콘텐츠가 준비된 경우 true를, 그렇지 않으면 false를 반환합니다.

public static boolean isReady (String placementId);

getPlacementContent

해당 플레이스먼트에 준비된 PlacementContent를 반환합니다. 준비된 콘텐츠가 없다면 null을 반환합니다.

public static PlacementContent getPlacementContent (String placementId);

이 함수를 확장하여 반환된 PlacementContent를 특정 유형으로 형변환할 수 있습니다. 반환된 콘텐츠가 다른 유형일 경우 null을 반환합니다.

public static <T extends PlacementContent> T getPlacementContent (String placementId, Class<T> asClass);

asClass 파라미터는 원하는 형변환 유형을 나타냅니다.

PlacementContent

플레이스먼트가 표시할 수 있는 수익화 콘텐츠를 나타내는 오브젝트입니다.

isReady

이 함수는 PlacementContent가 표시할 준비가 되었을 때 true를, 그렇지 않으면 false를 반환합니다.

public boolean isReady ();

getType

이 기능은 표시할 수 있는 PlacementContent의 유형을 반환합니다.

public String getType ();

다음 문자열 값이 유효합니다.

문자열 값 설명
SHOW_AD ShowAdPlacementContent 클래스 확장자를 사용하는 동영상 광고 콘텐츠를 나타냅니다.
PROMO_AD PromoAdPlacementContent 클래스 확장자를 사용하는 IAP Promo 콘텐츠를 나타냅니다.
NO_FILL 지정된 플레이스먼트에 이용할 수 있는 PlacementContent가 없음을 나타냅니다.

RewardablePlacementContent

보상형 콘텐츠를 지원하는 기능을 포함하도록 PlacementContent 클래스를 확장합니다.

isRewarded

이 함수는 PlacementContent가 보상형인 경우 true를, 그렇지 않으면 false를 반환합니다.

public boolean isRewarded ();

ShowAdPlacementContent

동영상 광고 콘텐츠를 지원하는 기능을 포함하도록 RewardablePlacementContent 클래스를 확장합니다.

show

이 함수는 이용할 수 있는 ShowAdPlacementContent를 표시합니다. IShowAdListener 인터페이스를 구현하면 이 함수가 각 광고 FinishState에 응답하는 방법을 정의할 수 있습니다.

public void show (Activity activity, IShowAdListener listener);

IShowAdListener

이 인터페이스를 구현하면 동영상 광고의 FinishState에 대한 onAdsFinished 콜백 메서드를 제공할 수 있습니다.

onAdsFinished

이 메서드를 구현하면 광고를 끝까지 시청했는지, 건너뛰었는지, 아니면 오류가 나서 중단되었는지에 대한 핸들링 로직을 제공할 수 있습니다.

void onAdFinished (String placementId, UnityAds.FinishState withState);

FinishState

종료 시 광고의 최종 상태를 제시하는 열거형입니다. 보상 사례를 핸들링하는 데 사용합니다.

설명
COMPLETED 플레이어가 광고를 끝까지 보았습니다.
SKIPPED 플레이어가 광고를 끝까지 보기 전에 건너뛰었습니다.
ERROR 광고를 로드하지 못했습니다.

onAdsFinished 구현 예제

@Override
public void onAdFinished (String s, UnityAds.FinishState finishState) {
    Log.d ("PlacementId: " + s + " " + finishState);

    if (finishState == UnityAds.FinishState.COMPLETED) {
        if (s.equals (rewardedPlacementId)) {
            // Reward the player here.
        }
    } else if (finishState == UnityAds.FinishState.SKIPPED) {
        // Optionally implement skipped logic
    } else if (finishState == UnityAds.FinishState.ERROR) {
        // Optionally attempt to retrieve another ad
    }
}

PromoAdPlacementContent

ShowAdPlacementContent 클래스를 확장하여, IAP Promo 콘텐츠에 대한 기능을 제공합니다. 자세한 내용은 네이티브 Promo 참고 문서를 참조하십시오.

UnityBanners

광고 배너를 핸들링하고, 보여주고, 숨길 수 있는 정적 클래스입니다.

loadBanner

배너 광고 콘텐츠를 로드하는 기본 메서드입니다. 필요에 따라 몇 가지 파라미터를 이용하여 이 함수를 조정할 수 있습니다.

메서드 설명
public static void loadBanner (Activity activity) Developer Dashboard에 정의된 기본값 플레이스먼트 ID와 함께 배너 광고를 로드합니다.
public static void loadBanner (final Activity activity, final String placementId) 특정 플레이스먼트 ID와 함께 배너 광고를 로드합니다.

destroy

배너 광고를 파기하고 Activity 계층 구조에서 제거한 다음 플레이어에게 숨깁니다.

public static void destroy ();

setBannerListenergetBannerListener

Unity Ads가 배너 콜백을 전송할 수 있도록 지정된 IUnityBannerListener를 설정하거나 가져옵니다.

public static void setBannerListener (IUnityBannerListener listener);

public static IUnityBannerListener getBannerListener ();

IUnityBannerListener

이 인터페이스를 콜백에 구현하고 SDK에 전달할 수 있습니다.

onUnityBannerLoaded 이 콜백은 배너 광고가 로드되고 표시 준비가 되었을 때 작동합니다. 여기에서 view는 view 계층 구조에 배치되는 View입니다.

void onUnityBannerLoaded (String placementId, View view);

onUnityBannerUnloaded 이 콜백은 파기 시 작동하여, 배너가 완전히 파기되었고 레퍼런스를 제거할 수 있음을 알립니다(예: onUnityBannerLoaded에 제공된 view 제거).

void onUnityBannerUnloaded (String placementId);

onUnityBannerShow 이 콜백은 배너 광고가 view 계층 구조에 들어갔고 플레이어에게 보일 때 작동합니다.

void onUnityBannerShow (String placementId);

onUnityBannerHide 이 콜백은 배너 광고가 view 계층 구조에서 제거되거나 창 변경으로 인해 플레이어에게 숨겨질 때 작동합니다.

void onUnityBannerHide (String placementId);

onUnityBannerClick 이 콜백은 플레이어가 배너 광고를 클릭했을 때 작동합니다.

void onUnityBannerClick (String placementId);

onUnityBannerError 이 콜백은 SDK에 오류가 발생했을 때 작동합니다. 기본적으로 모든 오류가 기록되지만 이 메서드는 디버깅 시 추가적인 도움을 제공할 수 있습니다. 또한 이 콜백을 사용하여 다른 오류 시나리오의 통계를 수집할 수도 있습니다.

void onUnityBannerError (String message);

IUnityBannerListener 구현 예제

final IUnityBannerListener unityBannerListener = new UnityBannerListener ();

UnityBanners.setBannerListener (unityBannerListener);

private class UnityBannerListener implements IUnityBannerListener {

        @Override
        public void onUnityBannerLoaded (String placementId, View view) {
            bannerView = view;
            ((ViewGroup) findViewById (R.id.unityads_example_layout_root)).addView (view);
            toast ("onUnityBannerLoaded", "Banner loaded");
        }

        @Override
        public void onUnityBannerUnloaded (String placementId) {
            toast ("onUnityBannerUnloaded", placementId + " unloaded");
            bannerView = null;
        }

        @Override
        public void onUnityBannerShow (String placementId) {
            toast ("onUnityBannerShow", placementId + " show");
        }

        @Override
        public void onUnityBannerClick (String placementId) {
            toast ("onUnityBannerShow", placementId + " click");
        }

        @Override
        public void onUnityBannerHide (String placementId) {
            toast ("onUnityBannerHide", placementId + " hide");
        }

        @Override
        public void onUnityBannerError (String message) {
            toast ("onUnityBannerError", "Banner error: " + message);
        }
    }
}

맨 위로

Clone this wiki locally