【问题标题】:How to confirm if my AdMob is using test ads (not real ads)?如何确认我的 AdMob 是否在使用测试广告(不是真实广告)?
【发布时间】:2019-10-05 05:23:08
【问题描述】:

Native Ads 部分中指定:

在构建和测试您的应用时,请务必使用测试广告而不是 比直播、制作广告。不这样做可能会导致暂停 您的帐户。

加载测试广告的最简单方法是使用我们的专用测试广告单元 Android 上 Native Advanced 的 ID:

ca-app-pub-3940256099942544/2247696110

但是,正在显示的广告很容易作为真实广告传递,所以我想知道是否有办法确认它们是测试广告

首先我在初始化 MobileAds SDK 时使用我的真实 admob 应用 ID:

<string name="admob_app_id">ca-app-pub-xxxxxxxxxxxxxxx</string>
<string name="test_admob_app_unit_id">ca-app-pub-3940256099942544/2247696110</string>

MainActivity.kt

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        ...
        MobileAds.initialize(this, getString(R.string.admob_app_id))

然后我使用上面AdLoader中所述的原生测试id:

MapFragment.kt

private fun showAd(){
    val adLoader = AdLoader.Builder(context, getString(R.string.test_admob_app_unit_id))
        .forUnifiedNativeAd { ad: UnifiedNativeAd ->
            /** Load image */
            val image = ad.images[0].drawable
            val options = RequestOptions.centerCropTransform()
            Glide.with(this).load(image).apply(options).into(firstImage)
            /** Load text */
            heading.text = ad.headline
            business.text = ad.advertiser
            subText.text = "Ad"
            val transaction = childFragmentManager.beginTransaction()
            transaction.show(profile)
            transaction.commit()
        }
        .build()
    adLoader.loadAd(AdRequest.Builder().build())
}

广告已成功加载,但我想要一种方法来确认它是否是测试广告,这样我的帐户才不会被暂停。

【问题讨论】:

    标签: android kotlin admob


    【解决方案1】:

    简而言之,如果您使用了 Admob 提供的正确的Ad unit ids 并且广告加载成功,您将看到一个广告,它本身说它是一个测试广告。

    启用测试的最快方法是使用 Google 提供的测试广告单元。这些广告单元与您的 AdMob 帐户没有关联,因此您的帐户在使用这些广告单元时不会产生无效流量。

    因此,如果您使用提供的测试 admob id,您应该正在加载测试广告。

    使用您的自己的广告单元并启用测试设备。您可以将自己的设备配置为测试设备,并使用您在 AdMob 用户界面中创建的自己的广告单元 ID。

    Quote source

    如果您正在初始化测试广告,那么您需要使用测试单元 ID 对其进行初始化。

    MobileAds.initialize(context, context.getString(R.string.admob_test_unit))

    R.string.admob_test_unit 是测试单元 ID。

    【讨论】:

    • 谢谢 我刚刚测试了这个,我相信它是有效的 - 它显示了关于在线省钱/信用卡省钱的相同通用广告。所以现在在开发中,我在初始化MobileAds SDK 和构建AdLoader 时都通过了测试单元ID?在生产中,我在初始化 MobileAds SDK 和构建 AdLoader? 时传递了我的实际 AdMob 应用 ID?
    • 你能贴一张广告的截图吗?该广告应该是不言自明的。是的,您需要将相同的测试单元 ID 传递给 MobileAdsAdLoader。如果您在the page 上看到AdLoader 示例代码,它们实际上包含了一个测试单元ID,即"ca-app-pub-3940256099942544/2247696110",与Native Advanced 上的Native Advanced 单元ID 相同
    • 这是一个屏幕截图:i.imgur.com/DmHUxiB.jpg - 现在我正在将测试单元 ID 传递给 MobileAdsAdLoader,就像你说的那样。
    • 这是Kotlin 中关于如何实现原生广告的示例代码,希望this 有所帮助。
    【解决方案2】:

    当您看到添加时,“测试”广告被标记为“测试”(广告本身有一个小横幅)。您可以在代码中指定在“调试”或“生产”(发布)模式下使用哪个广告 ID,如下所示:

    String intersProd_ID="<production ad unit id here";
    String intersTest_ID="<test ad unit id here>";
    String useInters;
        if((BuildConfig.DEBUG)){
            useInters = intersTest_ID;
        }
        else{
            useInters = intersProd_ID;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      相关资源
      最近更新 更多