Pengantar
API ini menyediakan alat untuk berinteraksi dengan pesan yang ditawarkan oleh tab pesan. Dengannya, Anda dapat:
- menyembunyikan pesan untuk pengguna tertentu
- membuat kueri status pemblokiran iklan pengguna
- izinkan pengguna mencabut izin (jika berlaku)
Anda juga dapat menggunakan alat ini untuk mengumpulkan izin pengguna menggunakan beberapa standar industri protokol:
- Izin GDPR menggunakan spesifikasi TCF v2 IAB
- Memilih tidak ikut CPRA menggunakan spesifikasi CPRA GPP IAB
Dalam kasus ini, status izin dikomunikasikan melalui API tersebut.
Anda dapat men-deploy fungsi pesan pengguna ini di situs Anda dalam beberapa langkah cara:
- Untuk sebagian besar kasus, Anda tidak perlu mengulangi pemberian tag sama sekali - paket Google Ads Penerbit Beri tag atau Tag AdSense di-deploy pesan pengguna setelah pesan dipublikasikan di produk yang relevan.
- Jika menggunakan pesan pemulihan pemblokiran iklan, Anda harus menambahkan iklan memblokir tag ke halaman Anda secara eksplisit. Lihat Iklan Manajer dan Pemberian tag AdSense petunjuk untuk informasi selengkapnya.
googlefc
adalah namespace global yang digunakan oleh fungsi pesan pengguna
untuk API-nya pada Window
JavaScript.
Ringkasan Kolom
Nama | Jenis | Definisi |
---|---|---|
googlefc.controlledMessagingFunction
|
function(!Object) | Fungsi yang menentukan apakah akan melanjutkan pesan apa pun. Fungsi ini didukung untuk semua jenis pesan. |
googlefc.callbackQueue
|
!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue | Referensi ke antrean callback untuk eksekusi asinkron kueri pesan pengguna. |
googlefc.CallbackQueue
|
!Object | Jenis objek antrean callback. |
googlefc.AdBlockerStatusEnum
|
!Objek<string, angka> | Enum untuk mewakili status pemblokir iklan pengguna. |
googlefc.AllowAdsStatusEnum
|
!Objek<string, angka> | Enum untuk mewakili status iklan yang diizinkan pengguna. |
googlefc.ccpa.InitialCcpaStatusEnum
|
!Objek<string, angka> | Enum untuk mewakili status CPRA awal pengguna. |
googlefc.ccpa.overrideDnsLink
|
tidak terdefinisi|boolean | Boolean yang dapat ditetapkan ke benar (true) untuk menggunakan link Jangan Jual kustom. |
Ringkasan Metode
Nama | Jenis hasil yang ditampilkan | Definisi |
---|---|---|
googlefc.showRevocationMessage()
|
belum ditentukan |
Menghapus data izin dan memuat ulang skrip googlefc untuk menampilkan pesan izin yang berlaku untuk pengguna.
|
googlefc.getAdBlockerStatus()
|
angka |
Menampilkan nilai di AdBlockerStatusEnum , bergantung pada status pemblokiran iklan pengguna.
|
googlefc.getAllowAdsStatus()
|
angka |
Menampilkan nilai di AllowAdsStatusEnum bergantung pada status iklan yang diizinkan pengguna.
|
googlefc.ccpa.getInitialCcpaStatus()
|
angka |
Menampilkan nilai dalam InitialCcpaStatusEnum bergantung pada status CPRA awal pengguna.
|
googlefc.ccpa.openConfirmationDialog(function(boolean))
|
belum ditentukan | Membuka dialog konfirmasi CPRA jika link Jangan Jual default diganti. |
Pengujian dan proses debug di situs Anda
Privasi & pesan menyediakan fungsi proses debug dan pengujian yang memungkinkan Anda melihat tampilan pesan (atau kombinasi pesan) tertentu di situs aktual.
Prasyarat:
- Pesan yang ingin Anda pratinjau harus dipublikasikan di situs yang pengujian terhadap
Anda dapat melihat pratinjau langsung di situs menggunakan URL proses debug berikut parameter:
Parameter debug | Nilai yang diizinkan |
---|---|
fc |
alwaysshow (untuk memicu mode debug/pratinjau) |
fctype |
ab (Pesan pemblokiran iklan), ccpa (Pesan pilihan tidak ikut CPRA), gdpr (Pesan izin GDPR), monetization (pesan Offerwall) |
Beberapa contoh cara menggunakannya untuk melihat pratinjau di situs Anda (foo.com):
- Uji pesan CPRA --
http://foo.com/?fc=alwaysshow&fctype=ccpa
- Uji pesan GDPR --
http://foo.com/?fc=alwaysshow&fctype=gdpr
Kolom: penjelasan dan contoh
googlefc.controlledMessagingFunction {function(!Object)}
Fungsi yang menentukan apakah pesan harus ditampilkan atau tidak. Bisa digunakan untuk membatasi rendering pesan pada kondisi yang ditentukan penayang seperti status pelanggan, atau URL halaman.
Jika Anda menentukan googlefc.controlledMessagingFunction
pada Jendela sebelum
skrip lain sedang dimuat, pesan tidak ditampilkan sampai Anda memanggil
message.proceed(boolean)
. Menelepon message.proceed(true)
memungkinkan pengiriman pesan
lanjutkan seperti biasa, sedangkan memanggil message.proceed(false)
akan mencegah pesan
ditampilkan untuk tayangan halaman.
Contoh: asumsikan Anda memiliki skrip ini pada halaman yang menentukan peristiwa
fungsi determineIfUserIsSubscriber()
yang memeriksa apakah pengguna yang masuk adalah
pelanggan.
<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>
Ini adalah contoh cara menggunakan
googlefc.controlledMessagingFunction
untuk hanya menampilkan pesan kepada
non-subscriber.
<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>
Ada juga perpanjangan fitur ini yang memungkinkan penayang bagian dari Offerwall tertutup versi beta untuk menentukan bahwa hanya Offerwall yang boleh dihentikan. Jenis pesan lainnya tidak akan terpengaruh saat fitur ini diaktifkan.
Pesan terkontrol khusus Offerwall dicapai dengan meneruskan
ke message.proceed()
, Array
dari jenis googlefc.MessageTypeEnum
.
Contoh: Ini adalah contoh penggunaan googlefc.controlledMessagingFunction
untuk
hanya menahan penayangan Offerwall untuk pelanggan, tanpa menekan penayangan
jenis pesan:
<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>
Rujukan ke antrean callback global untuk eksekusi asinkron
terkait pesan. Satu-satunya cara yang didukung untuk memanggil fungsi apa pun adalah dengan
menambahkannya ke callbackQueue
.
Karena berbagai jenis data tersedia pada waktu yang berbeda, maka {i>function<i} harus ditambahkan sebagai peta, dengan salah satu string berikut sebagai kunci yang akan dieksekusi sebagai nilai.
Kunci yang didukung:
Nama kunci | Penggunaan | Latensi relatif |
---|---|---|
CONSENT_API_READY
|
Fungsi yang dikirim ke antrean callback dengan kunci CONSENT_API_READY dieksekusi saat API untuk framework izin yang didukung ditentukan dan dapat dipanggil. Mulai saat ini, eksekusi fungsi kunci CONSENT_API_READY yang ditambahkan selanjutnya akan dilakukan secara sinkron. Lihat bagian framework IAB untuk mengetahui detail khusus framework.
|
Rendah |
CONSENT_DATA_READY
|
Fungsi yang dikirim ke antrean callback dengan kunci CONSENT_DATA_READY dieksekusi saat izin pengguna yang dikumpulkan dalam framework izin yang didukung diketahui (baik dari eksekusi sebelumnya maupun setelah pengguna berinteraksi dengan pesan izin). Mulai saat ini, eksekusi fungsi kunci CONSENT_DATA_READY yang ditambahkan selanjutnya akan dilakukan secara sinkron.
|
Tinggi |
AD_BLOCK_DATA_READY
|
Fungsi yang didorong ke antrean callback dengan kunci AD_BLOCK_DATA_READY akan dieksekusi saat data pemblokiran iklan tersedia dalam alur. Mulai saat ini, eksekusi fungsi kunci AD_BLOCK_DATA_READY yang ditambahkan selanjutnya akan dilakukan secara sinkron.
|
Tinggi |
INITIAL_CCPA_DATA_READY
|
Fungsi yang didorong ke antrean callback dengan INITIAL_CCPA_DATA_READY dieksekusi saat data CPRA tersedia dalam alur. Perhatikan bahwa setiap permintaan berikutnya untuk data CPRA harus diperoleh dengan langsung memanggil US Privacy API (__uspapi ).
|
Sedang |
googlefc.CallbackQueue {!Object}
Ringkasan metode:
Nama | Jenis | Parameter | Jenis hasil yang ditampilkan | Peran |
---|---|---|---|---|
push(data)
|
angka |
data : Pasangan nilai kunci dengan kunci sebagai salah satu data
jenis ketersediaan dan nilai sebagai fungsi JavaScript yang akan dieksekusi.
Kunci ketersediaan data yang dapat diterima adalah CONSENT_API_READY ,
CONSENT_DATA_READY , AD_BLOCK_DATA_READY , dan
INITIAL_CCPA_DATA_READY .
|
Jumlah perintah yang ditambahkan sejauh ini. Ini akan mengembalikan panjang himpunan saat ini. | Mengeksekusi fungsi yang diteruskan, sesuai urutan data menjadi yang tersedia, lalu sesuai dengan urutan penambahan fungsi tersebut ke antrean. |
Contoh:
<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>}
Menampilkan berbagai status pemblokiran iklan pengguna. Berbagai negara bagian adalah:
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>}
Mewakili berbagai status iklan yang diizinkan oleh pemblokiran iklan dari pengguna. Perbedaan negara bagian adalah:
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>}
Mewakili berbagai status iklan yang diizinkan oleh pemblokiran iklan dari pengguna. Perbedaan negara bagian adalah:
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}
Tetapkan kolom ini ke true untuk menyembunyikan link default Jangan Jual dan gunakan link Jangan Jual kustom.
Contoh:
<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>
Metode: penjelasan dan contoh
googlefc.getConsentStatus(): {number}
googlefc.getConsentedProviderIds(): {!Array<string>}
- Fungsi ini sekarang selalu menampilkan daftar kosong saat dipanggil.
googlefc.showRevocationMessage(): {undefined}
Menghapus catatan izin saat ini dan menampilkan pesan izin yang
berlaku untuk pengguna ini. Kunci yang harus ditentukan untuk fungsi ini adalah
CONSENT_DATA_READY
.
Contoh:
<button type="button" onclick="googlefc.callbackQueue.push({'CONSENT_DATA_READY': () => googlefc.showRevocationMessage()});">
Click here to revoke
</button>
googlefc.getAdBlockerStatus(): {number}
Menampilkan nilai dalam AdBlockerStatusEnum, bergantung pada status pemblokiran iklan
dari pengguna. Kunci yang harus ditentukan untuk fungsi ini adalah
AD_BLOCK_DATA_READY
.
Contoh:
<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}
Menampilkan nilai dalam AllowAdsStatusEnum
bergantung pada status iklan yang diizinkan pada
pengguna. Kunci yang harus ditentukan untuk fungsi ini adalah
AD_BLOCK_DATA_READY
.
Contoh:
<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}
Menampilkan nilai dalam InitialCcpaStatusEnum
bergantung pada status CPRA
pengguna. Kunci yang harus ditentukan untuk fungsi ini adalah
INITIAL_CCPA_DATA_READY
. Perhatikan bahwa setiap permintaan selanjutnya
untuk data CPRA harus
dapat diperoleh dengan langsung memanggil US Privacy API (__uspapi
).
Contoh:
<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}
Membuka dialog konfirmasi CPRA jika link Jangan Jual default adalah
diganti. Setelah pengguna berinteraksi dengan dialog konfirmasi,
fungsi callback dipanggil dengan true
jika pengguna memutuskan untuk tidak menggunakan, dan
false
sebaliknya.
Contoh:
<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>
Menggunakan solusi pengelolaan izin Google dengan TCF v2 IAB untuk GDPR
Jika Anda menggunakan solusi pengelolaan izin Google untuk mengumpulkan izin GDPR berdasarkan framework TCF v2 IAB, Anda harus menggunakan TCF v2 IAB Google Cloud Platform.
Anda dapat menggunakan CONSENT_API_READY
kunci antrean callback untuk memastikan bahwa callback terkait hanya dipanggil ketika
TCF v2 API IAB ditentukan di halaman. Ini harus digunakan bersamaan
dengan
'addEventListener'
baru dari TCF v2 API IAB.
Contoh:
<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>
Anda dapat menggunakan CONSENT_DATA_READY
kunci antrean callback untuk memastikan callback yang sesuai dipanggil
hanya saat izin pengguna dikumpulkan dan dapat diakses menggunakan TCF v2 API IAB.
Fungsi ini dapat digunakan bersama dengan
'addEventListener'
command - data yang diberikan dalam panggilan pertama callback yang diberikan
akan berisi pilihan izin pengguna (selama TCF v2 berlaku untuk
tertentu). Perhatikan bahwa dengan dirilisnya TCF v2.2,
'getTCData'
sekarang tidak digunakan lagi.
Contoh:
<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>
Menggunakan solusi pengelolaan izin Google dengan framework GPP IAB untuk CPRA
Jika Anda menggunakan solusi pengelolaan izin Google untuk mengumpulkan pilihan tidak ikut CPRA berdasarkan framework GPP IAB, Anda harus menggunakan GPP IAB Google Cloud Platform.
Karena sifat peraturan CPRA yang tidak diikutsertakan, Anda dapat menggunakan
CONSENT_API_READY
atau
Callback CONSENT_DATA_READY
kunci antrean untuk memastikan bahwa IAB GPP API dapat dipanggil dan menampilkan data izin
pada saat callback dipanggil.
<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>
Menggunakan solusi pengelolaan izin Google dengan framework GPP IAB untuk CPRA dengan link Jangan Jual kustom
Jika Anda menggunakan solusi pengelolaan izin Google untuk mengumpulkan pilihan tidak ikut CPRA
berdasarkan framework GPP IAB, link kustom Jangan Jual dapat diberikan
dengan menetapkan tanda googlefc.ccpa.overrideDnsLink
ke 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>
Hal ini memastikan bahwa link Jangan Jual default tidak dirender. Perlu diketahui bahwa Anda bertanggung jawab untuk merender link Jangan Jual Anda sendiri agar mematuhi kebijakan dengan CPRA. Kemudian, Anda perlu menangani interaksi pengguna dengan model Jual link dengan memanggil dialog konfirmasi 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>