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 thẻ Quyền riêng tư và thông báo cung cấp. Với tính năng này, bạn có thể:
- chặn gửi thông báo cho người dùng bất kỳ
- truy vấn trạng thái chặn quảng cáo của người dùng
- hiển thị một điểm truy cập để cho phép người dùng thu hồi sự đồng ý theo quy định của Liên minh Châu Âu
- ghi đè đường liên kết mặc định Không bán theo quy định của các tiểu bang tại Hoa Kỳ
- tải thẻ Google Ads và Google Analytics theo điều kiện dựa trên trạng thái Chế độ đồng ý của Google theo quy định của Liên minh Châu Âu đối với người dùng
và hơn thế nữa.
Bạn cũng có thể sử dụng các công cụ này để thu thập sự đồng ý của người dùng bằng các giao thức theo tiêu chuẩn ngành:
- Sự đồng ý theo GDPR bằng cách sử dụng quy cách TCF phiên bản 2 của IAB
- Lựa chọn không tham gia theo quy định của các tiểu bang tại Hoa Kỳ bằng quy cách GPP của IAB
Trong những trường hợp này, trạng thái đồng ý được truyền đạt 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 theo một số cách:
- Trong hầu hết các trường hợp, bạn hoàn toàn không cần phải gắn thẻ lại – Thẻ nhà xuất bản của Google hoặc thẻ AdSense hiện có của bạn sẽ triển khai thông báo cho người dùng sau khi thông báo được xuất bản 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 thêm thẻ chặn quảng cáo vào trang của mình một cách rõ ràng. Hãy xem hướng dẫn gắn thẻ của Ad Manager và AdSense để biết thêm thông tin.
googlefc là không gian tên chung mà chức năng nhắn tin cho người dùng sử dụng cho API của chức năng này trên JavaScript Window.
Tóm tắt về trường
| Tên | Loại | Định nghĩa |
|---|---|---|
googlefc.controlledMessagingFunction
|
function(!Object) | Một hàm xác định xem có nên tiếp tục gửi thông báo 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 của người dùng. |
googlefc.CallbackQueue
|
!Object | Loại đối tượng hàng đợi gọi lại. |
googlefc.AdBlockerStatusEnum
|
!Object<string, number> | Một enum để biểu thị trạng thái trình chặn quảng cáo của người dùng. |
googlefc.AllowAdsStatusEnum
|
!Object<string, number> | Một enum để thể hiện trạng thái cho phép quảng cáo của người dùng. |
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum
|
!Object<string, number> | Một enum để thể hiện trạng thái chọn không tham gia ban đầu của người dùng ở các tiểu bang của Hoa Kỳ. Việc này sẽ tính đến tiểu bang của Hoa Kỳ nơi người dùng sinh sống. |
googlefc.GoogleFcConsentModeUserStatus
|
!Object |
Kiểu dữ liệu trả về cho googlefc.getGoogleConsentModeValues.
|
googlefc.ConsentModePurposeStatusEnum
|
!Object<string, number> | Một enum để thể hiện quyết định của người dùng cuối cho mục đích của chế độ đồng ý. |
googlefc.usstatesoptout.overrideDnsLink
|
undefined|boolean | Một boolean có thể được đặt thành true để sử dụng đường liên kết Không bán hoặc chia sẻ tuỳ chỉnh của riêng bạn. |
googlefc.ccpa.InitialCcpaStatusEnum
Cũ. Ưu tiên googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.
|
!Object<string, number> | Một enum để thể hiện trạng thái ban đầu của người dùng theo quy định của tiểu bang ở Hoa Kỳ. |
googlefc.ccpa.overrideDnsLink
Phiên bản cũ. Ưu tiên googlefc.usstatesoptout.overrideDnsLink.
|
undefined|boolean | Một boolean có thể được đặt thành true để sử dụng đường liên kết Không bán hoặc chia sẻ tuỳ chỉnh của riêng bạn. |
Tóm tắt phương thức
| Tên | Kiểu dữ liệu trả về | Định nghĩa |
|---|---|---|
googlefc.showRevocationMessage()
|
chưa xác định |
Xoá bản ghi về sự đồng ý và tải lại tập lệnh googlefc để hiển thị 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.usstatesoptout.getInitialUsStatesOptOutStatus()
|
số |
Trả về một giá trị trong InitialUsStatesOptOutStatusEnum tuỳ thuộc vào trạng thái chọn không tham gia ban đầu của người dùng theo quy định của tiểu bang tại Hoa Kỳ. Điều này có tính đến quy định áp dụng cho người dùng dựa trên vị trí hiện tại của họ.
|
googlefc.usstatesoptout.openConfirmationDialog(function(boolean))
|
chưa xác định | Mở hộp thoại xác nhận chọn không tham gia theo quy định của các tiểu bang ở Hoa Kỳ nếu đường liên kết mặc định Đừng bán hoặc chia sẻ bị ghi đè. |
googlefc.getGoogleConsentModeValues()
|
!Object |
Trả về một đối tượng googlefc.GoogleFcConsentModeUserStatus chứa các giá trị hiện tại của chế độ đồng ý cho người dùng,
mỗi giá trị cho một mục đích của chế độ đồng ý hiện có.
|
googlefc.ccpa.getInitialCcpaStatus()
Cũ. Ưu tiên googlefc.usstatesoptout.getInitialUsStatesOptOutStatus().
|
số |
Trả về một giá trị trong InitialCcpaStatusEnum tuỳ thuộc vào trạng thái chọn không tham gia ban đầu của người dùng theo quy định của tiểu bang tại Hoa Kỳ.
|
googlefc.ccpa.openConfirmationDialog(function(boolean))
Cũ. Ưu tiên googlefc.usstatesoptout.openConfirmationDialog().
|
chưa xác định | Mở hộp thoại xác nhận chọn không tham gia theo quy định của tiểu bang Hoa Kỳ nếu đường liên kết mặc định Không bán hoặc chia sẻ bị ghi đè. |
Kiểm thử và gỡ lỗi trên trang web của bạn
Công cụ Quyền riêng tư và thông báo cung cấp chức năng gỡ lỗi và thử nghiệm, giúp bạn xem giao diện của các thông báo cụ thể, loại thông báo phụ hoặc tổ hợp thông báo trên trang web thực tế của bạn.
Điều kiện tiên quyết:
- (Các) thông báo mà bạn muốn xem trước phải được xuất bản lên trang web mà bạn đang thử nghiệm
Bạn có thể xem bản xem trước trực tiếp trên trang web của mình bằng cách sử dụng các tham số URL gỡ lỗi sau:
| Thông số gỡ lỗi | Giá trị cho 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 về lựa chọn từ chối theo quy định của các tiểu bang ở Hoa Kỳ), gdpr (Thông báo yêu cầu đồng ý theo GDPR), monetization (Thông báo Offerwall), usfl (Thông báo về lựa chọn từ chối theo quy định của các tiểu bang ở Hoa Kỳ, dành riêng cho Florida), usnat (Thông báo về lựa chọn từ chối theo quy định của các tiểu bang ở Hoa Kỳ, tất cả các tiểu bang được hỗ trợ ngoại trừ Florida; tương đương với ccpa) |
Sau đây là 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 về lựa chọn không tham gia theo quy định của các tiểu bang tại Hoa Kỳ –
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: nội dung giải thích và ví dụ
googlefc.controlledMessagingFunction {function(!Object)}
Một hàm xác định xem có nên hiển thị thông báo hay không. Bạn có thể sử dụng tính năng này để chặn việc hiển thị thông báo theo các điều kiện do nhà xuất bản chỉ định, chẳng hạn 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 tải, thông báo 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 thông báo tiếp tục như bình thường, trong khi gọi message.proceed(false) ngă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 hàm không đồng bộ determineIfUserIsSubscriber() để kiểm tra xem người dùng đã đăng nhập có phải là người đăng ký hay không.
<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>
Sau đâ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 những 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, tính năng này còn có một phần mở rộng cho phép nhà xuất bản chỉ định rằng chỉ nên chặn một số loại thông báo cụ thể. Sử dụng tiện ích tính năng này để chặn các loại thông báo cụ thể mà không chặn các loại thông báo khác.
Bạn có thể đạt được tính năng nhắn tin có kiểm soát theo loại thông báo bằng cách truyền một tham số bổ sung đến message.proceed(), một Array thuộc loại googlefc.MessageTypeEnum.
Ví dụ: Đây là ví dụ về cách sử dụng googlefc.controlledMessagingFunction để chỉ chặn phân phát Offerwall cho người đăng ký mà không chặn các loại thông báo khác:
<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ác lệnh gọi liên quan đến thông báo. Cách duy nhất được hỗ trợ để gọi bất kỳ hàm nào là thêm hàm đó vào callbackQueue.
Vì các loại dữ liệu khác nhau sẽ có sẵn vào những thời điểm khác nhau, nên bạn phải thêm một hàm dưới dạng bản đồ, trong đó một trong các chuỗi sau đây là khoá và hàm cần thực thi là giá trị.
Các khoá được hỗ trợ:
| Tên khóa | 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 các API cho khung đồng ý được hỗ trợ được xác định và có thể gọi. Kể từ thời điểm này, việc thực thi mọi hàm có khoá CONSENT_API_READY được thêm vào sau đó sẽ diễn ra đồng bộ. Hãy xem các phần về khung của IAB để biết thông tin chi tiết về 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 biết được sự đồng ý của người dùng được thu thập theo một khung yêu cầu đồng ý được hỗ trợ (từ mộ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 ý). Kể từ thời điểm này, việc thực thi mọi hàm có khoá CONSENT_DATA_READY được thêm vào sau đó sẽ diễn ra đồ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 trình chặn quảng cáo có sẵn trong luồng. Kể từ thời điểm này, việc thực thi mọi hàm có khoá AD_BLOCK_DATA_READY được thêm vào sau đó sẽ đồng bộ.
|
Cao |
CONSENT_MODE_DATA_READY
|
Các hàm được đẩy vào hàng đợi gọi lại bằng khoá CONSENT_MODE_DATA_READY sẽ được thực thi khi dữ liệu [chế độ đồng ý](https://support.google.com/google-ads/answer/10000067) của Google (để sử dụng với thẻ Google Ads và Analytics) có sẵn trong luồng. Sau khi dữ liệu về chế độ đồng ý đã sẵn sàng, bạn có thể truy cập vào các giá trị của chế độ đồng ý bất cứ lúc nào bằng cách sử dụng googlefc.getGoogleConsentModeValues.
|
Trung bình |
INITIAL_US_STATES_OPT_OUT_DATA_READY
|
Các hàm được đẩy vào hàng đợi gọi lại bằng khoá INITIAL_US_STATES_OPT_OUT_DATA_READY sẽ được thực thi khi dữ liệu về quy định của các tiểu bang tại Hoa Kỳ có sẵn trong quy trình. Xin lưu ý rằng mọi yêu cầu tiếp theo về dữ liệu theo quy định của các tiểu bang tại Hoa Kỳ đều phải được thực hiện bằng cách gọi trực tiếp API GPP (__gpp).
|
Trung bình |
INITIAL_CCPA_DATA_READY
|
Khoá cũ cho quy định của các tiểu bang tại Hoa Kỳ. Ưu tiên INITIAL_US_STATES_OPT_OUT_DATA_READY. Các hàm được đẩy vào hàng đợi gọi lại bằng khoá INITIAL_CCPA_DATA_READY sẽ được thực thi khi dữ liệu về quy định của các tiểu bang tại Hoa Kỳ có sẵn trong luồng. Xin lưu ý rằng mọi yêu cầu tiếp theo về dữ liệu theo quy định của các tiểu bang tại Hoa Kỳ đều phải được thực hiện bằng cách gọi trực tiếp API GPP (__gpp).
|
Trung bình |
googlefc.CallbackQueue {!Object}
Tóm tắt phương thức:
| Tên | Loại | Tham số | Kiểu dữ liệu trả về | Vai trò |
|---|---|---|---|---|
push(data)
|
số |
data: Một cặp khoá-giá trị, trong đó khoá là một trong các loại dữ liệu có sẵn và giá trị là một hàm JavaScript cần thực thi.
Các khoá về tình trạng còn hàng của dữ liệu được chấp nhận là CONSENT_API_READY,
CONSENT_DATA_READY, AD_BLOCK_DATA_READY,
INITIAL_US_STATES_OPT_OUT_DATA_READY,
CONSENT_MODE_DATA_READY và (cũ)
INITIAL_CCPA_DATA_READY.
|
Số lượng lệnh đã thêm cho đến nay. Thao tác này sẽ 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ở nên có sẵn, sau đó theo thứ tự mà các hàm này được thêm vào hàng đợi. |
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
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>}
Biểu thị các trạng thái chặn quảng cáo của người dùng. Các trạng thái 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>}
Đại diện cho các trạng thái cho phép quảng cáo của trình chặn quảng cáo khác nhau của người dùng. Có các trạng thái sau:
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.usstatesoptout.InitialUsStatesOptOutStatusEnum{!Object<string, number>}
Đại diện cho các trạng thái chọn không tham gia theo quy định của các tiểu bang tại Hoa Kỳ của người dùng. Các trạng thái khác nhau bao gồm:
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum = {
// Something failed, status unknown.
UNKNOWN: 0,
// No US state regulation applies to this user.
DOES_NOT_APPLY: 1,
// A US state regulation applies to this user, and the user has not opted out yet.
NOT_OPTED_OUT: 2,
// A US state regulation applies to this user, and the user has opted out.
OPTED_OUT: 3,
};
googlefc.GoogleFcConsentModeUserStatus{!Object}
Loại đối tượng được googlefc.getGoogleConsentModeValues trả về.
interface GoogleFcConsentModeUserStatus {
// End user consent decision value for the ad_storage consent mode purpose.
adStoragePurposeConsentStatus: number;
// End user consent decision value for the ad_user_data consent mode purpose.
adUserDataPurposeConsentStatus: number;
// End user consent decision value for the ad_personalization consent mode purpose.
adPersonalizationPurposeConsentStatus: number;
// End user consent decision value for the analytics_storage consent mode purpose.
analyticsStoragePurposeConsentStatus: number;
}
Giá trị của mỗi trường là một số tương ứng với một giá trị enum googlefc.ConsentModePurposeStatusEnum.
googlefc.ConsentModePurposeStatusEnum{!Object<string, number>}
Biểu thị các giá trị sự đồng ý của người dùng cuối có thể có cho một mục đích của chế độ đồng ý. Các giá trị khác nhau là:
googlefc.ConsentModePurposeStatusEnum = {
// Indicates either an error state, or that consent mode data is not ready
// yet.
UNKNOWN: 0,
// Consent is granted for the given consent mode purpose.
GRANTED: 1,
// Consent is denied for the given consent mode purpose.
DENIED: 2,
// Consent is not applicable for the given consent mode purpose.
NOT_APPLICABLE: 3,
// The consent mode purpose has not been configured for use in the Privacy &
// messaging UI.
NOT_CONFIGURED: 4
};
googlefc.usstatesoptout.overrideDnsLink{undefined|boolean}
Đặt trường này thành true để ẩn đường liên kết Không bán hoặc chia sẻ mặc định và sử dụng đường liên kết Không bán hoặc chia sẻ tuỳ chỉnh của riêng bạn. Xin lưu ý rằng chức năng này chỉ được hỗ trợ trong Ad Manager.
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
// Signals that the default DNS link will be overridden.
googlefc.usstatesoptout.overrideDnsLink = true;
</script>
googlefc.ccpa.InitialCcpaStatusEnum{!Object<string, number>}
Đại diện cho các trạng thái chọn không tham gia theo quy định của các tiểu bang tại Hoa Kỳ của người dùng. Các trạng thái khác nhau bao gồm:
googlefc.ccpa.InitialCcpaStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// No US state regulation applies to this user.
CCPA_DOES_NOT_APPLY: 1,
// A US state regulation applies to this user, and the user has not opted out yet.
NOT_OPTED_OUT: 2,
// A US state regulation 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 hoặc chia sẻ mặc định và sử dụng đường liên kết Không bán hoặc chia sẻ tuỳ chỉnh của riêng bạn. Xin lưu ý rằng nếu đặt trường này thành true, bạn có trách nhiệm hiển thị đường liên kết Không bán hoặc chia sẻ trên trang web của mình. Bạn nên sử dụng trường này cùng với openConfirmationDialog. Ngoài ra,
bạn chỉ có thể sử dụng đường liên kết tuỳ chỉnh "Không bán hoặc chia sẻ" cho chức năng thông báo theo
"Quy định của các tiểu bang tại Hoa Kỳ" trong Ad Manager.
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>}
- Giờ đây, phương thức này luôn trả về một danh sách trống khi được gọi.
googlefc.showRevocationMessage(): {undefined}
Xoá bản ghi hiện tại về sự đồng ý theo quy định của Liên minh Châu Âu (nếu có) và hiển thị lại thông báo theo quy định của Liên minh Châu Âu để cho phép người dùng thay đổi quyết định đồng ý của họ.
Ví dụ 1: Ví dụ đơn giản về cách thiết lập một đường liên kết sẽ hiển thị thông báo thu hồi khi người dùng nhấp vào:
<a href="javascript:window.googlefc.showRevocationMessage();">Privacy and cookie settings</a>
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
() => {
// Update the revocation link so that it shows on the page.
const revocationLink = document.getElementById('revocation-link');
revocationLink.style.display = 'block';
}
});
</script>
Ví dụ 2: Nếu chỉ muốn đường liên kết xuất hiện khi các quy định của Liên minh Châu Âu áp dụng cho người dùng hiện tại, thì bạn có thể sử dụng hàng đợi lệnh gọi lại googlefc với API TCF để cập nhật có điều kiện cách hiển thị của nút dựa trên giá trị gdprApplies sau khi xác định. Để làm việc này, hãy sử dụng khoá API CONSENT_API_READY.
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
// Specifying "0" for the version parameter will result in the API call
// using the latest version of the TCF spec.
() => __tcfapi('addEventListener', 0, (tcdata, success) => {
const revocationLink = document.getElementById('revocation-link');
if (!success || !tcdata) {
// Something went wrong, don't show the revocation link.
revocationLink.style.display = 'none';
}
else if (tcdata.gdprApplies) {
revocationLink.style.display = 'block';
} else {
// GDPR does not apply so don't show the revocation link.
revocationLink.style.display = 'none';
}
})
});
</script>
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á cần đượ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.usstatesoptout = window.googlefc.usstatesoptout || {};
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á cần đượ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.usstatesoptout = window.googlefc.usstatesoptout || {};
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.usstatesoptout.getInitialUsStatesOptOutStatus(): {number}
Trả về một giá trị trong InitialUsStatesOptOutStatusEnum tuỳ thuộc vào trạng thái chọn không tham gia theo quy định của tiểu bang tại Hoa Kỳ của người dùng. Khoá cần được chỉ định cho hàm này là INITIAL_US_STATES_OPT_OUT_DATA_READY. Xin lưu ý rằng mọi yêu cầu tiếp theo về dữ liệu theo quy định của các tiểu bang tại Hoa Kỳ đều phải được thực hiện bằng cách gọi trực tiếp API GPP (__gpp).
Nếu đang ghi đè đường liên kết Không bán hoặc chia sẻ, bạn có thể sử dụng phương thức này để xác định thời điểm đưa đường liên kết vào trang web của mình.
Ví dụ:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {}
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'INITIAL_US_STATES_OPT_OUT_DATA_READY':
() => {
switch (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus()) {
case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.DOES_NOT_APPLY:
// Insert handling for cases where no US state regulation applies to
// the user.
break;
case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT:
// Insert handling for cases where a US state regulation applies to
// the user, and the user has not opted out.
break;
case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.OPTED_OUT:
// Insert handling for cases where a US state regulation applies to the
// user, and the user has opted out.
break;
}
}
});
</script>
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)): {undefined}
Mở hộp thoại xác nhận chọn không tham gia theo quy định của tiểu bang Hoa Kỳ nếu đường liên kết Không bán mặc định 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 cung cấp sẽ được gọi bằng true nếu người dùng quyết định chọn không tham gia,
và false nếu không.
Ví dụ:
<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
// Insert handling for user opt-out status here.
}
// Invoke the US state regulations confirmation dialog when the user clicks the
// link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
"click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>
googlefc.getGoogleConsentModeValues(): {!Object}
Trả về một đối tượng
googlefc.GoogleFcConsentModeUserStatus
chứa các giá trị hiện tại của từng mục đích của chế độ đồng ý, dựa trên
quyết định đồng ý của người dùng.
Hãy xem bài viết Sử dụng các giải pháp quản lý sự đồng ý của Google có hỗ trợ chế độ đồng ý theo quy định của Liên minh Châu Âu để biết cách sử dụng dự kiến.
googlefc.ccpa.getInitialCcpaStatus(): {number}
Trả về một giá trị trong InitialCcpaStatusEnum tuỳ thuộc vào trạng thái chọn không tham gia theo quy định của tiểu bang tại Hoa Kỳ của người dùng. Khoá cần được chỉ định cho hàm này là INITIAL_CCPA_DATA_READY. Xin lưu ý rằng mọi yêu cầu tiếp theo về dữ liệu theo quy định của tiểu bang Hoa Kỳ đều phải được thực hiện bằng cách gọi trực tiếp API GPP (__gpp).
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 no US state regulation applies to
// the user.
break;
case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
// Insert handling for cases where a US state regulation applies to
// the user, and the user has not opted out.
break;
case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
// Insert handling for cases where a US state regulation applies to the
// user, and the user has opted out.
break;
}
}
});
</script>
googlefc.ccpa.openConfirmationDialog(function(boolean)): {undefined}
Mở hộp thoại xác nhận chọn không tham gia theo quy định của tiểu bang Hoa Kỳ nếu đường liên kết Không bán mặc định 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 cung cấp sẽ được gọi bằng true nếu người dùng quyết định chọn không sử dụng và false nếu người dùng quyết định chọn sử dụng.
Ví dụ:
<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
// Insert handling for user opt-out status here.
}
// Invoke the US state regulations 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 theo 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) cho Quy định chung về việc bảo vệ dữ liệu (GDPR)
Nếu đ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ổ 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), thì bạn nên sử dụng API TCF phiên bản 2 của IAB.
Bạn có thể sử dụng khoá hàng đợi gọi lại 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 Cục Quảng cáo tương tác (IAB) được xác định trên trang. Bạn nên sử dụng lệnh này cùng với lệnh '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 khoá hàng đợi gọi lại CONSENT_DATA_READY
để đảm bảo rằng các lệnh gọi lại tương ứng chỉ được gọi khi sự đồng ý của người dùng được thu thập và có thể truy cập bằng API TCF phiên bản 2 của IAB.
Bạn có thể sử dụng lệnh này cùng với lệnh 'addEventListener'. Dữ liệu được cung cấp trong lệnh gọi lại đầu tiên mà bạn cung cấp sẽ chứa các lựa chọn về sự đồng ý của người dùng (miễn là TCF phiên bản 2 áp dụng cho người dùng này). Xin lưu ý rằng khi TCF phiên bản 2.2 ra mắt, lệnh 'getTCData' hiện không còn đượ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 có hỗ trợ chế độ đồng ý theo quy định của Liên minh Châu Âu
Các giải pháp quản lý sự đồng ý của Google có thể diễn giải lựa chọn đồng ý của người dùng theo quy định của Liên minh Châu Âu cho Chế độ đồng ý của Google (tìm hiểu thêm trong Trung tâm trợ giúp).
Bạn có thể triển khai chế độ đồng ý ở chế độ cơ bản hoặc chế độ nâng cao, như mô tả trong tài liệu về Google Ads và Analytics. Bạn nên tham khảo ý kiến của bộ phận pháp lý về chế độ đồng ý cần triển khai để đáp ứng các yêu cầu pháp lý.
Chế độ đồng ý nâng cao được hỗ trợ theo mặc định; sau khi bật Chế độ đồng ý trong giao diện người dùng Quyền riêng tư và thông báo, bạn không cần làm gì thêm.
Để triển khai chế độ đồng ý cơ bản bằng các giải pháp quản lý sự đồng ý của Google,
bạn có thể sử dụng khoá hàng đợi gọi lại CONSENT_MODE_DATA_READY để tải
thẻ Google Ads và Analytics theo điều kiện sau khi có dữ liệu về chế độ đồng ý.
Dữ liệu về chế độ đồng ý sẽ có sẵn sau khi Funding Choices xác định rằng chế độ đồng ý không áp dụng cho yêu cầu này (ví dụ: vì các quy định của Liên minh Châu Âu không áp dụng cho yêu cầu này) hoặc sau khi người dùng đưa ra quyết định đồng ý theo quy định của Liên minh Châu Âu. Bạn nên tham khảo ý kiến của bộ phận pháp chế về các tiêu chí cần sử dụng để xác định xem thẻ của bạn có thể được tải hay không sau khi chế độ đồng ý được áp dụng.
Ví dụ: để tải thẻ sau khi có dữ liệu về chế độ đồng ý, bất kể quyết định đồng ý của người dùng cuối:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Helper function to load Google Ads/Analytics tags once consent mode data is
// ready.
const loadGtagScript = () => {
// Load gtag.js script - code taken from
// https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
var gtagScript = document.createElement('script');
gtagScript.async = true;
gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(gtagScript,firstScript);
}
// Queue the callback using the CONSENT_MODE_DATA_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_MODE_DATA_READY':
() => {
loadGtagScript();
},
});
</script>
Bạn cũng có thể sử dụng API googlefc.getGoogleConsentModeValues() để lấy giá trị của từng mục đích trong chế độ đồng ý khi có dữ liệu về chế độ đồng ý.
API này trả về một đối tượng GoogleFcConsentModeUserStatus chứa một trường cho mỗi mục đích của chế độ đồng ý được hỗ trợ và giá trị của mỗi trường là một giá trị enum cho biết giá trị của mục đích đó của chế độ đồng ý.
Ví dụ: bạn có thể sử dụng googlefc.getGoogleConsentModeValues() để chỉ bỏ chặn thẻ Google Ads và Analytics khi:
- người dùng cuối đưa ra quyết định đồng ý theo quy định của Liên minh Châu Âu, dẫn đến việc cấp sự đồng ý cho tất cả mục đích của chế độ đồng ý, hoặc
- tất cả mục đích của chế độ đồng ý đều không áp dụng cho yêu cầu hiện tại (điều này có thể xảy ra nếu các quy định của Liên minh Châu Âu không áp dụng hoặc chế độ đồng ý không được định cấu hình cho một hoặc nhiều mục đích trong phần Quyền riêng tư và thông báo).
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Helper function to determine whether Google Ads and Analytics tags can be
// unblocked. Returns true if all consent mode purposes are set to GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
const shouldUnblockConsentTags = (googleFcConsentModeStatus) => {
const allConsentModeValues = [
googleFcConsentModeStatus.adStoragePurposeConsentStatus,
googleFcConsentModeStatus.adUserDataPurposeConsentStatus,
googleFcConsentModeStatus.adPersonalizationPurposeConsentStatus,
googleFcConsentModeStatus.analyticsStoragePurposeConsentStatus
];
for (const consentModeValue of allConsentModeValues) {
switch (consentModeValue) {
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_UNKNOWN:
// Indicates either an error case or that consent mode data is not
// ready yet. Cannot unblock tags until consent data is ready and valid,
// so return false.
return false;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_GRANTED:
// Consent is granted for this consent mode purpose.
break;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_DENIED:
// Consent is denied for this consent mode purpose. Do not unblock tags.
return false;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_APPLICABLE:
// Consent mode does not apply for this purpose.
break;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_CONFIGURED:
// Consent mode not configured for this purpose.
// If you configured support for Ads purposes but not Analytics purposes in the
// Privacy & messaging UI, the value of `analyticsStoragePurposeConsentStatus` will
// always be set to NOT_CONFIGURED. If you do not enable any Consent Mode support
// in the Privacy & messaging UI, the values of all purposes will always be set to
// NOT_CONFIGURED.
break;
default:
console.log("Unexpected consent mode value encountered");
}
}
// If all prior checks pass, all consent mode values are either GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
return true;
};
// Helper function to load Google Ads/Analytics tags.
const loadGtagScript = () => {
// Load gtag.js script - code taken from
// https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
var gtagScript = document.createElement('script');
gtagScript.async = true;
gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(gtagScript,firstScript);
}
googlefc.callbackQueue.push({
CONSENT_MODE_DATA_READY: () => {
if (shouldUnblockConsentTags(googlefc.getGoogleConsentModeValues())) {
loadGtagScript();
}
},
});
</script>
Sử dụng các giải pháp quản lý sự đồng ý của Google cùng với khuôn khổ GPP của IAB theo quy định của các tiểu bang tại Hoa Kỳ
Nếu đang sử dụng các giải pháp quản lý sự đồng ý của Google để cung cấp thông báo chọn không tham gia theo quy định của các tiểu bang tại Hoa Kỳ cho người dùng cuối theo khuôn khổ GPP của IAB, thì bạn nên sử dụng API GPP của IAB.
Do tính chất chọn không tham gia của các quy định tại tiểu bang của Hoa Kỳ, bạn có thể sử dụng khoá hàng đợi gọi lại CONSENT_API_READY hoặc CONSENT_DATA_READY để đảm bảo rằng API GPP của IAB có thể gọi được và trả về dữ liệu của người dùng đã đồng ý tại thời điểm các lệnh gọi lại được gọi.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __gpp('ping', (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 theo khuôn khổ GPP của IAB cho các quy định của tiểu bang tại Hoa Kỳ bằng đường liên kết Đừng bán hoặc chia sẻ tuỳ chỉnh của riêng bạn
Nếu đang sử dụng các giải pháp quản lý sự đồng ý của Google để cung cấp thông báo chọn không tham gia theo quy định của các tiểu bang tại Hoa Kỳ cho người dùng cuối theo khuôn khổ GPP của IAB, thì bạn có thể cung cấp đường liên kết tuỳ chỉnh Không bán hoặc chia sẻ thông tin bằng cách đặt cờ googlefc.usstatesoptout.overrideDnsLink thành true.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Signals that the default DNS link will be overridden.
window.googlefc.usstatesoptout.overrideDnsLink = true;
// Register the callback for the initial US state regulations data.
window.googlefc.callbackQueue.push({
'INITIAL_US_STATES_OPT_OUT_DATA_READY': () => {
if (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() ===
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT) {
// TODO: Display custom Do Not Sell or Share link here.
}
}
});
</script>
Điều này đảm bảo rằng đường liên kết Không bán hoặc chia sẻ mặc định sẽ không hiển thị. Sau đó, bạn cần xử lý hoạt động tương tác của người dùng với đường liên kết Không bán hoặc chia sẻ tuỳ chỉnh bằng cách gọi hộp thoại xác nhận chọn không tham gia theo quy định của các tiểu bang tại Hoa Kỳ.
Xin lưu ý rằng khi sử dụng đường liên kết tuỳ chỉnh Không bán hoặc chia sẻ, bạn có trách nhiệm đảm bảo rằng đường liên kết của bạn tuân thủ các quy định của tiểu bang tại Hoa Kỳ. Ngoài ra, bạn chỉ có thể sử dụng đường liên kết tuỳ chỉnh "Không bán hoặc chia sẻ" cho chức năng thông báo theo "Quy định của các tiểu bang tại Hoa Kỳ" trong Ad Manager.
<script>
// This callback will be called when the user makes a US state regulations
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
if (userOptedOut) {
// TODO: Hide custom Do Not Sell or Share link here.
}
}
// Invoke the US state regulations opt-out confirmation dialog when the user
// clicks the link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
"click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>