기본 요건
- Google 모바일 광고 SDK 19.7.0 이상
- 시작 가이드에 따라 Google 모바일 광고 SDK를 가져오고 Android 매니페스트를 업데이트합니다.
항상 테스트 광고로 테스트
앱을 제작하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 Android 보상형 광고 테스트를 위한 전용 광고 단위 ID를 사용하는 것입니다.
ca-app-pub-3940256099942544/5224354917
이 ID는 모든 요청에 대해 테스트 광고를 반환하도록 특별히 구성되었으며, 코딩, 테스트, 디버깅 중에 앱에서 자유롭게 사용할 수 있습니다. 다만 앱을 게시하기 전에 이 ID를 자체 광고 단위 ID로 바꿔야 합니다.
모바일 광고 SDK의 테스트 광고가 작동하는 방식을 자세히 알아보려면 테스트 광고를 참고하세요.
보상형 광고 객체 로드
보상형 광고는 RewardedAd
클래스의 정적 load()
메서드를 호출하고 RewardedAdLoadCallback
을 전달하여 로드됩니다. 이 작업은 일반적으로 Activity
의 onCreate()
메서드에서 실행됩니다.
다른 형식 로드 콜백과 마찬가지로 RewardedAdLoadCallback
은 LoadAdError
를 사용하여 충실도가 더 높은 세부 오류 정보를 제공합니다.
자바
import com.google.android.gms.ads.rewarded.RewardedAd; public class MainActivity extends Activity { private RewardedAd mRewardedAd; private final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { AdRequest adRequest = new AdRequest.Builder().build(); RewardedAd.load(this, "ca-app-pub-3940256099942544/5224354917", adRequest, new RewardedAdLoadCallback() { @Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { // Handle the error. Log.d(TAG, loadAdError.getMessage()); mRewardedAd = null; } @Override public void onAdLoaded(@NonNull RewardedAd rewardedAd) { mRewardedAd = rewardedAd; Log.d(TAG, "Ad was loaded."); } }); } }
Kotlin
class MainActivity : AppCompatActivity() { private var mRewardedAd: RewardedAd? = null private final var TAG = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var adRequest = AdRequest.Builder().build() RewardedAd.load(this,"ca-app-pub-3940256099942544/5224354917", adRequest, object : RewardedAdLoadCallback() { override fun onAdFailedToLoad(adError: LoadAdError) { Log.d(TAG, adError?.message) mRewardedAd = null } override fun onAdLoaded(rewardedAd: RewardedAd) { Log.d(TAG, "Ad was loaded.") mRewardedAd = rewardedAd } }) } }
FullscreenContentCallback 설정
FullScreenContentCallback
은 RewardedAd
표시와 관련된 이벤트를 처리합니다. RewardedAd
를 표시하기 전에 다음과 같이 콜백을 설정해야 합니다.
자바
mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() { @Override public void onAdShowedFullScreenContent() { // Called when ad is shown. Log.d(TAG, "Ad was shown."); } @Override public void onAdFailedToShowFullScreenContent(AdError adError) { // Called when ad fails to show. Log.d(TAG, "Ad failed to show."); } @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 was dismissed."); mRewardedAd = null; } });
Kotlin
mRewardedAd?.fullScreenContentCallback = object: FullScreenContentCallback() { override fun onAdShowedFullScreenContent() { // Called when ad is shown. Log.d(TAG, "Ad was shown.") } override fun onAdFailedToShowFullScreenContent(adError: AdError?) { // Called when ad fails to show. Log.d(TAG, "Ad failed to show.") } override fun 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 was dismissed.") mRewardedAd = null } }
광고 게재
보상형 광고를 게재할 때 OnUserEarnedRewardListener
객체를 사용하여 보상 이벤트를 처리합니다.
자바
if (mRewardedAd != null) { Activity activityContext = MainActivity.this; mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // Handle the reward. Log.d(TAG, "The user earned the reward."); int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); } else { Log.d(TAG, "The rewarded ad wasn't ready yet."); }
Kotlin
if (mRewardedAd != null) { mRewardedAd?.show(this, OnUserEarnedRewardListener() { fun onUserEarnedReward(rewardItem: RewardItem) { var rewardAmount = rewardItem.amount var rewardType = rewardItem.type Log.d(TAG, "User earned the reward.") } }) } else { Log.d(TAG, "The rewarded ad wasn't ready yet.") }
FAQ
- 초기화 호출에 제한 시간이 있나요?
- 10초가 지나면 미디에이션 네트워크에서
아직 초기화를 완료하지 않은 경우에도 Google 모바일 광고 SDK에서
OnInitializationCompleteListener
를 호출합니다. - 초기화 콜백을 받았을 때 일부 미디에이션 네트워크가 준비되지 않은 경우 어떻게 해야 하나요?
OnInitializationCompleteListener
의 콜백 내에서 광고를 로드하는 것이 좋습니다. 미디에이션 네트워크가 준비되지 않은 경우에도 Google 모바일 광고 SDK에서 해당 네트워크에 광고를 요청합니다. 따라서 미디에이션 네트워크에서 시간이 초과된 후에 초기화를 완료하면 해당 세션에서 향후 광고 요청을 처리할 수 있습니다.MobileAds.getInitializationStatus()
를 호출하여 앱 세션의 어느 시점에서든 모든 어댑터의 초기화 상태를 알아볼 수 있습니다.- 특정 미디에이션 네트워크가 준비되지 않은 이유를 확인하려면 어떻게 해야 하나요?
AdapterStatus.getDescription()
을 통해 어댑터에서 광고 요청을 처리할 준비가 되지 않은 이유를 알아볼 수 있습니다.