您可以在全球任何區域,設定 Google 發布商廣告代碼中的廣告個人化設定。
網頁採用 GPT 和 AdSense 標記時的廣告個人化設定
請求廣告
根據預設,傳送給 Google 的廣告請求會放送個人化廣告,且會同時根據網頁內容及該網頁訪客的記錄來選擇廣告。此外,Google 也支援放送非個人化廣告。進一步瞭解個人化和非個人化廣告。
如果發布商想要向某些使用者放送個人化廣告,並向其他使用者放送非個人化廣告,則可運用 GPT 和 AdSense/Ad Exchange 非同步廣告代碼,在某幾個網頁上觸發放送非個人化廣告。如果想讓所有或部分使用者選擇要看到個人化廣告還是非個人化廣告,這種方法或許就很實用。
這些廣告雖然不會將 Cookie 用於廣告個人化,但是會運用 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: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 非同步代碼可讓您先載入網頁,等明確信號出現後再發出廣告請求。如果您需要等使用者與同意聲明請求 UI 互動後再發出廣告請求,這種方法或許就很實用。
暫停 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.js
和 adsbygoogle.js
。其他類型的 Google 廣告代碼不支援暫停廣告請求,因此請您在準備好請求個人化或非個人化廣告之後,再載入這些廣告代碼。
AMP 網頁的廣告個人化設定
AMP 網頁與前述非 AMP 網頁的廣告請求,都提供一樣的廣告個人化設定:發布商可以選擇向特定地區的所有使用者放送非個人化廣告,也可以選擇根據同意聲明放送個人化/非個人化廣告。
以下將對使用 <amp-ad type="doubleclick"> or <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
<!-- 接著需要為歐洲經濟區國家/地區的使用者,設定同意聲明元件。我們會在隨後將其設為自動拒絕,因此實際上不會顯示同意聲明提示。這樣可中止 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-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().setPrivacySettings({nonPersonalizedAds: boolean})
將 boolean
值設為 true
,即可將廣告請求標為非個人化廣告;如果廣告請求符合個人化廣告放送資格,則設為 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 SDK、Android UMP SDK),進一步瞭解 User Messaging Platform SDK 如何協助應用程式遵守 Google 的《歐盟地區使用者同意授權政策》。
Google 互動式媒體廣告 SDK (影片廣告)
對於影片請求,只要將 npa=1
參數加到廣告代碼中,即可指定 Google 將影片內容視為非個人化,方法是使用手動建構的主影片廣告代碼,或採用任一種特定平台專用的 IMA SDK (HTML 5 IMA SDK、iOS IMA SDK、Android IMA SDK、Google Cast IMA SDK)。
如果您的影片播放器使用 Ad Manager 的「動態廣告插播」功能,便可同時透過隨選影片或直播請求加進 npa=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
)) 無法發出非個人化廣告請求,因此請在準備好請求個人化廣告之後,再載入這些代碼。
您也可以改用提供個人化及非個人化廣告完整放送功能的廣告代碼,並暫停發出收集任何必要同意聲明的請求,這樣就能更輕鬆地遵守《歐盟地區使用者同意授權政策》規定。