Privasi & Messaging JavaScript API

Pengantar

API ini menyediakan alat untuk berinteraksi dengan pesan yang ditawarkan oleh tab Privasi & pesan. Dengan aplikasi ini, Anda dapat:

dan lain-lain.

Anda juga dapat menggunakan alat ini untuk mengumpulkan izin pengguna menggunakan protokol standar industri:

Dalam kasus ini, status izin dikomunikasikan melalui API tersebut.

Anda dapat men-deploy fungsi pesan pengguna ini di situs Anda dengan beberapa cara:

  1. Untuk sebagian besar kasus, Anda tidak perlu memasang ulang tag sama sekali - Tag Google Publisher atau tag AdSense yang ada akan men-deploy pesan pengguna setelah pesan dipublikasikan di produk yang relevan.
  2. Jika menggunakan pesan pemulihan pemblokiran iklan, Anda harus menambahkan tag pemblokiran iklan ke halaman secara eksplisit. Lihat petunjuk pemberian tag Ad Manager dan AdSense untuk mengetahui informasi selengkapnya.

googlefc adalah namespace global yang digunakan fungsi pesan pengguna untuk API-nya di Window JavaScript.

Ringkasan Kolom

Nama Jenis Definisi
googlefc.controlledMessagingFunction function(!Object) Fungsi yang menentukan apakah akan melanjutkan pengiriman pesan. 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 !Object<string, number> Enum untuk merepresentasikan status pemblokir iklan pengguna.
googlefc.AllowAdsStatusEnum !Object<string, number> Enum untuk merepresentasikan status izinkan iklan pengguna.
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum !Object<string, number> Enum untuk merepresentasikan status penolakan awal Negara Bagian AS pengguna. Hal ini memperhitungkan Negara Bagian AS tempat pengguna berada.
googlefc.GoogleFcConsentModeUserStatus !Object Jenis nilai yang ditampilkan untuk googlefc.getGoogleConsentModeValues.
googlefc.ConsentModePurposeStatusEnum !Object<string, number> Enum untuk merepresentasikan keputusan pengguna akhir terkait tujuan mode izin.
googlefc.usstatesoptout.overrideDnsLink undefined|boolean Nilai boolean yang dapat disetel ke benar (true) untuk menggunakan link Jangan Jual atau Bagikan kustom Anda sendiri.
googlefc.ccpa.InitialCcpaStatusEnum

Lama. Lebih suka googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.
!Object<string, number> Enum untuk merepresentasikan status peraturan Negara Bagian AS awal pengguna.
googlefc.ccpa.overrideDnsLink

Lama. Lebih suka googlefc.usstatesoptout.overrideDnsLink.
undefined|boolean Nilai boolean yang dapat disetel ke benar (true) untuk menggunakan link Jangan Jual atau Bagikan kustom Anda sendiri.

Ringkasan Metode

Nama Jenis hasil yang ditampilkan Definisi
googlefc.showRevocationMessage() belum ditentukan Menghapus catatan izin dan memuat ulang skrip googlefc untuk menampilkan pesan izin yang berlaku bagi pengguna.
googlefc.getAdBlockerStatus() angka Menampilkan nilai di AdBlockerStatusEnum, bergantung pada status pemblokiran iklan pengguna.
googlefc.getAllowAdsStatus() angka Menampilkan nilai di AllowAdsStatusEnum, bergantung pada status izinkan iklan pengguna.
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() angka Menampilkan nilai di InitialUsStatesOptOutStatusEnum, bergantung pada status tidak bersedia menerima pesan peraturan negara bagian AS awal pengguna. Hal ini mempertimbangkan peraturan yang berlaku untuk pengguna berdasarkan lokasi mereka saat ini.
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)) belum ditentukan Membuka dialog konfirmasi penolakan peraturan negara bagian AS jika link Jangan Jual atau Bagikan default diganti.
googlefc.getGoogleConsentModeValues() !Object Menampilkan objek googlefc.GoogleFcConsentModeUserStatus yang berisi nilai mode izin saat ini untuk pengguna, satu untuk setiap tujuan mode izin yang tersedia.
googlefc.ccpa.getInitialCcpaStatus()

Lama. Lebih suka googlefc.usstatesoptout.getInitialUsStatesOptOutStatus().
angka Menampilkan nilai di InitialCcpaStatusEnum, bergantung pada status tidak bersedia menerima pesan peraturan negara bagian AS awal pengguna.
googlefc.ccpa.openConfirmationDialog(function(boolean))

Lama. Lebih suka googlefc.usstatesoptout.openConfirmationDialog().
belum ditentukan Membuka dialog konfirmasi penolakan peraturan Negara Bagian AS jika link Jangan Jual atau Bagikan default diganti.

Menguji dan melakukan proses debug di situs Anda

Privasi & pesan menyediakan fungsi pen-debug-an dan pengujian yang memungkinkan Anda melihat tampilan pesan tertentu, sub-jenis pesan, atau kombinasi pesan di situs Anda yang sebenarnya.

Prasyarat:

  • Pesan yang ingin Anda lihat pratinjaunya harus dipublikasikan ke situs yang Anda gunakan untuk pengujian

Anda dapat melihat pratinjau langsung di situs dengan menggunakan parameter URL debug berikut:

Parameter debug Nilai yang diizinkan
fc alwaysshow (untuk memicu mode debug/pratinjau)
fctype ab (Pesan pemblokiran iklan), ccpa (Pesan pilihan tidak ikut peraturan negara bagian AS), gdpr (Pesan izin GDPR), monetization (Pesan Offerwall), usfl (Pesan pilihan tidak ikut peraturan negara bagian AS, khusus Florida), usnat (Pesan pilihan tidak ikut peraturan negara bagian AS, semua negara bagian yang didukung kecuali Florida; setara dengan ccpa)

Beberapa contoh cara menggunakannya untuk melihat pratinjau di situs Anda (foo.com):

  • Menguji pesan penolakan peraturan negara bagian AS -- http://foo.com/?fc=alwaysshow&fctype=ccpa
  • Menguji 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. ID ini dapat digunakan untuk membatasi rendering pesan berdasarkan kondisi yang ditentukan penayang seperti status pelanggan atau URL halaman.

Jika Anda menentukan googlefc.controlledMessagingFunction di Window sebelum skrip lain dimuat, pesan tidak akan ditampilkan hingga Anda memanggil message.proceed(boolean). Memanggil message.proceed(true) memungkinkan pesan berlanjut seperti biasa, sedangkan memanggil message.proceed(false) akan mencegah pesan apa pun ditampilkan untuk tayangan halaman.

Contoh: asumsikan Anda memiliki skrip ini di halaman yang menentukan fungsi asinkron determineIfUserIsSubscriber() yang memeriksa apakah pengguna yang login 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>

Berikut contoh cara menggunakan googlefc.controlledMessagingFunction untuk menampilkan pesan hanya kepada non-pelanggan.

<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 perluasan fitur ini yang memungkinkan penayang menentukan bahwa hanya Offerwall yang harus disembunyikan. Gunakan ekstensi fitur ini untuk menekan Offerwall tanpa menekan jenis pesan lainnya.

Pesan terkontrol khusus Offerwall dicapai dengan meneruskan parameter tambahan ke message.proceed(), yaitu Array berjenis googlefc.MessageTypeEnum.

Contoh: Berikut contoh penggunaan googlefc.controlledMessagingFunction untuk hanya menekan penayangan Offerwall untuk pelanggan, tanpa menekan jenis pesan lainnya:

<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>

googlefc.callbackQueue {!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue}

Referensi ke antrean callback global untuk eksekusi asinkron panggilan 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, fungsi harus ditambahkan sebagai peta, dengan salah satu string berikut sebagai kunci dan fungsi yang akan dieksekusi sebagai nilai.

Kunci yang didukung:

Nama kunci Penggunaan Latensi relatif
CONSENT_API_READY Fungsi yang di-push 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 yang ditambahkan kemudian dan memiliki kunci CONSENT_API_READY bersifat sinkron. Lihat bagian tentang framework IAB untuk mengetahui detail khusus framework. Rendah
CONSENT_DATA_READY Fungsi yang dimasukkan ke antrean callback dengan kunci CONSENT_DATA_READY akan dieksekusi saat izin pengguna yang dikumpulkan berdasarkan framework izin yang didukung diketahui (baik dari eksekusi sebelumnya atau setelah pengguna berinteraksi dengan pesan izin). Mulai saat ini, eksekusi fungsi yang ditambahkan kemudian dan memiliki kunci CONSENT_DATA_READY bersifat sinkron. Tinggi
AD_BLOCK_DATA_READY Fungsi yang di-push ke antrean callback dengan kunci AD_BLOCK_DATA_READY dieksekusi saat data pemblokiran iklan tersedia dalam alur. Mulai saat ini, eksekusi fungsi yang ditambahkan kemudian dan memiliki kunci AD_BLOCK_DATA_READY bersifat sinkron. Tinggi
CONSENT_MODE_DATA_READY Fungsi yang dikirim ke antrean callback dengan kunci CONSENT_MODE_DATA_READY akan dieksekusi saat data [mode izin](https://support.google.com/google-ads/answer/10000067) Google (untuk digunakan dengan tag Google Ads dan Analytics) tersedia dalam alur. Setelah data mode izin siap, Anda dapat mengakses nilai mode izin kapan saja menggunakan googlefc.getGoogleConsentModeValues. Sedang
INITIAL_US_STATES_OPT_OUT_DATA_READY Fungsi yang di-push ke antrean callback dengan kunci INITIAL_US_STATES_OPT_OUT_DATA_READY akan dieksekusi saat data peraturan negara bagian AS tersedia dalam alur. Perhatikan bahwa setiap permintaan berikutnya untuk data peraturan Negara Bagian AS harus diperoleh dengan memanggil langsung GPP API (__gpp). Sedang
INITIAL_CCPA_DATA_READY Kunci lama untuk peraturan negara bagian AS. Lebih suka INITIAL_US_STATES_OPT_OUT_DATA_READY.

Fungsi yang dimasukkan ke antrean callback dengan kunci INITIAL_CCPA_DATA_READY akan dieksekusi saat data peraturan negara bagian AS tersedia dalam alur. Perhatikan bahwa setiap permintaan berikutnya untuk data peraturan Negara Bagian AS harus diperoleh dengan memanggil langsung GPP API (__gpp).
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 jenis ketersediaan data 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, INITIAL_US_STATES_OPT_OUT_DATA_READY, CONSENT_MODE_DATA_READY, dan (lama) INITIAL_CCPA_DATA_READY. Jumlah perintah yang ditambahkan sejauh ini. Tindakan ini akan menampilkan panjang array saat ini. Mengeksekusi fungsi yang diteruskan, sesuai urutan data tersedia, lalu sesuai urutan fungsi ini ditambahkan ke antrean.

Contoh:

<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>}

Mewakili berbagai status pemblokiran iklan pengguna. Status yang berbeda 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 izinkan iklan dari pemblokiran iklan pengguna. Status yang berbeda 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.usstatesoptout.InitialUsStatesOptOutStatusEnum{!Object<string, number>}

Mewakili berbagai status tidak bersedia menerima pesan peraturan negara bagian AS dari pengguna. Status yang berbeda adalah:

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}

Jenis objek yang ditampilkan oleh googlefc.getGoogleConsentModeValues.

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;
}

Nilai setiap kolom adalah angka yang sesuai dengan nilai enum googlefc.ConsentModePurposeStatusEnum.


googlefc.ConsentModePurposeStatusEnum{!Object<string, number>}

Mewakili berbagai kemungkinan nilai izin pengguna akhir untuk tujuan mode izin. Nilai yang berbeda adalah:

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}

Tetapkan kolom ini ke benar (true) untuk menyembunyikan link Jangan Jual atau Bagikan default dan menggunakan link Jangan Jual atau Bagikan kustom Anda sendiri.

Contoh:

<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>}

Mewakili berbagai status tidak bersedia menerima pesan peraturan negara bagian AS dari pengguna. Status yang berbeda adalah:

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}

Tetapkan kolom ini ke benar (true) untuk menyembunyikan link Jangan Jual atau Bagikan default dan menggunakan link Jangan Jual atau Bagikan kustom Anda sendiri. Perhatikan bahwa jika Anda menyetel kolom ini ke benar (true), Anda bertanggung jawab untuk merender link Jangan Jual atau Bagikan di situs Anda. Kolom ini harus digunakan bersama openConfirmationDialog.

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>}

  1. Sekarang, fungsi ini selalu menampilkan daftar kosong saat dipanggil.

googlefc.showRevocationMessage(): {undefined}

Menghapus catatan izin peraturan Uni Eropa saat ini, jika ada, dan menampilkan pesan peraturan Uni Eropa lagi untuk memungkinkan pengguna mengubah keputusan izin mereka.

Contoh 1: Contoh sederhana penyiapan link yang akan menampilkan pesan pencabutan saat diklik:

<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>

Contoh 2: Jika hanya ingin link terlihat saat peraturan Uni Eropa berlaku untuk pengguna saat ini, Anda dapat menggunakan antrean callback googlefc dengan TCF API untuk memperbarui tampilan tombol secara bersyarat berdasarkan nilai gdprApplies setelah ditentukan. Untuk melakukannya, gunakan kunci 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}

Menampilkan nilai di AdBlockerStatusEnum, bergantung pada status pemblokiran iklan 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.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}

Menampilkan nilai di AllowAdsStatusEnum, bergantung pada status izinkan iklan 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.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}

Menampilkan nilai di InitialUsStatesOptOutStatusEnum, bergantung pada status tidak bersedia pengguna terkait peraturan negara bagian AS. Kunci yang harus ditentukan untuk fungsi ini adalah INITIAL_US_STATES_OPT_OUT_DATA_READY. Perhatikan bahwa setiap permintaan berikutnya untuk data peraturan negara bagian Amerika Serikat harus diperoleh dengan memanggil GPP API secara langsung (__gpp).

Jika Anda mengganti link Jangan Jual atau Bagikan, Anda dapat menggunakan metode ini untuk menentukan kapan harus menyertakan link di situs Anda.

Contoh:

<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}

Membuka dialog konfirmasi penolakan peraturan negara bagian AS jika link Jangan Jual default diganti. Setelah pengguna berinteraksi dengan dialog konfirmasi, fungsi callback yang diberikan dipanggil dengan true jika pengguna memutuskan untuk memilih tidak ikut, dan false jika tidak.

Contoh:

<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}

Menampilkan objek googlefc.GoogleFcConsentModeUserStatus yang berisi nilai saat ini dari setiap tujuan mode izin, berdasarkan keputusan izin pengguna.

Lihat Menggunakan solusi pengelolaan izin Google dengan dukungan mode izin untuk peraturan Uni Eropa untuk penggunaan yang dimaksudkan.


googlefc.ccpa.getInitialCcpaStatus(): {number}

Menampilkan nilai di InitialCcpaStatusEnum, bergantung pada status tidak bersedia menerima pesan peraturan negara bagian AS dari pengguna. Kunci yang harus ditentukan untuk fungsi ini adalah INITIAL_CCPA_DATA_READY. Perhatikan bahwa setiap permintaan berikutnya untuk data peraturan negara bagian AS harus diperoleh dengan memanggil langsung GPP API (__gpp).

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 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}

Membuka dialog konfirmasi penolakan peraturan negara bagian AS jika link Jangan Jual default diganti. Setelah pengguna berinteraksi dengan dialog konfirmasi, fungsi callback yang diberikan dipanggil dengan true jika pengguna memutuskan untuk menolak, dan false jika tidak.

Contoh:

<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>

Jika Anda menggunakan solusi pengelolaan izin Google untuk mengumpulkan izin GDPR dalam framework TCF v2 IAB, Anda harus menggunakan API TCF v2 IAB.

Anda dapat menggunakan kunci antrean callback CONSENT_API_READY untuk memastikan bahwa callback yang sesuai hanya dipanggil saat IAB TCF v2 API ditentukan di halaman. Ini harus digunakan bersama dengan perintah 'addEventListener' dari API TCF v2 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 kunci antrean callback CONSENT_DATA_READY untuk memastikan bahwa callback yang sesuai dipanggil hanya saat izin pengguna dikumpulkan dan dapat diakses menggunakan IAB TCF v2 API. Hal ini dapat digunakan bersama dengan perintah 'addEventListener' - data yang diberikan dalam pemanggilan pertama callback yang Anda berikan akan berisi pilihan izin pengguna (selama TCF v2 berlaku untuk pengguna ini). Perhatikan bahwa dengan rilis TCF v2.2, perintah 'getTCData' kini 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>

Solusi pengelolaan izin Google dapat menafsirkan pilihan izin pengguna Anda untuk peraturan Uni Eropa guna mode izin Google (pelajari lebih lanjut di Pusat Bantuan).

Mode izin dapat diterapkan dalam mode dasar atau mode lanjutan, seperti yang dijelaskan dalam dokumentasi Google Ads dan Analytics. Anda harus berkonsultasi dengan departemen hukum Anda mengenai mode izin yang akan diterapkan untuk memenuhi persyaratan hukum Anda.

Mode izin lanjutan didukung secara default; setelah Anda mengaktifkan Mode Izin di UI Privasi & pesan, tidak ada pekerjaan tambahan yang diperlukan.

Untuk menerapkan mode izin dasar menggunakan solusi pengelolaan izin Google, Anda dapat menggunakan kunci antrean panggilan balik CONSENT_MODE_DATA_READY untuk memuat tag Google Ads dan Analytics secara bersyarat setelah data mode izin tersedia. Data mode izin akan tersedia setelah Funding Choices menentukan bahwa mode izin tidak berlaku untuk permintaan ini (misalnya, karena peraturan Uni Eropa tidak berlaku untuk permintaan ini) atau setelah pengguna membuat keputusan izin peraturan Uni Eropa. Anda harus berkonsultasi dengan departemen hukum Anda mengenai kriteria yang akan digunakan untuk menentukan apakah tag Anda dapat dimuat setelah mode izin tersedia.

Misalnya, untuk memuat tag Anda setelah data mode izin tersedia, terlepas dari keputusan izin pengguna akhir:

<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>

Anda juga dapat menggunakan API googlefc.getGoogleConsentModeValues() untuk mendapatkan nilai tujuan mode izin individual saat data mode izin tersedia. API ini menampilkan objek GoogleFcConsentModeUserStatus yang berisi satu kolom untuk setiap tujuan mode izin yang didukung, dan nilai setiap kolom adalah nilai enum yang menunjukkan nilai tujuan mode izin tersebut.

Misalnya, Anda dapat menggunakan googlefc.getGoogleConsentModeValues() untuk membuka blokir tag Google Ads dan Analytics hanya jika:

  • pengguna akhir membuat keputusan izin peraturan Uni Eropa yang menghasilkan pemberian izin untuk semua tujuan mode izin, atau
  • semua tujuan mode izin tidak berlaku untuk permintaan saat ini (yang dapat terjadi jika peraturan Uni Eropa tidak berlaku atau mode izin tidak dikonfigurasi untuk satu atau beberapa tujuan di Privasi & pesan).
<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>

Jika Anda menggunakan solusi pengelolaan izin Google untuk memberikan pesan pilihan tidak bersedia terkait peraturan negara bagian AS kepada pengguna akhir dalam framework GPP IAB, Anda harus menggunakan API GPP IAB.

Karena sifat peraturan negara bagian AS yang mengizinkan pengguna untuk memilih tidak bersedia, Anda dapat menggunakan kunci antrean callback CONSENT_API_READY atau CONSENT_DATA_READY 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.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>

Jika Anda menggunakan solusi pengelolaan izin Google untuk memberikan pesan pilihan tidak bersedia terkait peraturan negara bagian AS kepada pengguna akhir dalam framework GPP IAB, Anda dapat memberikan link Jangan Jual atau Bagikan kustom Anda sendiri dengan menyetel flag googlefc.usstatesoptout.overrideDnsLink ke 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>

Hal ini memastikan bahwa link Jangan Jual atau Bagikan default tidak dirender. Kemudian, Anda harus menangani interaksi pengguna dengan link Jangan Jual atau Bagikan kustom dengan memanggil dialog konfirmasi penolakan peraturan negara bagian AS.

Perhatikan bahwa saat menggunakan link Jangan Jual atau Bagikan kustom Anda sendiri, Anda bertanggung jawab untuk memastikan bahwa link Anda mematuhi peraturan negara bagian AS.

<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>