Как правильно показывать тестовую рекламу в debug_mode?

У меня в приложении есть рекламный баннер, но согласно правилам адмоба я не могу воспроизводить реальную рекламу на тестовых устройствах. В связи с чем возникает вопрос, как правильно сделать так чтобы во время тестов всегда была тестовая реклама а при релизе настоящая?

Я так понимаю можно сделать так:

val mAdView = AdView(context)
mAdView.adSize = AdSize.SMART_BANNER
if (BuildConfig.DEBUG) {
    mAdView.adUnitId = adsIdTest
} else {
    mAdView.adUnitId = adsIdRelease
}
adMobView.addView(mAdView)
val adRequest = AdRequest.Builder().build()
mAdView.loadAd(adRequest)

Но я не уверен на сколько это правильно, и как хорошо это отработает?


Ответы (2 шт):

Автор решения: Sergei Buvaka

Ну по другому вы и не сделаете. Только вот if вот этот конечно нужно вынести не там где вы создаете вашу View, а где-то на уровне Application.

Или вообще обернуть рекламу в какой-то класс который будет закрыт интерфейсом. У этого интерфейса будет 2 реализации: одна прод с реальной рекламой, вторая дебажная. И вот на уровне DI определить: что если у вас запущена прод версия то подсовывать прод реализацию иначе дебаг. А всю работу производить в коде через интерфейс

→ Ссылка
Автор решения: KeyGenQt

На kotlin лучше так

val mAdView = AdView(context).apply {
    size = AdSize.SMART_BANNER
    mAdView.adUnitId = when(BuildConfig.DEBUG) {
        true -> adsIdTest
        else -> adsIdRelease
    }
}
→ Ссылка