이 페이지에서는 현재 SDK와 GMA Next-Gen SDK 간의 배너 광고 로드 및 표시 차이점을 설명합니다.
AdView이 정의된 뷰 계층 구조가 있다고 가정해 보겠습니다.
<com.google.android.libraries.ads.mobile.sdk.banner.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
| 현재 |
배너 광고를 로드하려면 다음 단계를 따르세요.
Kotlinimport com.google.android.gms.ads.AdView class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var adView: AdView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // Step 1 - Create an AdView object with ad unit ID and size. adView = AdView(this) adView.adUnitId = "AD_UNIT_ID" adView.setAdSize( AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 320) ) // Step 2 - Add the AdView to view hierarchy. binding.bannerViewContainer.addView(adView) // Step 3 - Load the ad. val adRequest = AdRequest.Builder().build() adView.loadAd(adRequest) } } 자바import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdSize; import com.google.android.gms.ads.AdView; public class MainActivity extends AppCompatActivity { private ActivityMainBinding binding; private AdView adView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); // Step 1 - Create an AdView object with ad unit ID and size. adView = new AdView(this); adView.setAdUnitId("AD_UNIT_ID"); adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 320)); // Step 2 - Add the AdView to view hierarchy. binding.bannerViewContainer.addView(adView); // Step 3 - Load the ad. AdRequest adRequest = new AdRequest.Builder().build(); adView.loadAd(adRequest); } } |
| GMA Next-Gen SDK |
배너 광고를 로드하려면 다음 단계를 따르세요.
Kotlinimport android.util.Log import com.google.android.libraries.ads.mobile.sdk.banner.AdSize import com.google.android.libraries.ads.mobile.sdk.banner.AdView import com.google.android.libraries.ads.mobile.sdk.banner.BannerAd import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdEventCallback import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdRequest import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError class MainActivity : AppCompatActivity() { private val TAG = "MainActivity" private lateinit var adView: AdView private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // Step 1 - Create an AdView object. adView = binding.adView // Step 2 - Load the ad. val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360) val adRequest = BannerAdRequest.Builder("AD_UNIT_ID", adSize).build() adView.loadAd( adRequest, object : AdLoadCallback<BannerAd> { override fun onAdLoaded(ad: BannerAd) { ad.adEventCallback = object : BannerAdEventCallback { override fun onAdImpression() { Log.d(TAG, "Banner ad recorded an impression.") } override fun onAdClicked() { Log.d(TAG, "Banner ad clicked.") } } } override fun onAdFailedToLoad(adError: LoadAdError) { Log.e(TAG, "Banner ad failed to load: $adError") } }, ) } } 자바import android.util.Log; import com.google.android.libraries.ads.mobile.sdk.banner.AdSize; import com.google.android.libraries.ads.mobile.sdk.banner.AdView; import com.google.android.libraries.ads.mobile.sdk.banner.BannerAd; import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdEventCallback; import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdRequest; import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private AdView adView; private ActivityMainBinding binding; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); // Step 1 - Create an AdView object. adView = binding.adView; // Step 2 - Load the ad. AdSize adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360); BannerAdRequest adRequest = new BannerAdRequest.Builder("AD_UNIT_ID", adSize).build(); adView.loadAd( adRequest, new AdLoadCallback<BannerAd>() { @Override public void onAdLoaded(@NonNull BannerAd ad) { ad.setAdEventCallback( new BannerAdEventCallback() { @Override public void onAdImpression() { Log.d(TAG, "Banner ad recorded an impression."); } @Override public void onAdClicked() { Log.d(TAG, "Banner ad clicked."); } }); } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { Log.e(TAG, "Banner ad failed to load: " + adError); } }); } } |
배너 새로고침 콜백 검토
GMA Next-Gen SDK에는 자동 배너 광고 새로고침을 위한 리스너가 포함되어 있습니다.
| 현재 |
모바일 광고 SDK는 KotlinadView.adListener = object : AdListener() { override fun onAdLoaded() { // Called when an ad has loaded. } override fun onAdFailedToLoad(adError : LoadAdError) { // Called when ad fails to load. } } 자바adView.setAdListener( new AdListener() { @Override public void onAdLoaded() { // Called when an ad has loaded. } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Called when ad fails to load. } }); |
| GMA Next-Gen SDK |
로드된 배너 광고에서 새로고침 콜백을 설정하여 광고 새로고침 이벤트를 수신합니다. KotlinadView.loadAd( BannerAdRequest.Builder("AD_UNIT_ID", adSize).build(), object : AdLoadCallback<BannerAd> { override fun onAdLoaded(ad: BannerAd) { // Called when an ad has loaded. ad.adEventCallback = object : BannerAdEventCallback {} ad.bannerAdRefreshCallback = object : BannerAdRefreshCallback { // Set the ad refresh callbacks. override fun onAdRefreshed() { // Called when the ad refreshes. } override fun onAdFailedToRefresh(adError: LoadAdError) { // Called when the ad fails to refresh. } } } override fun onAdFailedToLoad(adError: LoadAdError) { // Called when ad fails to load. } } ) JavaadView.loadAd( new BannerAdRequest.Builder("AD_UNIT_ID", adSize).build(), new AdLoadCallback<BannerAd>() { @Override public void onAdLoaded(@NonNull BannerAd ad) { // Called when an ad has loaded. ad.setAdEventCallback(new BannerAdEventCallback() {}); ad.setBannerAdRefreshCallback( // Set the ad refresh callbacks. new BannerAdRefreshCallback() { @Override public void onAdRefreshed() { // Called when the ad refreshes. } @Override public void onAdFailedToRefresh(@NonNull LoadAdError adError) { // Called when the ad fails to refresh. } }); } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Called when ad fails to load. } }); |