在全球任何區域,您都可以用 Google 發布商廣告代碼進行廣告個人化設定。
網頁採用 GPT 和 AdSense 標記時的廣告個人化設定
請求廣告
根據預設,傳送給 Google 的廣告請求會放送個人化廣告,且會同時根據網頁內容及該網頁訪客的記錄來選擇廣告。此外,Google 也支援放送非個人化廣告。進一步瞭解個人化和非個人化廣告
如果發布商想要向一部分使用者放送個人化廣告,並向其他人放送非個人化廣告,可運用 GPT 和 AdSense/Ad Manager 非同步廣告代碼,在特定網頁放送非個人化廣告。如果想讓所有或部分使用者選擇要看到個人化廣告還是非個人化廣告,這種方法就很實用。
雖然這些廣告不會將 Cookie 用於廣告個人化,但會用來計算展示頻率上限,以及提供廣告匯總報表。因此,如果使用者來自適用《電子通訊隱私指令》Cookie 規定的國家/地區,您仍須向他們取得同意聲明,才可使用 Cookie 達成上述目的。進一步瞭解非個人化廣告。
使用 GPT 廣告代碼設定 NPA=1
使用下列方法:googletag.pubads().setPrivacySettings({nonPersonalizedAds: true})
setCookieOptions()
呼叫不適用於 GDPR。
使用 GPT 廣告代碼設定 PPT=1
使用下列方法:googletag.setConfig({privacyTreatments: { treatments: ["disablePersonalization"]}})
使用 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:標頭標記 API
在adsbygoogle
指令碼標記中設定data-privacy-treatments
,例如:
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" data-privacy-treatments='disablePersonalization'></script>
暫停廣告請求
GPT 和 AdSense/Ad Manager 非同步代碼可讓您先載入網頁,等明確信號出現後再發出廣告請求。如果您需要等使用者與同意聲明請求 UI 互動後再發出廣告請求,這種方法或許就很實用。
使用 GPT 時:如果您採用非同步模式,便可延遲廣告請求。
- 使用
disableInitialLoad()
函式來防止代碼在網頁初次載入時發出廣告請求。您必須先完成這項操作,才能觸發任何使用display()
的廣告請求。 - 照常呼叫
googletag.cmd.push(...)
來設定廣告版位。 - 使用者表示同意與否後,視需要呼叫
setRequestNonPersonalizedAds(1)
。 - 使用
refresh()
函式來繼續發出廣告請求。 - 如果您沒有呼叫
refresh()
,就不會顯示任何廣告。要是您使用enableSyncRendering()
,則無法延遲請求。
使用 AdSense 或 Ad Manager 非同步廣告程式碼時:
- 使用
(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=1
即可防止代碼發出廣告請求。您必須先完成這項操作,才能使用adsbygoogle.push(...)
觸發任何廣告請求。 - 照常呼叫
adsbygoogle.push(...)
來設定廣告版位。 - 使用者表示同意與否後,視需要設定
requestNonPersonalizedAds=1
。 - 使用
(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0
恢復發出廣告請求。 - 如果您沒有設定
pauseAdRequests=0
,就不會顯示任何廣告。
這個技巧能阻止廣告請求發出,但仍會載入各種指令碼。雖然系統可能會讀取 Google 網域上現有的 Cookie,但不會設定新的 Cookie。凡是與現有 Cookie 相關的資料,都不會用於放送廣告或評估成效。
如果您的同意聲明管理工具能讓您等使用者做決定後再載入指令碼,您還可選擇延遲載入 gpt.js
和 adsbygoogle.js
。其他類型的 Google 廣告代碼不支援暫停廣告請求,因此請您在準備好請求個人化或非個人化廣告之後,再載入這些廣告代碼。
AMP 網頁的廣告個人化設定
AMP 網頁與前述非 AMP 網頁的廣告請求,採用的廣告個人化設定都相同:發布商可選擇向特定地區的所有使用者放送非個人化廣告,也可依使用者的同意聲明放送個人化或非個人化廣告。對於使用 <amp-ad type=”doubleclick”>
或 <amp-ad type=”adsense”>
請求廣告的 AMP 網頁,下文將分別說明兩種設定方法。
向特定地區的所有使用者放送非個人化廣告
如果您的 AMP 廣告代碼「並未」使用即時設定 (RTC),則您可以直接在 Google Ad Manager 或 AdSense 的 UI 中啟用非個人化廣告放送功能,不必修改 AMP 網頁。
如果您的 AMP 廣告代碼「目前」使用即時設定 (RTC),則對於會看到非個人化廣告的使用者 (例如位於歐洲經濟區、英國和瑞士境內的使用者),您可以將網頁設為不要傳送 RTC 請求。如要採行這個做法,請使用以下必要元件和設定 (amp-geo
與 amp-consent
)。
<!-- 首先,我們需要設定 amp-geo 額外資訊。我們會定義納入所有歐洲經濟區國家/地區和英國的「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>
<!-- 接下來,我們需要設定同意聲明,將逾時設為 0 (即完全不顯示同意聲明使用者介面),且預設為「拒絕」同意聲明狀態。如此將中止 RTC 呼叫,並指示 DFP/AdSense 放送非個人化廣告。-->
<amp-consent layout="nodisplay" id="consent-element">
<script type="application/json">
{
"consents": {
"my_consent": {
"promptIfUnknownForGeoGroup": "eea"
}
}
"policy": {
"default": {
"waitFor": {
"my_consent": []
}
"timeout": {
"seconds": 0,
"fallbackAction": "reject"
}
}
}
}
</script>
</amp-consent>
您必須將 data-block-on-consent
屬性加到網頁上任何現有的 amp-ad
元件中,如下所示:
<!-- 最後將廣告代碼設為自動拒絕提供同意聲明 -->
<amp-ad data-block-on-consent
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 額外資訊。我們會定義納入所有歐洲經濟區國家/地區和英國的「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>
請注意,您還可使用其他方式,選擇性向使用者顯示同意聲明提示,包括使用 checkConsentHref
設定網頁,將 CORS POST 要求傳送給指定端點。如需詳細資訊,請參閱 amp-consent 說明文件。
其他代碼的廣告個人化設定
GPT 回傳式曝光代碼
如果您使用 GPT 回傳式曝光代碼,便可在 API 呼叫中加入下列程式碼,將廣告請求標為非個人化:
googletag.pubads().setRequestNonPersonalizedAds(int options);
將 options
參數設為整數值 1 可將廣告請求標為 NPA,設為 0 則可讓廣告請求放送個人化廣告。
範例:
<script src="https://www.googletagservices.com/tag/js/gpt.js">
googletag.pubads().setRequestNonPersonalizedAds(1);
googletag.pubads().definePassback("123456/ad/unit", [100,200])
.display();
</script>
無標記請求
如果您使用無標記請求,可直接在代碼請求網址中加上 npa=[int]
參數,將廣告請求標為非個人化。建議您及早在代碼中指定這個參數,以免網址遭到截斷。只要指定 npa=1
,就能將廣告請求標為非個人化。如果略過這個參數,就會預設為放送個人化廣告,例如:
https://pubads.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 SDK、Android UMP SDK),進一步瞭解 User Messaging Platform SDK 如何確保應用程式符合 Google 的《歐盟地區使用者同意授權政策》規定。
Google 互動式媒體廣告 SDK (影片廣告)
對於影片請求,只要將 npa=1
參數加到廣告代碼中,即可指定 Google 將影片內容視為非個人化,方法是使用手動建構的主影片廣告代碼,或採用任一種特定平台專用的 IMA SDK (HTML5 IMA SDK、iOS IMA SDK、Android IMA SDK、Google Cast IMA SDK)。
如果您的影片播放器使用 Google Ad Manager 的「動態廣告插播」功能,便可同時透過隨選影片或直播請求加進 npa=1
參數,藉此將該參數傳遞給所有內含的廣告請求 (DAI HTML5 SDK、DAI Cast SDK、DAI iOS SDK、DAI Android SDK、DAI Roku SDK、DAI tvOS SDK)。