Интерстициальная реклама kotlin - PullRequest
0 голосов
/ 05 апреля 2019

Я включил рекламные вставки (admob) в свое приложение, но они показываются после любого клика и сразу после того, как я открываю свое приложение, ничего не делая.

Как показывать промежуточную рекламу после x кликов иКак я могу скрыть рекламу, которая появляется, когда я открываю приложение?

образец приложения: https://drive.google.com/file/d/1x5vf6VY3mHu0S-aNnKeLQaq3FF-_9Xjx/view?usp=sharing

часть mainactivity.kt:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    hasCollections = boolean(R.bool.show_collections_tab)
    val correct = if (hasCollections) 1 else 0
    lastSection = savedInstanceState?.getInt("current", correct) ?: correct

    setContentView(R.layout.activity_main)

    // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
    MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
    mInterstitialAd = InterstitialAd(this)
    mInterstitialAd.adUnitId = "ca-app-pub-3940256099942544/1033173712"
    mInterstitialAd.loadAd(AdRequest.Builder().build())

    mInterstitialAd.adListener = object: AdListener() {
        override fun onAdLoaded() {
            if (mInterstitialAd.isLoaded) {
                mInterstitialAd.show()
            } else {
                Log.d("TAG", "The interstitial wasn't loaded yet.")
            }
        }
    }

    setSupportActionBar(toolbar)

    initPagerAdapter()

    tabs?.setTabTextColors(
        getDisabledTextColorFor(primaryColor),
        if (boolean(R.bool.accent_in_tabs)) accentColor
        else getPrimaryTextColorFor(primaryColor))
    tabs?.setSelectedTabIndicatorColor(
        if (boolean(R.bool.accent_in_tabs)) accentColor
        else getPrimaryTextColorFor(primaryColor))
    if (boolean(R.bool.show_icons_in_tabs)) {
        tabs?.setTabsIconsColors(
            getInactiveIconsColorFor(primaryColor),
            if (boolean(R.bool.accent_in_tabs)) accentColor
            else getActiveIconsColorFor(primaryColor))
    }

    buildTabs()

    tabs?.addOnTabSelectedListener(
        object : TabLayout.ViewPagerOnTabSelectedListener(pager) {
            override fun onTabSelected(tab: TabLayout.Tab?) {
                tab?.let { postDelayed(50) { navigateToSection(it.position) } }
            }

            override fun onTabReselected(tab: TabLayout.Tab?) = scrollToTop()
            override fun onTabUnselected(tab: TabLayout.Tab?) {}
        })
    pager?.addOnPageChangeListener(
        TabLayout.TabLayoutOnPageChangeListener(tabs))

    pager?.offscreenPageLimit = tabs?.tabCount ?: 2

    navigateToSection(lastSection, true)

    favsViewModel.observe(this) { notifyFavsToFrags(it) }
    doAsync { favsViewModel.loadData(favsDB.favoritesDao(), true) }

}

1 Ответ

0 голосов
/ 05 апреля 2019

Вы начинаете загружать рекламу в свой метод onCreate(), который вызывается сразу после запуска вашего MainActivity. Поэтому ваш метод обратного вызова onAdLoaded() будет отображать объявление, как только оно будет загружено.

Если вы хотите отобразить объявление позже, у вас есть два варианта:

  1. дождитесь загрузки объявления, позвонив loadAd() позже
  2. загрузите свое объявление в начале своей деятельности, но позже вызовите метод mInterstitialAd.show(). Таким образом, ваше объявление будет загружено, но не будет отображаться до тех пор, пока вы его не захотите.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...