某些应用需要将两个广告请求相互关联。
Google 移动广告 SDK 不允许您关联两个请求,因此很难防止向两个类似的广告请求投放相同的广告素材。Ad Manager 中的路障广告和竞争性排除功能也需要相关联的广告请求。
相关器值是一个随机无符号整数,长度为 16 个字符,以字符串形式表示。默认情况下,GMA SDK 会在每次广告请求时生成新的相关性标识符,这意味着任何两个请求之间都没有相关性。
如需关联两个请求,您可以手动替换由 GMA SDK 生成的相关性标识符,并将同一相关性标识符应用于多个广告请求。如需使用此功能,您需要生成自己的随机相关器。以下示例展示了如何传递您自己的相关器:
Java
Bundle extras = new Bundle();
String correlator = "2510196024846425"; // make randomly - should be 16 digits.
extras.putString("correlator", correlator);
AdManagerAdRequest request = new AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
Kotlin
val extras = Bundle()
val correlator = "2510196024846425" // make randomly - should be 16 digits.
extras.putString("correlator", correlator)
val request = AdManagerAdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
.build()
相关器生命周期为 30 秒。间隔超过 30 秒的请求不会被服务器视为相关。
最佳做法
使用自定义相关 ID 可为 Ad Manager 提供所需的上下文,以防止其选择相同的广告素材,但广告请求需要按顺序发出:先发出一个广告请求,获取响应,然后再发出下一个请求。
您可以多次执行此操作,但调用次数越多,消耗的资源就越多。最好将连续请求的次数限制为 3-5 次。您可以在用户向下滚动页面时进行其他调用。
由于相关性标识符会在 30 秒后过期,因此对于同一长时间的网页浏览,您无需生成新值。在每个新的长期有效的网页浏览开始时生成新的相关器。如果您不再需要此行为,请停止传递您自己的相关性标识符。
为了防止您返回的广告在关联标识符过期后在后续调用中投放,请考虑添加频次上限,即每 5 到 10 分钟投放 1 个广告。您选择的时间应与应用的典型使用情况相符。如果您不呈现广告,频次上限可能会被清除,因此如果您发出广告请求,但不呈现广告并进行其他调用,则可能会收到同一广告。