插页式广告未反映 Admob 设置

问题描述 投票:0回答:2

几天前我已将广告单元的频次上限设置为每 1 分钟 3 次展示。广告单元分配给一个广告活动,andoid 只有一个广告单元,频率上限似乎不起作用,基本上每次点击按钮时广告在一分钟内显示超过 3 次。

浏览了所有论坛和 stackoverflow 问题,大多数人提到等待 24 小时,但实际时间比这更长。这个问题有办法解决吗?

enter image description here

更新:有没有办法以编程方式检查频率上限,谷歌是否在应用程序内部公开这些详细信息,我们可以检查是否启用了上限,然后以编程方式处理广告显示逻辑?

android admob
2个回答
0
投票

不幸的是,据我所知,我们无法使用 API 检查频率,但我们可以在客户端使用持久存储应用解决方法,例如 SharedPrefs:

val prefs = context.getSharedPreferences("AdPrefs", Context.MODE_PRIVATE)
val lastShowTime = prefs.getLong("lastShowTime", 0)
val showsInLastMinute = prefs.getInt("showsInLastMinute", 0)

if (System.currentTimeMillis() - lastShowTime < 60000) {
    if (showsInLastMinute >= 3) {
        // block ad
    } else {
        prefs.edit().putInt("showsInLastMinute", showsInLastMinute + 1).apply()
        // Show ad
    }
} else {
    prefs.edit()
        .putLong("lastShowTime", System.currentTimeMillis())
        .putInt("showsInLastMinute", 1)
        .apply()
    // Show ad
}

您还可以检查是否以某种方式缓存广告块状态。


0
投票

在我假设您已经通过将实际 ID 复制粘贴到代码中来检查并重新检查应用程序 ID 和广告单元 ID 之前,您清理了所有测试广告单元 ID,您已经等待了足够的时间(24-48 小时)并且您已经在多个真实设备上进行了测试。

在此之后,这可能是两个问题之一:

第一期:

您仅在测试环境(测试设备、模拟器、应用程序的调试版本)中进行测试,根据我的经验,这可能会在极少数情况下导致意外问题。在这种情况下,正确的测试方法是将应用程序发布到 Google Play 上进行内部测试,并在新设备上使用此版本进行测试。 (如果它确实有效,调试版本中的问题,你应该清理所有内容)

第二期:

您遇到问题,导致 Admob 无法保存该特定用户的展示次数,这通常是由于将 Admob 集成到您的代码中的方式错误造成的。在这种情况下,您应该使用相同的应用程序 ID 启动新项目,并且仅测试广告(使用 admob 测试示例)。如果它确实有效,那么您应该从原始项目中完全删除 Admob,然后再次仔细集成它。

© www.soinside.com 2019 - 2024. All rights reserved.