این صفحه تفاوتهای بارگیری و نمایش یک آگهی تبلیغاتی بین SDK فعلی و Google Mobile Ads (بتا) را پوشش میدهد.
Google Mobile Ads SDK (بتا) جدایی واضحی را بین شیء تبلیغات بنری ( BannerAd
) و View
آن معرفی می کند. تاثیر عمده این تغییر این است که تا زمانی که آگهی بارگیری شود، نمای بنر دیگر در دسترس نیست.
با توجه به یک سلسلهمراتب مشاهده با یک محفظه نمای بنر تعریف شده:
<FrameLayout
android:id="@+id/banner_view_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentBottom="true" />
فعلی | برای بارگذاری یک بنر تبلیغاتی:
کاتلینimport 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); } } |
Google Mobile Ads SDK (بتا) | برای بارگذاری یک بنر تبلیغاتی:
کاتلینimport com.google.android.libraries.ads.mobile.sdk.banner.AdSize 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.BannerAdRefreshCallback 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 var bannerAd: BannerAd? = null private lateinit var binding: ActivityMainBinding private lateinit var adSize: AdSize private lateinit var bannerViewContainer: FrameLayout override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // Give the banner container a placeholder height to avoid a sudden layout // shifts when the ad loads. adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 320) bannerViewContainer = binding.bannerViewContainer val bannerLayoutParams = bannerViewContainer.layoutParams bannerLayoutParams.height = adSize.getHeightInPixels(requireContext()) bannerViewContainer.layoutParams = bannerLayoutParams // Step 1 - Create a BannerAdRequest object with ad unit ID and size. val adRequest = BannerAdRequest.Builder("AD_UNIT_ID", adSize).build() // Step 2 - Load the ad. BannerAd.load( adRequest, object : AdLoadCallback<BannerAd> { override fun onAdLoaded(ad: BannerAd) { // Assign the loaded ad to the BannerAd object. bannerAd = ad // Step 3 - Call BannerAd.getView() to get the View and add it // to view hierarchy on the UI thread. activity?.runOnUiThread { binding.bannerViewContainer.addView(ad.getView(requireActivity())) } } override fun onAdFailedToLoad(loadAdError: LoadAdError) { bannerAd = null } }, ) } } جاواimport com.google.android.libraries.ads.mobile.sdk.banner.AdSize; import com.google.android.libraries.ads.mobile.sdk.banner.BannerAd; import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdRefreshCallback; 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 BannerAd bannerAd; private ActivityMainBinding binding; private AdSize adSize; private FrameLayout bannerViewContainer; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); // Give the banner container a placeholder height to avoid a sudden layout // shifts when the ad loads. adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 320); bannerViewContainer = binding.bannerViewContainer; LayoutParams bannerLayoutParams = bannerViewContainer.getLayoutParams(); bannerLayoutParams.height = adSize.getHeightInPixels(this); bannerViewContainer.setLayoutParams(bannerLayoutParams); // Step 1 - Create a BannerAdRequest object with ad unit ID and size. BannerAdRequest adRequest = new BannerAdRequest.Builder("AD_UNIT_ID", adSize).build(); // Step 2 - Load the ad. BannerAd.load( adRequest, new AdLoadCallback<BannerAd>() { @Override public void onAdLoaded(@NonNull BannerAd ad) { // Assign the loaded ad to the BannerAd object. bannerAd = ad; // Step 3 - Call BannerAd.getView() to get the View and add it // to view hierarchy on the UI thread. runOnUiThread( () -> binding.bannerViewContainer.addView(ad.getView(MainActivity.this))); } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { bannerAd = null; } }); } } |
بازخوانیهای بازخوانی بنر را مرور کنید
Google Mobile Ads SDK (بتا) شامل یک شنونده برای بازخوانی خودکار تبلیغات بنر است:
فعلی | Mobile Ads SDK تماسهای کاتلینadView.adListener = object : AdListener() { override fun onAdLoaded() { // Called when an ad has loaded. } override fun onAdFailedToLoad(loadAdError : 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 loadAdError) { // Called when ad fails to load. } }); |
Google Mobile Ads SDK (بتا) | بازخوانی مجدد را در آگهی بنری بارگذاری شده تنظیم کنید تا به رویدادهای تازه سازی آگهی گوش دهید. کاتلینBannerAd.load( 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(loadAdError: LoadAdError) { // Called when the ad fails to refresh. } } bannerAd = ad } override fun onAdFailedToLoad(loadAdError: LoadAdError) { // Called when ad fails to load. } } ) جاواBannerAd.load( 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. } }); bannerAd = ad; } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Called when ad fails to load. } }); |