전면 광고는 호스트 앱의 인터페이스를 가리는 전체 화면 광고입니다. 일반적으로 활동 사이 또는 게임에서 다음 레벨로 넘어갈 때처럼 앱 이용이 잠시 중단될 때 자연스럽게 광고가 게재됩니다. 앱에서 전면 광고가 표시될 때 사용자는 광고를 탭하여 도착 페이지로 이동하거나 광고를 닫고 앱으로 돌아갈 수 있습니다.
이 가이드에서는 전면 광고를 Android 앱에 통합하는 방법을 설명합니다.
기본 요건
- Google 모바일 광고 SDK 19.7.0 이상
- 시작 가이드를 모두 읽어보세요.
항상 테스트 광고로 테스트
앱을 제작하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 Android 전면 광고 테스트 전용 광고 단위 ID를 사용하는 것입니다.
/6499/example/interstitial
이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트 및 디버깅 중에 앱에서 자유롭게 사용할 수 있습니다. 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.
모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 테스트 광고를 참고하세요.
광고 로드
전면 광고를 로드하려면 AdManagerInterstitialAd
정적 load()
메서드를 호출하고
AdManagerInterstitialAdLoadCallback
을 전달하여 로드된 광고 또는 가능한 오류를 수신합니다. 다른 형식 로드 콜백과 마찬가지로 AdManagerInterstitialAdLoadCallback
은 LoadAdError
를 사용하여
충실도가 더 높은 세부 오류 정보를 제공합니다.
자바
import com.google.android.gms.ads.admanager.AdManagerInterstitialAd; import com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback; public class MainActivity extends Activity { private AdManagerInterstitialAd mAdManagerInterstitialAd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build(); AdManagerInterstitialAd.load(this,"/6499/example/interstitial", adRequest, new AdManagerInterstitialAdLoadCallback() { @Override public void onAdLoaded(@NonNull AdManagerInterstitialAd interstitialAd) { // The mAdManagerInterstitialAd reference will be null until // an ad is loaded. mAdManagerInterstitialAd = interstitialAd; Log.i(TAG, "onAdLoaded"); } @Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { // Handle the error Log.d(TAG, loadAdError.toString()); mAdManagerInterstitialAd = null; } }); } }
Kotlin
import com.google.android.gms.ads.admanager.AdManagerInterstitialAd; import com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback; class MainActivity : AppCompatActivity() { private var mAdManagerInterstitialAd: AdManagerInterstitialAd? = null private final var TAG = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var adRequest = AdManagerAdRequest.Builder().build() AdManagerInterstitialAd.load(this,"/6499/example/interstitial", adRequest, object : AdManagerInterstitialAdLoadCallback() { override fun onAdFailedToLoad(adError: LoadAdError) { Log.d(TAG, adError?.toString()) mAdManagerInterstitialAd = null } override fun onAdLoaded(interstitialAd: AdManagerInterstitialAd) { Log.d(TAG, 'Ad was loaded.') mAdManagerInterstitialAd = interstitialAd } }) } }
FullScreenContentCallback 설정
FullScreenContentCallback
는 InterstitialAd
표시와 관련된 이벤트를 처리합니다. InterstitialAd
를 표시하기 전에 콜백을
설정해야 합니다.
자바
mAdManagerInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){ @Override public void onAdClicked() { // Called when a click is recorded for an ad. Log.d(TAG, "Ad was clicked."); } @Override public void onAdDismissedFullScreenContent() { // Called when ad is dismissed. // Set the ad reference to null so you don't show the ad a second time. Log.d(TAG, "Ad dismissed fullscreen content."); mAdManagerInterstitialAd = null; } @Override public void onAdFailedToShowFullScreenContent(AdError adError) { // Called when ad fails to show. Log.e(TAG, "Ad failed to show fullscreen content."); mAdManagerInterstitialAd = null; } @Override public void onAdImpression() { // Called when an impression is recorded for an ad. Log.d(TAG, "Ad recorded an impression."); } @Override public void onAdShowedFullScreenContent() { // Called when ad is shown. Log.d(TAG, "Ad showed fullscreen content."); } });
Kotlin
mAdManagerInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() { override fun onAdClicked() { // Called when a click is recorded for an ad. Log.d(TAG, "Ad was clicked.") } override fun onAdDismissedFullScreenContent() { // Called when ad is dismissed. Log.d(TAG, "Ad dismissed fullscreen content.") mAdManagerInterstitialAd = null } override fun onAdFailedToShowFullScreenContent(adError: AdError?) { // Called when ad fails to show. Log.e(TAG, "Ad failed to show fullscreen content.") mAdManagerInterstitialAd = null } override fun onAdImpression() { // Called when an impression is recorded for an ad. Log.d(TAG, "Ad recorded an impression.") } override fun onAdShowedFullScreenContent() { // Called when ad is shown. Log.d(TAG, "Ad showed fullscreen content.") } }
광고 게재
전면 광고는 앱 이용이 잠시 중단될 때 자연스럽게 표시되어야 합니다.
예를 들어 게임에서 다음 레벨로 넘어갈 때 또는 작업을 완료한 직후에 광고가 게재됩니다.
전면 광고를 표시하려면
show()
메서드를 사용하세요.
자바
if (mAdManagerInterstitialAd != null) { mAdManagerInterstitialAd.show(MyActivity.this); } else { Log.d("TAG", "The interstitial ad wasn't ready yet."); }
Kotlin
if (mAdManagerInterstitialAd != null) { mAdManagerInterstitialAd?.show(this) } else { Log.d("TAG", "The interstitial ad wasn't ready yet.") }
권장사항
- 전면 광고가 앱의 광고로 적절한 유형인지 생각해 봐야 합니다.
- 전면 광고는 자연스러운 전환 지점이 있는 앱에서 최대의 효과를 발휘합니다. 이미지 공유 또는 게임 레벨 달성과 같이 앱 내에서 작업을 종료하면 이러한 포인트가 생성됩니다. 이러한 경우는 사용자도 쉬어가는 지점으로 인식하므로 사용자 경험에 지장을 주지 않고 전면 광고를 부담 없이 표시할 수 있습니다. 앱의 이용 과정에서 어떤 지점에 전면 광고를 표시해야 가장 자연스러우며 사용자가 어떻게 반응할지 생각해 보세요.
- 전면 광고를 게재할 때는 작업을 일시중지해야 합니다.
- 전면 광고에는 텍스트, 이미지, 동영상 등 다양한 유형이 있습니다. 앱에서 전면 광고를 표시할 때는 광고에서 리소스를 활용할 수 있도록 일부 리소스의 이용을 중지해야 합니다. 예를 들어 전면 광고를 표시하도록 호출할 때 앱에서 재생되는 오디오 출력을 일시중지해야 합니다.
- 충분한 로드 시간을 확보하세요.
- 전면 광고를 적절한 시점에 표시하는 것뿐 아니라
광고 로드가 너무 지연되지 않게 하는 것도
중요합니다.
show()
를 호출하기 전에load()
를 호출하여 광고를 미리 로드하면 앱에서 전면 광고가 완전히 로드된 상태가 되어 광고를 게재할 수 있는 시점에 전면 광고를 바로 표시할 수 있습니다. - 광고를 과도하게 게재하면 안 됩니다.
- 앱에 전면 광고를 더 많이 게재할수록 수익이 늘어난다고 생각할 수 있겠지만, 이렇게 하면 사용자 환경이 악화되고 클릭률이 떨어지기도 합니다. 사용자의 원활한 앱 사용에 지장을 주지 않는 범위에서 게재 빈도를 조절하시기 바랍니다.
GitHub의 예
다음 단계
- 광고 타겟팅에 대해 자세히 알아보세요.
- 사용자 개인 정보 보호에 관해 자세히 알아보세요.