기본 요건
- Google 모바일 광고 SDK 19.7.0 이상
- 시작 가이드를 완료합니다.
항상 테스트 광고로 테스트
앱을 제작하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 Android 보상형 광고 테스트를 위한 전용 광고 단위 ID를 사용하는 것입니다.
ca-app-pub-3940256099942544/5224354917
이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트 및 디버깅 중에 앱에서 자유롭게 사용할 수 있습니다. 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.
모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 테스트 광고를 참고하세요.
보상형 광고 객체 로드
보상형 광고는 RewardedAd
클래스의 정적 load()
메서드를 호출하고 RewardedAdLoadCallback
을 전달하여 로드됩니다. 이 작업은 일반적으로 Activity
의 onCreate()
메서드에서 실행됩니다.
다른 형식 로드 콜백과 마찬가지로 RewardedAdLoadCallback
은 LoadAdError
를 사용하여 보다 정확한 세부 오류 정보를 제공합니다.
자바
Kotlin
AD_UNIT_ID를 광고 단위 ID로 바꿉니다.
FullScreenContentCallback 설정
FullScreenContentCallback
은 RewardedAd
표시와 관련된 이벤트를 처리합니다. RewardedAd
를 표시하기 전에 다음과 같이 콜백을 설정해야 합니다.
자바
rewardedAd.setFullScreenContentCallback(
new FullScreenContentCallback() {
@Override
public void onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "Ad was dismissed.");
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "Ad failed to show.");
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null;
}
@Override
public void onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "Ad showed fullscreen content.");
}
@Override
public void onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.");
}
@Override
public void onAdClicked() {
// Called when an ad is clicked.
Log.d(TAG, "Ad was clicked.");
}
});
Kotlin
rewardedAd?.fullScreenContentCallback =
object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "Ad was dismissed.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "Ad failed to show.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null
}
override fun onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "Ad showed fullscreen content.")
}
override fun onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.")
}
override fun onAdClicked() {
// Called when an ad is clicked.
Log.d(TAG, "Ad was clicked.")
}
}
광고 표시
보상형 광고를 게재할 때 OnUserEarnedRewardListener
객체를 사용하여 보상 이벤트를 처리합니다.
자바
rewardedAd.show(
MainActivity.this,
new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
Log.d(TAG, "User earned the reward.");
// Handle the reward.
}
});
Kotlin
rewardedAd?.show(
this,
OnUserEarnedRewardListener { rewardItem ->
Log.d(TAG, "User earned the reward.")
// Handle the reward.
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
},
)
[선택사항] 서버 측 확인 (SSV) 콜백 검사
서버 측 확인 콜백에서 추가 데이터가 필요한 앱은 보상형 광고의 맞춤 데이터 기능을 사용해야 합니다. 보상형 광고 객체에 설정된 모든 문자열 값은 SSV 콜백의 custom_data
쿼리 매개변수에 전달됩니다. 맞춤 데이터 값이 설정되지 않은 경우 custom_data
쿼리 매개변수 값은 SSV 콜백에 표시되지 않습니다.
다음 코드 샘플은 광고를 요청하기 전에 보상형 광고 객체에 맞춤 데이터를 설정하는 방법을 보여줍니다.
자바
Kotlin
SAMPLE_CUSTOM_DATA_STRING을 맞춤 데이터로 바꿉니다.
광고를 게재하기 전에 맞춤 보상 문자열을 설정해야 합니다.
FAQ
- 초기화 호출에 제한 시간이 있나요?
- 10초가 지나면 미디에이션 네트워크에서 아직 초기화를 완료하지 않은 경우에도 Google 모바일 광고 SDK에서
OnInitializationCompleteListener
를 호출합니다. - 초기화 콜백을 받았을 때 일부 미디에이션 네트워크가 준비되지 않은 경우 어떻게 해야 하나요?
OnInitializationCompleteListener
의 콜백 내에서 광고를 로드하는 것이 좋습니다. 미디에이션 네트워크가 준비되지 않은 경우에도 Google 모바일 광고 SDK에서 해당 네트워크에 광고를 요청합니다. 따라서 미디에이션 네트워크에서 시간이 초과된 후에 초기화를 완료해도 해당 세션에서 향후 광고 요청을 처리할 수 있습니다.MobileAds.getInitializationStatus()
를 호출하여 앱 세션 전체에서 모든 어댑터의 초기화 상태를 알아볼 수 있습니다.- 특정 미디에이션 네트워크가 준비되지 않은 이유를 확인하려면 어떻게 해야 하나요?
AdapterStatus.getDescription()
을 통해 어댑터에서 광고 요청을 처리할 준비가 되지 않은 이유를 알아볼 수 있습니다.onUserEarnedReward()
콜백이 항상onAdDismissedFullScreenContent()
콜백보다 먼저 호출되나요?Google 광고의 경우 모든
onUserEarnedReward()
호출은onAdDismissedFullScreenContent()
전에 발생합니다. 미디에이션을 통해 게재되는 광고의 경우 서드 파티 광고 네트워크 SDK의 구현에 따라 콜백 순서가 결정됩니다. 단일 닫기 콜백에 리워드 정보를 제공하는 광고 네트워크 SDK의 경우 미디에이션 어댑터가onAdDismissedFullScreenContent()
전에onUserEarnedReward()
를 호출합니다.
GitHub의 예
다음 단계
다음 주제를 살펴봅니다.