전면 광고

전면 광고는 호스트 앱의 인터페이스를 가리는 전체 화면 광고입니다. 일반적으로 앱 활동이 바뀌는 시점이나 게임에서 다음 레벨로 넘어갈 때처럼 앱 흐름의 자연스러운 전환 시점에서 광고가 게재됩니다. 앱에 전면 광고가 표시되면 사용자는 광고를 탭하여 도착 페이지로 이동하거나 광고를 닫고 앱으로 돌아갈 수 있습니다. 우수사례를 읽어보세요.

이 가이드에는 전면 광고를 Android 앱에 구현하는 방법을 설명합니다.

기본 요건

  • 설정 GMA Next-Gen SDK.
  • 항상 테스트 광고로 테스트

    앱을 빌드하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.

    테스트 광고를 로드하는 가장 쉬운 방법은 Android 전면 광고 테스트 전용 광고 단위 ID를 사용하는 것입니다.

    ca-app-pub-3940256099942544/1033173712

    이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트, 디버깅 중에 앱에서 자유롭게 사용할 수 있습니다. 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.

    GMA Next-Gen SDK 테스트 광고에 관한 자세한 내용은 테스트 광고 사용 설정을 참고하세요.

    광고 로드하기

    광고를 로드하기 위해 GMA Next-Gen SDK는 다음을 제공합니다.

    단일 광고 로드 API로 로드

    다음 예에서는 단일 광고를 로드하는 방법을 보여줍니다.

    Kotlin

    import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
    import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
    import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
    import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback
    import com.google.android.libraries.ads.mobile.sdk.MobileAds
    
    class InterstitialActivity : Activity() {
      private var interstitialAd: InterstitialAd? = null
    
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    
        // Load ads after you initialize GMA Next-Gen SDK.
        InterstitialAd.load(
          AdRequest.Builder(AD_UNIT_ID).build(),
          object : AdLoadCallback<InterstitialAd> {
            override fun onAdLoaded(ad: InterstitialAd) {
              // Interstitial ad loaded.
              interstitialAd = ad
            }
    
            override fun onAdFailedToLoad(adError: LoadAdError) {
              // Interstitial ad failed to load.
              interstitialAd = null
            }
          },
        )
      }
    
      companion object {
        // Sample interstitial ad unit ID.
        const val AD_UNIT_ID = "ca-app-pub-3940256099942544/1033173712"
      }
    }
    

    자바

    import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
    import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
    import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
    import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd;
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback;
    import com.google.android.libraries.ads.mobile.sdk.MobileAds;
    
    class InterstitialActivity extends Activity {
      // Sample interstitial ad unit ID.
      private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/1033173712";
      private InterstitialAd interstitialAd;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        // Load ads after you initialize GMA Next-Gen SDK.
        InterstitialAd.load(
            new AdRequest.Builder(AD_UNIT_ID).build(),
            new AdLoadCallback<InterstitialAd>() {
              @Override
              public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                // Interstitial ad loaded.
                AdLoadCallback.super.onAdLoaded(interstitialAd);
                InterstitialActivity.this.interstitialAd = interstitialAd;
              }
    
              @Override
              public void onAdFailedToLoad(@NonNull LoadAdError adError) {
                // Interstitial ad failed to load.
                AdLoadCallback.super.onAdFailedToLoad(adError);
                interstitialAd = null;
              }
            }
        );
      }
    }
    

    광고 미리 로드 API로 로드

    미리 로드를 시작하려면 다음 단계를 따르세요.

    1. 광고 요청으로 미리 로드 구성을 초기화합니다.

    2. 광고 단위 ID 및 미리 로드 구성으로 전면 광고의 미리 로더를 시작합니다.

    Kotlin

    private fun startPreloading(adUnitId: String) {
      val adRequest = AdRequest.Builder(adUnitId).build()
      val preloadConfig = PreloadConfiguration(adRequest)
      InterstitialAdPreloader.start(adUnitId, preloadConfig)
    }
    
    

    자바

    private void startPreloading(String adUnitId) {
      AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
      PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
      InterstitialAdPreloader.start(adUnitId, preloadConfig);
    }
    
    

    광고는 표시되는 대로 계속 사용할 수 있습니다. 다음 예에서는 미리 로더에서 광고를 폴링합니다.

    Kotlin

    // Polling returns the next available ad and loads another ad in the background.
    val ad = InterstitialAdPreloader.pollAd(adUnitId)
    

    자바

    // Polling returns the next available ad and loads another ad in the background.
    final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
    

    InterstitialAdEventCallback 설정하기

    InterstitialAdEventCallbackInterstitialAd 표시와 관련된 이벤트를 처리합니다. 전면 광고를 표시하기 전에 콜백을 설정해야 합니다.

    Kotlin

    // Listen for ad events.
    interstitialAd?.adEventCallback =
      object : InterstitialAdEventCallback {
        override fun onAdShowedFullScreenContent() {
          // Interstitial ad did show.
        }
    
        override fun onAdDismissedFullScreenContent() {
          // Interstitial ad did dismiss.
          interstitialAd = null
        }
    
        override fun onAdFailedToShowFullScreenContent(
          fullScreenContentError: FullScreenContentError
        ) {
          // Interstitial ad failed to show.
          interstitialAd = null
        }
    
        override fun onAdImpression() {
          // Interstitial ad did record an impression.
        }
    
        override fun onAdClicked() {
          // Interstitial ad did record a click.
        }
      }
    

    자바

    // Listen for ad events.
    interstitialAd.setAdEventCallback(
        new InterstitialAdEventCallback() {
          @Override
          public void onAdShowedFullScreenContent() {
            // Interstitial ad did show.
            InterstitialAdEventCallback.super.onAdShowedFullScreenContent();
          }
    
          @Override
          public void onAdDismissedFullScreenContent() {
            // Interstitial ad did dismiss.
            InterstitialAdEventCallback.super.onAdDismissedFullScreenContent();
            interstitialAd = null;
          }
    
          @Override
          public void onAdFailedToShowFullScreenContent(
              @NonNull FullScreenContentError fullScreenContentError) {
            // Interstitial ad failed to show.
            InterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(
                fullScreenContentError);
            initerstitialAd = null;
          }
    
          @Override
          public void onAdImpression() {
            // Interstitial ad did record an impression.
            InterstitialAdEventCallback.super.onAdImpression();
          }
    
          @Override
          public void onAdClicked() {
            // Interstitial ad did record a click.
            InterstitialAdEventCallback.super.onAdClicked();
          }
        }
    );
    

    광고 표시

    전면 광고를 표시하려면 show() 메서드를 사용하세요.

    Kotlin

    // Show the ad.
    interstitialAd?.show(this@InterstitialActivity)
    

    자바

    // Show the ad.
    interstitialAd.show(InterstitialActivity.this);
    

    권장사항

    전면 광고가 운영 중인 앱의 적합한 유형인지 고려하세요.
    전면 광고는 자연스러운 전환 지점이 있는 앱에서 최대의 효과를 발휘합니다. 이미지 공유 또는 게임 레벨 완료와 같은 앱 내 작업이 완료되면 이러한 지점이 생성됩니다. 앱의 이용 과정에서 어떤 지점에 전면 광고를 표시해야 가장 자연스러우며 사용자가 어떻게 반응할지 생각해 보세요.
    전면 광고를 게재할 때는 앱 사용을 잠시 중단해야 합니다.
    전면 광고에는 텍스트, 이미지, 동영상 등 다양한 유형이 있습니다. 앱에서 전면 광고를 표시할 때는 광고에서 리소스를 활용할 수 있도록 일부 리소스의 이용을 중지해야 합니다. 예를 들어 전면 광고를 표시하도록 호출할 때 앱에서 재생 중인 오디오 출력을 일시중지해야 합니다.
    충분한 로드 시간을 확보하세요.
    전면 광고를 적절한 시점에 표시하는 것뿐 아니라 광고 로드가 너무 지연되지 않게 하는 것도 중요합니다. `show()`를 호출하기 전에 `load()`를 호출하여 광고를 미리 로드하면 광고를 표시할 때 앱에 완전히 로드된 전면 광고가 준비되어 있습니다.
    load()show()
    광고를 과도하게 게재하면 안 됩니다.
    앱에 전면 광고를 더 많이 게재할수록 수익이 늘어난다고 생각할 수 있겠지만, 이렇게 하면 사용자 환경에 부정적인 영향을 미치고 클릭률이 떨어지기도 합니다. 사용자가 앱을 더 이상 즐길 수 없을 정도로 자주 중단되지 않도록 하세요.

    예시 앱 을 다운로드하여 GMA Next-Gen SDK의 사용을 보여 주는 앱을 실행합니다.