您配置的所有针对具体请求的“受限的数据处理”设置都会全局应用。例如,对于向美国相应州的用户发出的请求,如果您在其中添加了针对具体请求的“受限的数据处理”参数,系统会启用“受限的数据处理”模式,并且仅会投放非个性化广告。
针对使用 GPT 代码和 AdSense 代码的网页的“受限的数据处理”设置
发出广告请求
默认情况下,向 Google 发送的广告请求不会限制数据处理方式并且 Google 会投放个性化广告,具体选择的广告取决于网页的内容以及访问该网页的具体用户的历史记录。出于多种法规遵从和隐私保护原因,Google 已支持通过广告代码发送信号,这些原因包括:
- Google 发布商广告代码中的非个性化广告设置
(Ad Manager、AdMob、Android 和 iOS、AdSense) - 将广告请求标记为面向未达到同意年龄 (TFUA) 的欧洲经济区 (EEA) 用户
(Ad Manager、AdMob、AdSense) - 将广告请求标记为面向儿童 (TFCD)
(Ad Manager、AdMob、AdSense)发布商可以选择使用 TFCD 参数将广告请求标记为面向未达到规定年龄的用户。设置了 TFCD 参数时,系统也会启用“受限的数据处理”
本文概述了如何通过广告代码请求“受限的数据处理”模式。您启用“受限的数据处理”后,Google 会限制其自身使用数据的方式,并且仅会投放非个性化广告。如果您想为美国相应州访问您的媒体资源的所有用户启用“受限的数据处理”,则无需对您的广告代码进行任何更改。如需详细了解“受限的数据处理”(包括如何在界面中启用此模式),请访问 Google Ad Manager、AdMob 或 AdSense 帮助中心。
如果您希望仅为部分用户启用“受限的数据处理”,则可使用 GPT 和 AdSense/Ad Exchange 异步广告代码,它们可帮助发布商按网页触发“受限的数据处理”模式。如果您选择显示一个链接来允许用户选择“请勿出售我的个人信息”,这种方法可能会很有用。对于选择不出售个人信息的用户,您可以通过传递此信号来履行您的监管义务。如需详细了解“受限的数据处理”模式,请参阅“帮助发布商遵守美国州级隐私保护法律”(Google Ad Manager、AdMob、AdSense)。
- 如采用 GPT 代码,请使用以下代码段:
googletag.pubads().setPrivacySettings({
'restrictDataProcessing': true
}); - 如采用 AdSense 和 Ad Exchange 异步广告代码,请使用以下代码段:
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-0123456789abcdef"
data-ad-slot="0123456789"
data-restrict-data-processing="1"></ins>
对于由下列受支持的广告代码从网页中发出的后续 Google 广告请求,这些方法将触发受限的数据处理:GPT、AdSense 或 Ad Exchange 异步广告代码 (adsbygoogle.js
) 以及 IMA SDK。在浏览器的开发者工具中找到相关广告请求,然后看看是否有参数 &rdp=1
,即可验证广告代码是否采用“受限的数据处理”模式。
您同样可以在使用这些 API 时通过传递 false
和 0
值(具体取决于相应 API 接受的类型)来停用“受限的数据处理”(以及重新启用个性化)。如果某个网页包含多种类型的 Google 广告代码,例如同时包含 GPT 代码和 AdSense/Ad Exchange 异步代码,您必须使用每种代码分别对应的 RDP 控制方式。
针对其他代码的“受限的数据处理”设置
GPT 回传代码
如果您使用 GPT 回传代码,则可以像传统 GPT 一样使用 googletag.pubads().setPrivacySettings
API,将广告请求标记为采用“受限的数据处理”模式。
代码示例:
<script async
src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<div id='gpt-passback'>
<script>
window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag
.defineSlot('/123/sports', [300, 250], 'gpt-passback')
.addService(googletag.pubads());
googletag.pubads().setPrivacySettings({
'restrictDataProcessing': true
});
googletag.enableServices();
googletag.display('gpt-passback');
});
</script>
</div>
无代码请求
如果您使用无代码请求,则可以直接在代码请求网址中添加 rdp=[int]
参数,这样就可以将广告请求标记为采用“受限的数据处理”模式。我们建议您在代码中靠前的位置指定该参数,以避免参数被截断的风险。指定 rdp=1
可将广告请求标记为采用“受限的数据处理”模式。如果您不指定该参数,系统会默认停用“受限的数据处理”模式并允许投放个性化广告。
代码示例:
https://securepubads.g.doubleclick.net/gampad/ad?iu=/12345/adunit&sz=728x90&rdp=1&c=12345
Google 移动广告 SDK
如需详细了解 Google 移动广告 SDK,请访问应用开发者网站。
- AdMob:iOS GMA SDK、Android GMA SDK
- Ad Manager:iOS GMA SDK、Android GMA SDK
Google 互动式媒体广告 SDK(适用于视频)
对于视频请求,您可以指明您希望 Google 将您的视频内容视为采用“受限的数据处理”模式。为此,您可以使用手动构建的主视频广告代码(仅限 Ad Manager),也可以使用任何针对特定平台的 IMA SDK(HTML 5 IMA SDK、iOS IMA SDK、Android IMA SDK、Google Cast IMA SDK)。
如果您的视频播放器使用 Ad Manager 的动态广告插播功能,它还可以在视频点播 (VOD) 或直播请求中包含 rdp=1
参数,从而将该参数传递到所包含的任何广告请求中(DAI HTML5 SDK、DAI Cast SDK、DAI iOS SDK、DAI Android SDK、DAI Roku SDK、DAI tvOS SDK)。
旧版 Google 发布商广告代码
其他类型的 Google 广告代码(例如旧版 GAM 代码、GUT 代码和 AdSense/Ad Exchange 同步代码 [show_ads.js
])不支持以“受限的数据处理”模式发出广告请求。建议您改用某种同时支持个性化广告和“受限的数据处理”模式的代码。
AdSense 搜索广告
默认情况下,向 Google 发送的广告请求不会限制数据处理方式并且 Google 会投放个性化广告,具体选择的广告取决于用户的搜索查询以及执行搜索的用户的个人历史记录。您启用“受限的数据处理”后,Google 会限制其自身使用数据的方式,并且仅会投放非个性化广告。
您可以针对具体请求启用“受限的数据处理”(如下文所述),也可以让您的客户经理为特定媒体资源停用个性化功能。
- 对于搜索广告 - 网页广告代码,请将以下文本添加到搜索广告代码中的
pageOptions
:personalizedAds: false,
- 对于 AdMob 代码,请添加:
builder.setAdvancedOptionValue("csa_personalizedAds", "false");
- 对于 iOS 代码,请添加:
[request setAdvancedOptionValue:@"false" forKey:@"personalizedAds"];
这些方法会针对相应的特定请求触发“受限的数据处理”并投放非个性化广告。这是一个无状态参数。如果未针对相应用户在后续请求中设置该参数,则此行为将恢复为默认行为,即请求个性化广告。
Accelerated Mobile Pages(AMP 网页)
<amp-ad type=”doubleclick”>
或 <amp-ad type=”adsense”>
请求广告的 AMP 网页,如何针对不同情形分别进行配置。对于来自 AMP 网页的广告请求,发布商可以选择对美国相应州的所有用户限制数据处理,也可以有选择地限制数据处理(具体方法请参见下文关于停用个性化功能的说明)。发布商想启用“受限的数据处理”时,需要使用现有的用来停用个性化功能的设置。本文中,这两种说法的含义并无实质区别。
请求面向美国相应州的用户投放非个性化广告
如果您的 AMP AdSense 代码或 AMP Doubleclick 不使用实时配置 (RTC),您只需在 Google Ad Manager 界面或 AdSense 界面中启用“受限的数据处理”即可,而无需进一步更改 AMP 网页。
如果您的 AMP 广告代码使用实时配置 (RTC),则只有在已征得用户同意或者不需要征得用户同意时,才会发送 RTC 请求。(注意:您可以允许系统发送特定 RTC 出价邀约,而不考虑用户的同意情况。)为避免针对将接收非个性化广告的用户(例如美国相应州的用户)发送 RTC 请求,您可以使用以下组件和配置(amp-geo
和 amp-consent
):
<!-- 设置 amp-geo 组件来检测来自美国的最终用户。amp-geo 目前仅支持国家/地区级的地理区域检测功能,但我们即将推出用于检测用户是否位于美国各州的功能。请务必处理“unknown”情况(即 amp-geo 无法判断国家/地区时),确保有至少一个组包含“unknown”-->
<amp-geo layout=nodisplay>
<script type="application/json">
{
"ISOCountryGroups": {
"us": ["us"],
"eea": ["preset-eea", “unknown”]
}
}
</script>
</amp-geo>
<!-- 设置 amp-consent 组件来屏蔽请求,并收集用户同意情况。我们后续会将其配置为 auto-rejected,因此它实际上不会发出提示来征求用户意见。这样就会阻止发出 RTC 出价邀约,同时向 Ad Manager/AdSense 发出投放非个性化广告的信号。-->
<amp-consent layout="nodisplay" id="consent-element">
<script type="application/json">
{
“consentInstanceId”: “my_consent”,
“consentRequire”: false,
“geoOverride”: {
“us”: {
“consentRequired”: “remote”,
“checkConsentHref”: “https://your-endpoint”
}
}
</script>
</amp-consent>
由于 amp-geo
目前不支持检测美国相应州,因此您需要通过 checkConsentHref
设置提供一个端点,以告知 AMP 是否需要征得当前用户的同意。AMP 会要求从该端点返回 JSON 对象,您可以参阅 AMP 网站文档,详细了解端点响应。
如果您无法设置端点,AMP 团队即将推出的一项功能可帮助您检测美国相应州的用户。在该功能推出之前,您可以选择对美国的所有用户应用意见征求设置,作为一种临时解决方案。amp-consent
配置如下所示:
<!-- 设置 amp-consent 组件来屏蔽请求,并收集所有美国用户的同意情况 -->
<amp-consent layout="nodisplay" id="consent-element">
<script type="application/json">
{
“consentInstanceId”: “my_consent”,
“consentRequire”: false,
“geoOverride”: {
“us”: {
“consentRequired”: “true”
}
}
</script>
</amp-consent>
您必须将 data-block-on-consent
属性添加到相应网页上的所有现有 amp-ad
组件中,如下所示:_auto_reject
会指示广告不要等待意见征求提示,而是改为直接投放非个性化广告。
<!-- 最后,我们设置广告代码,使其在用户意见征求环节自动拒绝 -->
<amp-ad data-block-on-consent="_auto_reject"
width=320 height=50
type="doubleclick"
data-slot="/4119129/mobile_ad_banner">
</amp-ad>
根据用户意见投放个性化广告/非个性化广告
由于 AMP 不允许使用自定义 JavaScript,请求个性化广告还是非个性化广告要取决于 amp-consent
组件的配置以及 data-block-on-consent
和 data-npa-on-unknown-consent
属性。假设您已经配置了一个 amp-consent
组件,并使用 data-block-on-consent
将该组件关联到相应网页上的所有 <amp-ad>
代码:
- 如果用户对
amp-consent
组件做出了肯定的响应(用户接受了意见征求提示),网页将正常发出广告请求。 - 如果用户对
amp-consent
组件做出了否定的响应(用户拒绝了意见征求提示),网页将请求非个性化广告。 - 如果用户对 amp-consent 的响应未知(用户关闭了意见征求提示)
- 默认情况下,网页不会发出任何广告请求。
- 如果
data-npa-on-unknown-consent
设为true
,网页将请求非个性化广告。
- 如果您通过配置
amp-geo
组件,使意见征求界面不向位于特定地理位置的用户显示,网页将正常发送请求。
如果您的 <amp-ad>
代码未使用 data-block-on-consent
,或者 amp-consent
组件尚未正确配置,网页将正常发送请求。
下例所示的配置会向美国相应州的所有用户发出意见征求提示,从而引发如上所述的行为:
<!-- 设置 amp-geo 组件来检测来自美国的最终用户。amp-geo 目前仅支持国家/地区级的地理区域检测功能,但我们即将推出用于检测用户是否位于美国各州的功能。请务必处理“unknown”情况(即 amp-geo 无法判断国家/地区时),确保有至少一个组包含“unknown”-->
<amp-geo layout=nodisplay>
<script type="application/json">
{
"ISOCountryGroups": {
"us": ["us"],
"unknown": ["unknown"]
}
}
</script>
</amp-geo>
<!--针对美国境内的用户设置意见征求 -->
<amp-consent layout="nodisplay" id="consent-element">
<script type="application/json">
{
“consentInstanceId” : “my_consent”,
“consentRequired”: false,
“geoOverride”: {
“us”: {
“consentRequired”: “true”,
“promptUI”: “myConsentFlow”
}
}
}
</script>
<div id=”myConsentFlow”>...</div>
</amp-consent>
<!-- 最后,我们设置广告代码,使其在必要时等待用户意见,并在解析到的同意情况是未知时,请求非个性化广告 -->
<amp-ad data-block-on-consent
data-npa-on-unknown-consent=true
width=320 height=50
type="doubleclick"
data-slot="/4119129/mobile_ad_banner">
</amp-ad>
如果您要自行设置端点来选择性地向用户发出意见征求提示,请在配置相应网页时使用 checkConsentHref
指定向端点发送 CORS POST 请求。如需了解详情,可参阅 amp-consent 说明文档。