Google 发布商广告代码中的广告个性化设置

如果发布商的用户位于欧洲经济区 (EEA)、英国和瑞士,则应参阅发布商集成 IAB TCF v2.2。发布商若有意为用户提供增强型隐私保护处理措施,不妨详细了解 Publisher Privacy Treatment API
如果发布商的用户位于欧洲经济区 (EEA)、英国和瑞士,则应参阅发布商集成 IAB TCF v2.2。发布商若有意为用户提供增强型隐私保护处理措施,不妨详细了解 Publisher Privacy Treatment API

Google 发布商广告代码中的广告个性化设置适用于全球任何地区。

针对使用 GPT 代码和 AdSense 代码的网页的广告个性化设置

发出广告请求

默认情况下,Google 在收到广告请求后会投放个性化广告,具体选择的广告取决于网页的内容以及访问该网页的具体用户的历史记录。Google 也支持投放非个性化广告。不妨详细了解个性化广告和非个性化广告

如果您希望向一些用户投放个性化广告,而向另外一些用户投放非个性化广告,则可使用 GPT 和 AdSense/Ad Exchange 异步广告代码,它们可帮助发布商按网页触发非个性化广告投放。如果您允许自己的所有用户或部分用户在个性化广告与非个性化广告间进行选择,这些广告代码可能就会派上用场。

非个性化广告不会将 Cookie 用于实现广告个性化,但会使用它们来确保广告展示频次不超过频次上限以及生成汇总的广告报告。因此,在《电子隐私指令》中有关 Cookie 使用的规定所适用的国家/地区,需就使用 Cookie 征得用户同意后,才能将其用于前述目的。不妨详细了解非个性化广告

使用 GPT 代码设置 NPA=1

请使用以下方法:

googletag.pubads().setPrivacySettings({nonPersonalizedAds: true})

setCookieOptions() 调用不适用于 GDPR。

详细了解 Google Developers

使用 GPT 代码设置 PPT=1

请使用以下方法:

googletag.setConfig({privacyTreatments: { treatments: ["disablePersonalization"]}})

详细了解 Google Developers

使用 AdSense 和 Ad Exchange 异步广告代码设置 NPA=1

设置以下值:

(adsbygoogle=window.adsbygoogle||[]).requestNonPersonalizedAds=1

您只需在浏览器的“开发者工具”中找到相应广告请求,然后看看其中是否有参数 &npa=1,即可验证广告代码所请求的是否为非个性化广告。

调用 setPrivacySettings({nonPersonalizedAds: false}) 或设置 requestNonPersonalizedAds=0 会重新启用个性化。

使用 AdSense 和 Ad Exchange 异步广告代码设置 PPT=1

  • 方法 1:Push API

    使用 push 方法:

    (adsbygoogle=window.adsbygoogle||[]).push({ params: {google_privacy_treatments: 'disablePersonalization'}})

    您只需在浏览器的“开发者工具”视图中找到相应广告请求,然后看看其中是否有参数 &ppt=1,即可验证广告代码所请求的是否为非个性化广告。
     
  • 方法 2:Header Tag API

    adsbygoogle 脚本标记上设置 data-privacy-treatments。例如:

    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" data-privacy-treatments='disablePersonalization'></script>

暂停广告请求

GPT 和 AdSense/Ad Exchange 异步代码支持先加载您的网页,等到出现明确信号后才开始发出广告请求。如果您需要等到用户与意见征求界面互动后再发出广告请求,这类代码可能会很有用。

暂停 GPT 广告请求

  • 使用 disableInitialLoad() 函数阻止此代码在网页首次加载时发送广告请求。您必须在使用 display() 触发任何广告请求之前执行此函数。
  • 像往常一样调用 googletag.cmd.push(...) 来设置广告位。
  • 在用户选择是否同意后,根据需要调用 setPrivacySettings({nonPersonalizedAds: true})
  • 使用 refresh() 函数可恢复发送广告请求。
  • 如果您不调用 refresh(),系统将不会显示任何广告。

暂停 AdSense 或 Ad Exchange 异步广告代码

  • 使用 (adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=1 阻止此代码发送广告请求。您必须在使用 adsbygoogle.push(...) 触发任何广告请求之前执行此函数。
  • 像往常一样调用 adsbygoogle.push(...) 来设置广告位。
  • 在用户选择是否同意后,根据需要设置 requestNonPersonalizedAds=1
  • 使用 (adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0 可恢复发送广告请求。
  • 如果您不设置 pauseAdRequests=0,系统将不会显示任何广告。

此方法会阻止发送广告请求,但各种脚本依然会加载。虽然可以读取 Google 网域中的现有 Cookie,但不会设置新的 Cookie。与现有 Cookie 关联的所有数据都不会用于投放广告和衡量广告效果。

如果您的意见征求管理解决方案提供了一种可将脚本延迟到用户做出选择后再加载的方法,那么我们还可以采取另外一种延迟发出广告请求的方案,即延迟加载 gpt.jsadsbygoogle.js。其他类型的 Google 广告代码不支持暂停广告请求;因此,如果采用这些类型的代码,您就需要避免在您还未准备好请求个性化广告或非个性化广告之时加载它们。

针对 AMP 网页的广告个性化设置

来自 AMP 网页的广告请求提供的广告个性化设置与之前所述的非 AMP 网页相同:发布商可以选择向某个地理位置内的所有用户投放非个性化广告,也可以根据用户意见来选择是投放个性化广告还是非个性化广告。

下文说明了对于通过 <amp-ad type="doubleclick"> 或 <amp-ad type="adsense"> 请求广告的 AMP 网页,如何针对每种情形进行配置。

向某个地理位置内的用户投放非个性化广告

如果您的 AMP 广告代码不使用实时配置 (RTC),您只需在 Google Ad Manager 界面或 AdSense 界面中启用非个性化广告投放即可,而无需进一步更改 AMP 网页。

如果您的 AMP 广告代码使用实时配置 (RTC),您可以对网页进行配置,以避免针对接收非个性化广告的用户(例如,位于欧洲经济区、英国和瑞士境内的那些用户)发送 RTC 请求。下面列出了实现此目的必须要用到的组件和配置(amp-geoamp-consent)。

<!-- 首先我们需要设置 amp-geo extension(扩展组件)。我们来定义一个群组:“eea”,其中包含欧洲经济区的所有国家/地区和英国。由于欧洲经济区成员国/地区可能会随时间推移而发生变化,因此您需要确保该列表始终处于最新状态。-->
<amp-geo layout="nodisplay">
  <script type="application/json"
    {
      "ISOCountryGroups": {
        "eea": [ "at", "be", "bg", "cy", "cz", "de", "dk", "ee", "es", "fi", "fr",
        "gb", "gr", "hr", "hu", "ie", "is", "it", "li", "lt", "lu", "lv", "mt", "nl",
        "no", "pl", "pt", "ro", "se", "si", "sk"]
      }
    }
  </script>
</amp-geo

<!-- 接下来,我们需要为欧洲经济区国家/地区内的最终用户设置意见征求组件。我们后续会将其配置为 auto-rejected,因此它实际上不会发出提示来征求用户意见。这样就会停止发出 RTC 出价邀约,同时向 Ad Manager/AdSense 发出投放非个性化广告的信号。-->
<amp-consent layout="nodisplay" id="consent-element">
  <script type="application/json">
    {
      "consents": {
        "my_consent": {
          "promptIfUnknownForGeoGroup": "eea"
        }
      }
    }
  </script>
</amp-consent

您必须将 data-block-on-consent 属性添加到相应网页上的所有现有 amp-ad 组件中,如下面的代码示例所示:

<!-- 最后,我们设置广告代码,使其在用户意见征求环节自动拒绝 -->
<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-consentdata-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 extension(扩展组件)。我们来定义一个群组:“eea”,其中包含欧洲经济区的所有国家/地区。由于欧洲经济区成员国/地区可能会随时间推移而发生变化,因此您必须确保该列表始终处于最新状态。-->
<amp-geo layout="nodisplay">
  <script type="application/json">
    {
      "ISOCountryGroups": {
        "eea": [ "at", "be", "bg", "cy", "cz", "de", "dk", "ee", "es", "fi", "fr",
        "gb", "gr", "hr", "hu", "ie", "is", "it", "li", "lt", "lu", "lv", "mt", "nl",
        "no", "pl", "pt", "ro", "se", "si", "sk"]
      }
    }
  </script>
</amp-geo>
 
<!-- 接下来,为“eea”国家/地区群组中的用户指定用户意见征求设置 -->
<amp-consent layout="nodisplay" id="consent-element">
  <script type="application/json">
    {
      "consents": {
        "my_consent": {
          "promptIfUnknownForGeoGroup": "eea",
          "promptUI": "myConsentFlow"
        }
      }
    }
  </script> 
</amp-consent

<!-- 最后,设置广告代码,使其在必要时等待用户同意 -->
<amp-ad data-block-on-consent
    width=320 height=50
    type="doubleclick"
    data-slot="/4119129/mobile_ad_banner">
</amp-ad>

您还可通过其他方式有选择性地向用户发出意见征求提示,包括配置相应网页以将 CORS POST 请求发送给您通过 checkConsentHref 配置的端点。如需了解详情,请参阅 amp-consent 说明文档

针对其他代码的广告个性化设置

GPT 回传代码

如果您使用的是 GPT 回传代码,则可以在自己的 API 调用中添加以下代码,将广告请求标记为非个性化广告请求:

googletag.pubads().setPrivacySettings({nonPersonalizedAds: boolean})

boolean 值设置为 true 可将广告请求标记为非个性化广告请求 (NPA);而设置为 false 则表示将广告请求标记为符合个性化广告投放条件。

如果不指定此设置,则默认为允许投放个性化广告。

无代码请求

如果您使用的是无代码请求,则可以直接在代码请求网址中添加 npa=[int] 参数,从而将广告请求标记为非个性化广告请求。我们建议您在代码中靠前的位置指定该参数,以免有参数被截断的风险。指定 npa=1 可将广告请求标记为非个性化广告请求。如果您不指定该参数,系统会默认为投放个性化广告。

例如:

https://securepubads.g.doubleclick.net/gampad/ad?iu=/12345/adunit&sz=728x90&npa=1&c=12345

AdSense 搜索广告

默认情况下,Google 在收到广告请求后会投放个性化广告,具体选择的广告取决于用户的搜索查询以及执行搜索的具体用户的历史记录。Google 也支持投放非个性化广告。不妨详细了解个性化广告和非个性化广告

如果发布商希望向一些用户投放个性化广告,而向另外一些用户投放非个性化广告,则可使用 AdSense 搜索广告代码,这样就会按网页触发非个性化广告投放。如果您允许自己的所有用户或部分用户在个性化广告与非个性化广告间进行选择,这些广告代码可能就会派上用场。

对于自定义搜索广告这种网页广告代码

将以下内容添加到自定义搜索广告代码中的 pageOptions

personalizedAds: false,

对于 AdMob 代码

builder.setAdvancedOptionValue("personalizedAds", "false");

对于 iOS 代码

[request setAdvancedOptionValue:@"false" forKey:@"personalizedAds"];

这些方法会针对该特定请求触发非个性化广告请求。这是一个无状态参数。如果未针对相应用户在后续请求中设置该参数,则此行为将恢复为默认行为,即请求个性化广告。

Google User Messaging Platform (UMP) SDK

请查看 Google Developers 文档(iOS UMP SDKAndroid UMP SDK),详细了解 User Messaging Platform SDK 如何帮助您的应用遵守 Google 的欧盟地区用户意见征求政策。

Google 互动式媒体广告 SDK(适用于视频)

对于视频请求,只需将 npa=1 参数附加到您的广告代码末尾,即可指明您希望 Google 将您的视频内容视为非个性化内容。为此,您可以使用手动构建的主视频广告代码,也可以使用任何针对特定平台的 IMA SDK(HTML 5 IMA SDKiOS IMA SDKAndroid IMA SDKGoogle Cast IMA SDK)。

如果您的视频播放器使用 Ad Manager 的动态广告插播功能,它还可在视频点播 (VOD) 或直播请求中添加 npa=1 参数,从而将该参数传递到所包含的任何广告请求中(DAI HTML5 SDKDAI Cast SDKDAI iOS SDKDAI Android SDKDAI Roku SDKDAI tvOS SDK)。

旧版 Google 发布商广告代码

其他类型的 Google 广告代码(例如旧版 GAM 代码、GUT 代码和 AdSense/Ad Exchange 同步代码[show_ads.js])不支持发出非个性化广告请求。在您准备好请求个性化广告之前,您应避免加载这些代码。

另外,您可能会发现采用以下方法可以更轻松地遵守欧盟地区用户意见征求政策:改用某种同时支持个性化广告和非个性化广告的代码,并暂停发出广告请求以征得必要的用户同意。

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
主菜单
12217463455668087130
true
搜索支持中心
true
true
true
true
true
148
false
false