Giới thiệu
API này cung cấp các công cụ để tương tác với thông báo do trang Quyền riêng tư và nhắn tin. Thông qua công cụ này, bạn có thể:
- chặn thông báo cho bất kỳ người dùng cụ thể nào
- truy vấn trạng thái chặn quảng cáo của người dùng
- cho phép người dùng thu hồi sự đồng ý (nếu có)
Bạn cũng có thể sử dụng những công cụ này để thu thập sự đồng ý của người dùng theo một số tiêu chuẩn ngành giao thức:
- Sự đồng ý theo GDPR dựa trên quy cách TCF phiên bản 2 của IAB
- Chọn không tham gia CPRA theo quy cách CPRA của IAB GPP
Trong những trường hợp này, trạng thái đồng ý được thông báo thông qua các API đó.
Bạn có thể triển khai chức năng thông báo cho người dùng này trên trang web của mình bằng một vài cách cách:
- Đối với hầu hết các trường hợp, bạn không cần phải gắn thẻ lại – tài khoản Google Nhà xuất bản Thẻ hoặc Triển khai thẻ AdSense thông báo cho người dùng sau khi thông báo được đăng trong sản phẩm có liên quan.
- Nếu đang sử dụng thông báo khôi phục quảng cáo bị chặn, bạn cần phải thêm quảng cáo thẻ chặn vào trang của mình. Xem phần Quảng cáo Người quản lý và Gắn thẻ AdSense để biết thêm thông tin.
googlefc
là không gian tên chung mà chức năng thông báo cho người dùng sử dụng
cho API trên JavaScript Window
.
Bản tóm tắt thực địa
Tên | Loại | Định nghĩa |
---|---|---|
googlefc.controlledMessagingFunction
|
function(!Object) | Một hàm xác định xem có tiếp tục nhắn tin hay không. Chức năng này được hỗ trợ cho tất cả các loại thông báo. |
googlefc.callbackQueue
|
!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue | Tham chiếu đến hàng đợi gọi lại để thực thi không đồng bộ các truy vấn thông báo cho người dùng. |
googlefc.CallbackQueue
|
!Object | Loại của đối tượng hàng đợi gọi lại. |
googlefc.AdBlockerStatusEnum
|
!Đối tượng<chuỗi, số> | Một giá trị enum thể hiện trạng thái trình chặn quảng cáo của người dùng. |
googlefc.AllowAdsStatusEnum
|
!Đối tượng<chuỗi, số> | Một giá trị enum thể hiện trạng thái cho phép quảng cáo của người dùng. |
googlefc.ccpa.InitialCcpaStatusEnum
|
!Đối tượng<chuỗi, số> | Một giá trị enum thể hiện trạng thái theo CPRA ban đầu của người dùng. |
googlefc.ccpa.overrideDnsLink
|
boolean|không xác định | Giá trị boolean có thể đặt thành true để sử dụng đường liên kết tuỳ chỉnh Không bán. |
Tóm tắt về phương pháp
Tên | Loại dữ liệu trả về | Định nghĩa |
---|---|---|
googlefc.showRevocationMessage()
|
chưa xác định |
Xoá bản ghi đồng ý rồi tải lại tập lệnh googlefc để cho thấy thông báo yêu cầu đồng ý áp dụng cho người dùng.
|
googlefc.getAdBlockerStatus()
|
số |
Trả về một giá trị trong AdBlockerStatusEnum tuỳ thuộc vào trạng thái chặn quảng cáo của người dùng.
|
googlefc.getAllowAdsStatus()
|
số |
Trả về một giá trị trong AllowAdsStatusEnum tuỳ thuộc vào trạng thái cho phép quảng cáo của người dùng.
|
googlefc.ccpa.getInitialCcpaStatus()
|
số |
Trả về một giá trị trong InitialCcpaStatusEnum tuỳ thuộc vào trạng thái theo CPRA ban đầu của người dùng.
|
googlefc.ccpa.openConfirmationDialog(function(boolean))
|
chưa xác định | Mở hộp thoại xác nhận theo CPRA nếu đường liên kết Mặc định Không bán bị ghi đè. |
Kiểm thử và gỡ lỗi trên trang web của bạn
Quyền riêng tư và Tính năng nhắn tin cung cấp chức năng gỡ lỗi và kiểm thử để bạn có thể xem cách hiển thị (hoặc kết hợp các tin nhắn) cụ thể trên trang web thực tế.
Điều kiện tiên quyết:
- Bạn phải đăng(các) thông báo mà bạn muốn xem trước trên trang web mà bạn đang truy cập đang kiểm tra
Bạn có thể xem trước trực tiếp trên trang web của mình bằng cách sử dụng URL gỡ lỗi sau thông số:
Thông số gỡ lỗi | Các giá trị được phép |
---|---|
fc |
alwaysshow (để kích hoạt chế độ gỡ lỗi/xem trước) |
fctype |
ab (Thông báo chặn quảng cáo), ccpa (thông báo chọn không tham gia CPRA), gdpr (thông báo yêu cầu đồng ý theo GDPR), monetization (thông báo Offerwall) |
Một số ví dụ về cách sử dụng tính năng này để xem trước trên trang web của bạn (foo.com):
- Thử nghiệm thông báo theo CPRA –
http://foo.com/?fc=alwaysshow&fctype=ccpa
- Thử nghiệm thông báo theo GDPR --
http://foo.com/?fc=alwaysshow&fctype=gdpr
Trường: giải thích và ví dụ
googlefc.controlledMessagingFunction {function(!Object)}
Hàm xác định xem có hiển thị tin nhắn hay không. Có thể được dùng để kiểm soát hiển thị thông báo trong các điều kiện do nhà xuất bản chỉ định như trạng thái người đăng ký hoặc URL trang.
Khi bạn xác định googlefc.controlledMessagingFunction
trên Cửa sổ trước khi
các tập lệnh khác đang tải, tin nhắn sẽ không hiển thị cho đến khi bạn gọi
message.proceed(boolean)
Việc gọi message.proceed(true)
cho phép nhắn tin tới
tiếp tục như bình thường, trong khi việc gọi message.proceed(false)
sẽ ngăn chặn mọi thông báo
hiển thị cho lượt xem trang.
Ví dụ: giả sử bạn có tập lệnh này trên trang xác định chế độ không đồng bộ
determineIfUserIsSubscriber()
để kiểm tra xem người dùng đã đăng nhập có phải là
người đăng ký.
<head>
<script>
window.isSubscriber = undefined;
function determineIfUserIsSubscriber() {
if (isSubscriber !== undefined) {
return isSubscriber;
}
return new Promise(resolve => {
setTimeout(() => {
// Change this to true if you want to test what subscribers would see.
window.isSubscriber = false;
resolve(window.isSubscriber);
}, 1000);
});
}
</script>
</head>
Đây là ví dụ về cách bạn có thể sử dụng
googlefc.controlledMessagingFunction
để chỉ hiển thị thông báo cho
người không đăng ký.
<head>
<script>
// Define googlefc and the controlled messaging function on the Window.
window.googlefc = window.googlefc || {};
googlefc.controlledMessagingFunction = async (message) => {
// Determine if the user is a subscriber asynchronously.
const isSubscriber = await determineIfUserIsSubscriber();
if (isSubscriber) {
// If the user is a subscriber, don't show any messages.
message.proceed(false);
} else {
// Otherwise, show messages as usual.
message.proceed(true);
}
}
</script>
</head>
Ngoài ra, còn có một phần mở rộng của tính năng này cho phép nhà xuất bản Offerwall (phiên bản thử nghiệm beta) kín để chỉ định rằng chỉ Offerwall bị chặn. Các loại thông báo khác sẽ không bị ảnh hưởng khi tính năng này có hiệu lực.
Thông báo được kiểm soát dành riêng cho Offerwall đạt được bằng cách truyền thêm
tham số thành message.proceed()
, một Array
thuộc loại googlefc.MessageTypeEnum
.
Ví dụ: Đây là ví dụ về việc sử dụng googlefc.controlledMessagingFunction
để
chỉ chặn phân phát Offerwall cho người đăng ký mà không chặn
loại thông báo:
<head>
<script>
// Define googlefc and the controlled messaging function on the Window.
window.googlefc = window.googlefc || {};
googlefc.controlledMessagingFunction = async (message) => {
// Determine if the Offerwall should display or not.
const shouldDisplayOfferwall = await determineIfUserIsSubscriber();
const applicableMessageTypes = [];
if (!shouldDisplayOfferwall) {
// Do not show the Offerwall, but allow other message types to display.
applicableMessageTypes.push(window.googlefc.MessageTypeEnum.OFFERWALL);
message.proceed(false, applicableMessageTypes);
} else {
// Otherwise, show messages as usual.
message.proceed(true);
}
}
</script>
</head>
Tham chiếu đến hàng đợi gọi lại chung để thực thi không đồng bộ của
các cuộc gọi liên quan đến nhắn tin. Cách duy nhất được hỗ trợ để gọi bất kỳ hàm nào là
đang thêm vào callbackQueue
.
Vì các loại dữ liệu khác nhau có sẵn vào những thời điểm khác nhau, nên một hàm phải được thêm dưới dạng tệp ánh xạ, với một trong các chuỗi sau làm khoá và được thực thi dưới dạng giá trị.
Các phím được hỗ trợ:
Tên khoá | Cách sử dụng | Độ trễ tương đối |
---|---|---|
CONSENT_API_READY
|
Các hàm được đẩy vào hàng đợi gọi lại bằng khoá CONSENT_API_READY sẽ được thực thi khi API cho những khuôn khổ về sự đồng ý được hỗ trợ đã được xác định và có thể gọi. Từ thời điểm này trở đi, quá trình thực thi mọi hàm khoá CONSENT_API_READY được thêm vào sau đó sẽ đồng bộ. Vui lòng xem các phần về khung IAB để biết thông tin chi tiết theo từng khung.
|
Thấp |
CONSENT_DATA_READY
|
Các hàm được đẩy vào hàng đợi gọi lại bằng khoá CONSENT_DATA_READY sẽ được thực thi khi xác định được sự đồng ý của người dùng được thu thập theo khuôn khổ về sự đồng ý được hỗ trợ (từ lần thực thi trước đó hoặc sau khi người dùng tương tác với thông báo yêu cầu đồng ý). Từ thời điểm này trở đi, quá trình thực thi mọi hàm khoá CONSENT_DATA_READY được thêm vào sau đó sẽ đồng bộ.
|
Cao |
AD_BLOCK_DATA_READY
|
Các hàm được đẩy vào hàng đợi gọi lại bằng khoá AD_BLOCK_DATA_READY sẽ được thực thi khi dữ liệu chặn quảng cáo có sẵn trong luồng. Từ thời điểm này trở đi, quá trình thực thi mọi hàm khoá AD_BLOCK_DATA_READY được thêm vào sau đó sẽ đồng bộ.
|
Cao |
INITIAL_CCPA_DATA_READY
|
Các hàm được đẩy vào hàng đợi gọi lại bằng INITIAL_CCPA_DATA_READY sẽ được thực thi khi dữ liệu CPRA có sẵn trong quy trình. Lưu ý rằng mọi yêu cầu tiếp theo về dữ liệu theo CPRA phải được lấy bằng cách gọi trực tiếp API Quyền riêng tư của Hoa Kỳ (__uspapi ).
|
Phương tiện |
googlefc.CallbackQueue {!Object}
Tóm tắt phương thức:
Tên | Loại | Thông số | Loại dữ liệu trả về | Vai trò |
---|---|---|---|---|
push(data)
|
số |
data : Cặp khoá-giá trị với khoá là một trong các dữ liệu
loại tình trạng còn hàng và giá trị dưới dạng hàm JavaScript sẽ được thực thi.
Các khoá sẵn có dữ liệu được chấp nhận là CONSENT_API_READY ,
CONSENT_DATA_READY , AD_BLOCK_DATA_READY và
INITIAL_CCPA_DATA_READY .
|
Số lệnh đã thêm tính đến nay. Hàm này trả về độ dài hiện tại của mảng. | Thực thi hàm được truyền vào, theo thứ tự mà dữ liệu trở thành khả dụng, sau đó theo thứ tự thêm các hàm này vào hàng đợi. |
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
if (googlefc.getAdBlockerStatus() == googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER) {
// Handle a non-ad blocking user.
}
}
});
</script>
googlefc.AdBlockerStatusEnum {!Object<string, number>}
Thể hiện các trạng thái chặn quảng cáo của người dùng. Các tiểu bang khác nhau là:
googlefc.AdBlockerStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// The user was running an extension level ad blocker.
EXTENSION_AD_BLOCKER: 1,
// The user was running a network level ad blocker.
NETWORK_LEVEL_AD_BLOCKER: 2,
// The user was not blocking ads.
NO_AD_BLOCKER: 3,
};
googlefc.AllowAdsStatusEnum {!Object<string, number>}
Thể hiện các trạng thái cho phép quảng cáo bị chặn quảng cáo của người dùng. Sự khác biệt các trạng thái là:
googlefc.AllowAdsStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// User is currently using an ad blocker, was never using an ad blocker, or
// allowed ads, but not because they saw the Privacy & messaging message.
ADS_NOT_ALLOWED: 1,
// User is no longer using an ad blocker after seeing the ad blocking message.
ADS_ALLOWED: 2,
};
googlefc.ccpa.InitialCcpaStatusEnum{!Object<string, number>}
Thể hiện các trạng thái cho phép quảng cáo bị chặn quảng cáo của người dùng. Sự khác biệt các trạng thái là:
googlefc.ccpa.InitialCcpaStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// CPRA does not apply to this user.
CCPA_DOES_NOT_APPLY: 1,
// CPPA applies to this user, and the user has not opted out yet.
NOT_OPTED_OUT: 2,
// CPPA applies to this user, and the user has opted out.
OPTED_OUT: 3,
};
googlefc.ccpa.overrideDnsLink{undefined|boolean}
Đặt trường này thành true để ẩn đường liên kết Không bán mặc định và sử dụng tuỳ chỉnh liên kết Không bán.
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
// Signals that the default DNS link will be overridden.
googlefc.ccpa.overrideDnsLink = true;
</script>
Phương thức: nội dung giải thích và ví dụ
googlefc.getConsentStatus(): {number}
googlefc.getConsentedProviderIds(): {!Array<string>}
- Hàm này hiện luôn trả về một danh sách trống khi được gọi.
googlefc.showRevocationMessage(): {undefined}
Xoá bản ghi đồng ý hiện tại và hiển thị thông báo yêu cầu đồng ý
áp dụng cho người dùng này. Khoá phải được chỉ định cho hàm này là
CONSENT_DATA_READY
.
Ví dụ:
<button type="button" onclick="googlefc.callbackQueue.push({'CONSENT_DATA_READY': () => googlefc.showRevocationMessage()});">
Click here to revoke
</button>
googlefc.getAdBlockerStatus(): {number}
Trả về một giá trị trong AdBlockerStatusEnum tuỳ thuộc vào trạng thái chặn quảng cáo
của người dùng. Khoá phải được chỉ định cho hàm này là
AD_BLOCK_DATA_READY
.
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
switch (googlefc.getAdBlockerStatus()) {
case googlefc.AdBlockerStatusEnum.EXTENSION_LEVEL_AD_BLOCKER:
case googlefc.AdBlockerStatusEnum.NETWORK_LEVEL_AD_BLOCKER:
// Insert handling for cases where the user is blocking ads.
break;
case googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER:
// Insert handling for cases where the user is not blocking ads.
break;
case googlefc.AdBlockerStatusEnum.UNKNOWN:
// Insert handling for unknown cases.
break;
}
}
});
</script>
googlefc.getAllowAdsStatus(): {number}
Trả về một giá trị trong AllowAdsStatusEnum
tuỳ thuộc vào trạng thái cho phép quảng cáo của
người dùng. Khoá phải được chỉ định cho hàm này là
AD_BLOCK_DATA_READY
.
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
switch (googlefc.getAllowAdsStatus()) {
case googlefc.AllowAdsStatusEnum.ADS_NOT_ALLOWED:
// Insert handling for cases where the user has not allowed ads.
// The user may have never been an ad blocker.
break;
case googlefc.AllowAdsStatusEnum.ADS_ALLOWED:
// Insert handling for cases where the user saw the ad blocking
// message and allowed ads on the site.
break;
case googlefc.AllowAdsStatusEnum.UNKNOWN:
// Insert handling for unknown cases.
break;
}
}
});
</script>
googlefc.ccpa.getInitialCcpaStatus(): {number}
Trả về một giá trị trong InitialCcpaStatusEnum
tuỳ thuộc vào trạng thái của CPRA
người dùng. Khoá phải được chỉ định cho hàm này là
INITIAL_CCPA_DATA_READY
. Lưu ý rằng mọi yêu cầu tiếp theo đối với dữ liệu theo CPRA phải
lấy được bằng cách gọi trực tiếp API quyền riêng tư của Hoa Kỳ (__uspapi
).
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'INITIAL_CCPA_DATA_READY':
() => {
switch (googlefc.ccpa.getInitialCcpaStatus()) {
case googlefc.ccpa.InitialCcpaStatusEnum.CCPA_DOES_NOT_APPLY:
// Insert handling for cases where the user is not CPRA eligible.
break;
case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
// Insert handling for cases where the user is CPRA eligible and has
// not opted out.
break;
case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
// Insert handling for cases where the user is CPRA eligible and has
// opted out.
break;
}
}
});
</script>
googlefc.ccpa.openConfirmationDialog(function(boolean)): {undefined}
Mở hộp thoại xác nhận theo CPRA nếu đường liên kết mặc định Không bán là
bị ghi đè. Sau khi người dùng tương tác với hộp thoại xác nhận,
hàm callback được gọi bằng true
nếu người dùng quyết định không tham gia, và
false
nếu không.
Ví dụ:
<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
// Insert handling for user opt-out status here.
}
// Invoke the CPRA confirmation dialog when the user clicks the link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
"click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>
Sử dụng các giải pháp quản lý sự đồng ý của Google với Khuôn khổ về tính minh bạch và sự đồng ý (TCF) phiên bản 2 của Cục Quảng cáo tương tác (IAB) theo Quy định chung về việc bảo vệ dữ liệu (GDPR)
Trường hợp bạn đang sử dụng các giải pháp quản lý sự đồng ý của Google để thu thập sự đồng ý theo GDPR theo khuôn khổ TCF phiên bản 2 của IAB, bạn nên sử dụng TCF phiên bản 2 của IAB .
Bạn có thể sử dụng CONSENT_API_READY
để đảm bảo rằng các lệnh gọi lại tương ứng chỉ được gọi khi
API TCF phiên bản 2 của IAB được xác định trên trang này. Bạn nên sử dụng kết hợp các tham số này
với
'addEventListener'
của API TCF phiên bản 2 của IAB.
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback using the CONSENT_API_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
() => __tcfapi('addEventListener', 2.2, (data, success) => {
// Do something with consent data value; this callback may be invoked
// multiple times as user completes consent flow.
})
});
</script>
Bạn có thể sử dụng CONSENT_DATA_READY
để đảm bảo các lệnh gọi lại tương ứng được gọi
chỉ khi hệ thống thu thập được sự đồng ý của người dùng và có thể truy cập thông qua API TCF phiên bản 2 của IAB.
Bạn có thể sử dụng tính năng này cùng với
'addEventListener'
Command – dữ liệu được cung cấp trong lần gọi đầu tiên của lệnh gọi lại mà bạn đã cung cấp
sẽ chứa lựa chọn đồng ý của người dùng (miễn là TCF phiên bản 2 áp dụng cho lựa chọn này
người dùng). Xin lưu ý rằng với bản phát hành TCF phiên bản 2.2,
'getTCData'
hiện không được dùng nữa.
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback using the CONSENT_DATA_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __tcfapi('addEventListener', 2.2, (data, success) => {
// Do something with consent data value; this callback may be invoked
// multiple times if user consent selections change.
})
});
</script>
Sử dụng các giải pháp quản lý sự đồng ý của Google thông qua khuôn khổ GPP của IAB cho CPRA
Nếu bạn đang sử dụng các giải pháp quản lý sự đồng ý của Google để thu thập lựa chọn không tham gia CPRA trong khung GPP của IAB, bạn nên sử dụng IAB GPP .
Do quy định về CPRA không tham gia, bạn có thể sử dụng
CONSENT_API_READY
hoặc
Lệnh gọi lại CONSENT_DATA_READY
khoá hàng đợi để đảm bảo rằng API GPP của IAB có thể gọi và trả về dữ liệu về sự đồng ý
tại thời điểm gọi lại.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __uspapi('getUSPData', 1, (data, success) => {
// Do something with consent data value.
})
});
</script>
Sử dụng các giải pháp quản lý sự đồng ý của Google với khuôn khổ GPP của IAB cho CPRA thông qua một đường liên kết tuỳ chỉnh Không bán
Nếu bạn đang sử dụng các giải pháp quản lý sự đồng ý của Google để thu thập lựa chọn không tham gia CPRA
theo khuôn khổ GPP của IAB, bạn có thể cung cấp đường liên kết tuỳ chỉnh Không bán
bằng cách gắn cờ googlefc.ccpa.overrideDnsLink
thành true
.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Signals that the default DNS link will be overridden.
window.googlefc.ccpa.overrideDnsLink = true;
// Register the callback for the initial CPRA data.
window.googlefc.callbackQueue.push({
'INITIAL_CCPA_DATA_READY': () => {
if (googlefc.ccpa.getInitialCcpaStatus() ===
googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT) {
// TODO: Display custom CPRA Do Not Sell link here.
}
}
});
</script>
Điều này đảm bảo rằng đường liên kết Không bán mặc định sẽ không xuất hiện. Xin lưu ý rằng bạn chịu trách nhiệm hiển thị đường liên kết Không bán của riêng bạn để tuân thủ với CPRA. Sau đó, bạn cần xử lý tương tác của người dùng bằng tuỳ chọn Không Bán đường liên kết bằng cách gọi hộp thoại xác nhận CPRA.
<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
if (userOptedOut) {
// TODO: Hide custom CPRA Do Not Sell link here.
}
}
// Invoke the CPRA confirmation dialog when the user clicks the link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
"click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>