기술 자료

​
​

Development

User Acquisition

Monetization

산업 분야

Unity Ads Monetization

Unity Ads Android SDK

Unity Ads iOS SDK

Unity Ads SDK

Unity Ads Monetization

Unity Ads Monetization
​
​
Android 개발자 가이드
  • Android SDK 개요
  • 연동 요구 사항
  • Android용 Unity Ads SDK 설치
  • Android에서 SDK 초기화
  • Android에서 인터스티셜 광고 구현
  • Android에서 보상형 광고 구현
  • Android에서 배너 광고 구현
Android SDK API 레퍼런스
  • Android용 Unity Ads API 레퍼런스 (Java)
  1. 게임 성장
  2. Unity Ads
  3. Android 개발자용 Unity Ads SDK 연동 가이드

Android에서 배너 광고 구현

Android 앱에서 배너 광고를 구현합니다. 배너 뷰 오브젝트를 생성하고 레이아웃에 표시하고 리스너를 사용하여 광고 이벤트를 관리합니다.
읽는 시간 4분
최근 업데이트: 6시간 전

참고
Unity Ads를 초기화한 후 배너 광고를 표시해야 합니다.
배너 광고를 사용하려면 특정 유형의 배너 전용 광고 단위가 필요합니다.
다른 뷰와 마찬가지로 배너 뷰 오브젝트를 뷰 계층 구조에 배치할 수 있습니다. 그러면 각 배너 인스턴스의 위치를 커스터마이즈하거나 여러 배너를 표시할 수 있습니다.
참고
app-ads.txt는 광고 생태계의 부정 행위를 근절하고 투명성을 구축하기 위한 IAB 이니셔티브입니다. 설명된 대로 app-ads.txt를 구현해야 합니다. 그렇지 않으면 배너 수요가 크게 줄어듭니다.

스크립트 구현

다음 스크립트 샘플은 화면에 두 개의 배너 광고와 이를 테스트하기 위한 버튼을 표시하는 구현 예제입니다.
이 예제에서는 여러 배너 뷰 오브젝트에 단일 리스너를 사용합니다. 배너 뷰 오브젝트별로 다른 리스너를 사용할 수도 있습니다.
참고
Unity Ads는 현재 실행 중인 작업에 대한 액세스 권한이 필요하므로 다음 예에서는
getApplicationContext()
를 사용합니다. 이는 모든 구현에 적합하지 않을 수 있으므로 일부 커스터마이징이 필요할 수 있습니다(연동에 따라 다름).

MREC 배너 포맷 구현

앱에 MREC(중간 직사각형) 크기의 광고 포맷을 표시하려면 300x250, 300x300, 450x450과 같이 적절한 크기를 사용해야 합니다. 특히 300x250 MREC 배너 광고의 경우 다음 예제 코드에서 아래 값을 변경합니다.
new UnityBannerSize(320, 50)
조정된 크기는 다음과 같습니다.
new UnityBannerSize(300, 250)

배너 광고 예시

import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.unity3d.ads.IUnityAdsInitializationListener; import com.unity3d.ads.UnityAds; import com.unity3d.services.banners.BannerErrorInfo; import com.unity3d.services.banners.BannerView; import com.unity3d.services.banners.UnityBannerSize; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.RelativeLayout; public class ShowBanners extends AppCompatActivity implements IUnityAdsInitializationListener { String unityGameID = "1234567"; Boolean testMode = true; String topAdUnitId = "topBanner"; String bottomAdUnitId = "bottomBanner"; // Listener for banner events: private BannerView.IListener bannerListener = new BannerView.IListener() { @Override public void onBannerLoaded(BannerView bannerAdView) { // Called when the banner is loaded. Log.v("UnityAdsExample", "onBannerLoaded: " + bannerAdView.getPlacementId()); // Enable the correct button to hide the ad (bannerAdView.getPlacementId().equals("topBanner") ? hideTopBannerButton : hideBottomBannerButton).setEnabled(true); } @Override public void onBannerFailedToLoad(BannerView bannerAdView, BannerErrorInfo errorInfo) { Log.e("UnityAdsExample", "Unity Ads failed to load banner for " + bannerAdView.getPlacementId() + " with error: [" + errorInfo.errorCode + "] " + errorInfo.errorMessage); // Note that the BannerErrorInfo object can indicate a no fill (refer to the API documentation). } @Override public void onBannerClick(BannerView bannerAdView) { // Called when a banner is clicked. Log.v("UnityAdsExample", "onBannerClick: " + bannerAdView.getPlacementId()); } @Override public void onBannerLeftApplication(BannerView bannerAdView) { // Called when the banner links out of the application. Log.v("UnityAdsExample", "onBannerLeftApplication: " + bannerAdView.getPlacementId()); } }; // This banner view object will be placed at the top of the screen: BannerView topBanner; // This banner view object will be placed at the bottom of the screen: BannerView bottomBanner; // View objects to display banners: RelativeLayout topBannerView; RelativeLayout bottomBannerView; // Buttons to show the banners: Button showTopBannerButton; Button showBottomBannerButton; // Buttons to destroy the banners: Button hideTopBannerButton; Button hideBottomBannerButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initialize Unity Ads: UnityAds.initialize(getApplicationContext(), unityGameID, testMode, this); // Set up a button to load the top banner when clicked: showTopBannerButton = findViewById(R.id.loadTopBanner); // Set up a button to load the bottom banner when clicked: showBottomBannerButton = findViewById(R.id.loadBottomBanner); // Set up a button to destroy the top banner when clicked: hideTopBannerButton = findViewById(R.id.hideTopBanner); // Set up a button to destroy the bottom banner when clicked: hideBottomBannerButton = findViewById(R.id.hideBottomBanner); showTopBannerButton.setEnabled(false); showBottomBannerButton.setEnabled(false); hideTopBannerButton.setEnabled(false); hideBottomBannerButton.setEnabled(false); showTopBannerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showTopBannerButton.setEnabled(false); // Create the top banner view object: topBanner = new BannerView(view.getContext(), topAdUnitId, new UnityBannerSize(320, 50)); // Set the listener for banner lifecycle events: topBanner.setListener(bannerListener); topBannerView = findViewById(R.id.topBanner); LoadBannerAd(topBanner, topBannerView); } }); showBottomBannerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showBottomBannerButton.setEnabled(false); // Create the bottom banner view object: bottomBanner = new BannerView(view.getContext(), bottomAdUnitId, new UnityBannerSize(320, 50)); // Set the listener for banner lifecycle events: bottomBanner.setListener(bannerListener); bottomBannerView = findViewById(R.id.bottomBanner); LoadBannerAd(bottomBanner, bottomBannerView); } }); hideTopBannerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Remove content from the banner view: topBannerView.removeAllViews(); // Remove the banner variables: topBannerView = null; topBanner = null; showTopBannerButton.setEnabled(true); } }); hideBottomBannerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Remove content from the banner view: bottomBannerView.removeAllViews(); // Remove the banner variables: bottomBannerView = null; bottomBanner = null; showBottomBannerButton.setEnabled(true); } }); } public void LoadBannerAd(BannerView bannerView, RelativeLayout bannerLayout) { // Request a banner ad: bannerView.load(); // Associate the banner view object with the banner view: bannerLayout.addView(bannerView); } @Override public void onInitializationComplete() { // Enable the show ad buttons because ads can now be loaded showTopBannerButton.setEnabled(true); showBottomBannerButton.setEnabled(true); } @Override public void onInitializationFailed(UnityAds.UnityAdsInitializationError error, String message) { } }
다음 단계: 수익화 전략 가이드를 검토하고 구현 내용을 테스트하십시오.

Copyright © 2026 Unity Technologies
법률 정보개인정보 처리방침쿠키Documentation Terms of Use개인 정보 판매 또는 공유 금지개인정보 보호 선택(쿠키 설정)

'Unity', Unity 로고 및 기타 Unity 상표는 미국 및 기타 지역 내 Unity Technologies 또는 그 계열사의 상표 또는 등록상표입니다(자세한 내용은 여기에서 확인하세요). 기타 명칭 또는 브랜드는 해당 소유자의 상표입니다.

일부 페이지는 편의를 위해 기계 번역되었으며 부정확한 내용이 있을 수 있습니다. 정보가 상충되는 경우, 영어 버전을 우선으로 참조하세요.

  • 보고 있는 페이지
    • 스크립트 구현

      • MREC 배너 포맷 구현

        • 배너 광고 예시


이 페이지의 문제 보고