Объявление AdMob работает для тестового объявления, но не для пользовательского объявления после нескольких недель ожидания активации - PullRequest
0 голосов
/ 17 января 2020

Почему AdMob test реклама работает в моем приложении Android, но НИКОГДА , когда я пытаюсь использовать свое собственное? Кто-нибудь знает, что здесь может пойти не так, потому что я очень озадачен.

Пример рекламного блока

enter image description here

Мой рекламный блок

enter image description here

Вещи, которые я пробовал

  1. Убедитесь, что мой платежный аккаунт подтвержден
  2. Файл Gradle (модульный уровень), я использовал эту зависимость

    внедрение 'com.google. android .gms: play-services-ads : 18.3.0 '

  3. Использовать правильный идентификатор рекламного блока и идентификатор приложения

  4. Использовать правильную информацию в моем файле манифеста
  5. Инициализировано MobileAds

Манифест

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.apptacularapps.myad">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.gms.ads.AD_MANAGER_APP"
            android:value="true"/>
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX"/>

        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent" />
    </application>

</manifest>

XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/ad_view_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:text="Google AdMob"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <com.google.android.gms.ads.AdView
            xmlns:ads="http://schemas.android.com/apk/res-auto"
            android:id="@+id/adView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            ads:adSize="BANNER"
            ads:adUnitId="@string/banner_ad_unit_id" />
    </RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Kotlin

class MainActivity : AppCompatActivity() {
    private lateinit var adView: AdView

    private val adSize: AdSize
        get() {
            val display = windowManager.defaultDisplay
            val outMetrics = DisplayMetrics()
            display.getMetrics(outMetrics)

            val density = outMetrics.density

            var adWidthPixels = ad_view_container.width.toFloat()
            if (adWidthPixels == 0f) {
                adWidthPixels = outMetrics.widthPixels.toFloat()
            }

            val adWidth = (adWidthPixels / density).toInt()
            return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
        }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) { }

        adView = AdView(this)
        ad_view_container.addView(adView)
        loadBanner()
    }

    private fun loadBanner() {
        adView.adUnitId = AD_UNIT_ID

        adView.adSize = adSize

        val adRequest = AdRequest
            .Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build()

        adView.loadAd(adRequest)
    }

    companion object {
        private val AD_UNIT_ID = "ca-app-pub-3940256099942544/6300978111"
    }
}

Ответы [ 3 ]

0 голосов
/ 24 февраля 2020

Обычно AdMob анализирует трафик вашего приложения c и показывает объявление

. Вы можете увидеть его здесь: ССЫЛКА

0 голосов
/ 18 апреля 2020

Первый взгляд: в вашем манифесте должно отображаться ваш идентификатор приложения , а не «ca-app-pub-XXXXXXXXXXXXXXXX ~ XXXXXXXXXX» в теге метаданных.

Вы можете узнать свой Идентификатор приложения на веб-странице Abmob, Вход -> Приложения -> Показать все приложения

Кроме того, реклама не обязательно отображается. Проверьте это: { ссылка }

0 голосов
/ 24 февраля 2020

Вы должны добавить слушателей в вашу реализацию, чтобы получить вывод, почему загрузка баннера не удалась.

mAdView.adListener = object: AdListener() {
override fun onAdLoaded() {
    // Code to be executed when an ad finishes loading.
}

override fun onAdFailedToLoad(errorCode : Int) {
    Log.d("AdView", "onAdFailedToLoad. But why? "+errorCode)
    // Code to be executed when an ad request fails.
}

override fun onAdOpened() {
    // Code to be executed when an ad opens an overlay that
    // covers the screen.
}

override fun onAdClicked() {
    // Code to be executed when the user clicks on an ad.
}

override fun onAdLeftApplication() {
    // Code to be executed when the user has left the app.
}

override fun onAdClosed() {
    // Code to be executed when the user is about to return
    // to the app after tapping on an ad.
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...