API de JavaScript de privacidad y mensajería

Introducción

Esta API proporciona herramientas para interactuar con los mensajes que se ofrecen en la pestaña Privacidad y mensajería. Con él, puedes realizar las siguientes tareas:

y más.

También puedes usar estas herramientas para obtener el consentimiento del usuario con los protocolos estándar de la industria:

En estos casos, el estado de consentimiento se comunica a través de esas APIs.

Puedes implementar esta funcionalidad de mensajes para los usuarios en tu sitio de varias maneras:

  1. En la mayoría de los casos, no es necesario que vuelvas a etiquetar nada, ya que tu etiqueta de Google Publisher Tag o etiqueta de AdSense existente implementa los mensajes para los usuarios una vez que se publican en el producto correspondiente.
  2. Si usas el mensaje de recuperación de bloqueo de anuncios, debes agregar la etiqueta de bloqueo de anuncios a tu página de forma explícita. Para obtener más información, consulta las instrucciones de etiquetado de Ad Manager y AdSense.

googlefc es el espacio de nombres global que usa la funcionalidad de mensajería del usuario para su API en el Window de JavaScript.

Resúmenes de campos

Nombre Tipo Definición
googlefc.controlledMessagingFunction function(!Object) Es una función que determina si se debe continuar con algún mensaje. Esta funcionalidad es compatible con todos los tipos de mensajes.
googlefc.callbackQueue !Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue Referencia a la cola de devolución de llamada para la ejecución asíncrona de consultas de mensajería de usuarios.
googlefc.CallbackQueue !Object Es el tipo de objeto de cola de devolución de llamada.
googlefc.AdBlockerStatusEnum !Object<string, number> Es una enumeración que representa el estado del bloqueador de anuncios del usuario.
googlefc.AllowAdsStatusEnum !Object<string, number> Es una enumeración para representar el estado de permitir anuncios del usuario.
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum !Object<string, number> Es un enum para representar el estado inicial de rechazo de los estados de EE.UU. del usuario. Esto tiene en cuenta el estado de EE.UU. en el que se encuentra el usuario.
googlefc.GoogleFcConsentModeUserStatus !Object Es el tipo de datos que se devuelve para googlefc.getGoogleConsentModeValues.
googlefc.ConsentModePurposeStatusEnum !Object<string, number> Es un enum que representa la decisión del usuario final para un propósito del modo de consentimiento.
googlefc.usstatesoptout.overrideDnsLink undefined|boolean Es un valor booleano que se puede establecer como verdadero para usar tu propio vínculo personalizado No vender ni compartir.
googlefc.ccpa.InitialCcpaStatusEnum

Heredado. Preferir googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.
!Object<string, number> Es un enum que representa el estado inicial de las reglamentaciones estatales de EE.UU. del usuario.
googlefc.ccpa.overrideDnsLink

Heredado. Preferir googlefc.usstatesoptout.overrideDnsLink.
undefined|boolean Es un valor booleano que se puede establecer como verdadero para usar tu propio vínculo personalizado No vender ni compartir.

Resúmenes de métodos

Nombre Tipo de datos que se devuelve Definición
googlefc.showRevocationMessage() indefinido Borra el registro de consentimiento y vuelve a cargar la secuencia de comandos de googlefc para mostrar el mensaje de consentimiento aplicable al usuario.
googlefc.getAdBlockerStatus() número Devuelve un valor en AdBlockerStatusEnum según el estado de bloqueo de anuncios del usuario.
googlefc.getAllowAdsStatus() número Devuelve un valor en AllowAdsStatusEnum según el estado de allow-ads del usuario.
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() número Devuelve un valor en InitialUsStatesOptOutStatusEnum según el estado inicial de rechazo de las reglamentaciones estatales de EE.UU. del usuario. Esto tiene en cuenta la reglamentación que se aplica al usuario según su ubicación actual.
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)) indefinido Abre el diálogo de confirmación de rechazo de las reglamentaciones estatales de EE.UU. si se anula el vínculo predeterminado No vender o No compartir.
googlefc.getGoogleConsentModeValues() !Object Devuelve un objeto googlefc.GoogleFcConsentModeUserStatus que contiene los valores actuales del modo de consentimiento del usuario, uno para cada propósito disponible del modo de consentimiento.
googlefc.ccpa.getInitialCcpaStatus()

Heredado. Se prefiere googlefc.usstatesoptout.getInitialUsStatesOptOutStatus().
número Devuelve un valor en InitialCcpaStatusEnum según el estado inicial de rechazo de las reglamentaciones estatales de EE.UU. del usuario.
googlefc.ccpa.openConfirmationDialog(function(boolean))

Heredado. Se prefiere googlefc.usstatesoptout.openConfirmationDialog().
indefinido Abre el diálogo de confirmación de rechazo de las reglamentaciones estatales de EE.UU. si se anula el vínculo predeterminado No vender o No compartir.

Pruebas y depuración en tu sitio

Privacidad y mensajería proporciona funciones de depuración y prueba que te permiten ver cómo se ven los mensajes específicos, los subtipos de mensajes o las combinaciones de mensajes en tu sitio real.

Requisitos previos:

  • Los mensajes de los que quieras obtener una vista previa deben estar publicados en el sitio que estás probando.

Puedes ver una vista previa en vivo en tu sitio con los siguientes parámetros de URL de depuración:

Parámetro de depuración Valores permitidos
fc alwaysshow (para activar el modo de depuración o vista previa)
fctype ab (mensajes de bloqueo de anuncios), ccpa (mensajes de rechazo de las reglamentaciones estatales de EE.UU.), gdpr (mensajes de consentimiento según el RGPD), monetization (mensajes de Offerwall), usfl (mensajes de rechazo de las reglamentaciones estatales de EE.UU., específicos de Florida), usnat (mensajes de rechazo de las reglamentaciones estatales de EE.UU., todos los estados admitidos, excepto Florida; equivalente a ccpa)

Estos son algunos ejemplos de cómo usar esta función para obtener una vista previa en tu sitio (foo.com):

  • Prueba los mensajes de rechazo de las reglamentaciones estatales de EE.UU.: http://foo.com/?fc=alwaysshow&fctype=ccpa
  • Prueba los mensajes del RGPD: http://foo.com/?fc=alwaysshow&fctype=gdpr

Campos: explicaciones y ejemplos

googlefc.controlledMessagingFunction {function(!Object)}

Es una función que determina si se deben mostrar o no los mensajes. Se puede usar para restringir la renderización de mensajes según las condiciones especificadas por el publicador, como el estado del suscriptor o la URL de la página.

Cuando defines googlefc.controlledMessagingFunction en la ventana antes de que se carguen otras secuencias de comandos, los mensajes no se muestran hasta que llamas a message.proceed(boolean). Si llamas a message.proceed(true), los mensajes se mostrarán como de costumbre, mientras que, si llamas a message.proceed(false), no se mostrará ningún mensaje para la vista de página.

Por ejemplo, supongamos que tienes esta secuencia de comandos en la página que define una función asíncrona determineIfUserIsSubscriber() que verifica si el usuario que accedió es un suscriptor.

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

Este es un ejemplo de cómo puedes usar el googlefc.controlledMessagingFunction para mostrar el mensaje solo a los usuarios que no se suscribieron.

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

También hay una extensión de esta función que permite a los publicadores especificar que solo se deben suprimir tipos de mensajes específicos. Usa esta extensión de función para suprimir tipos de mensajes específicos sin suprimir otros tipos de mensajes.

Los mensajes controlados específicos del tipo de mensaje se logran pasando un parámetro adicional a message.proceed(), un Array de tipo googlefc.MessageTypeEnum.

Ejemplo: Este es un ejemplo de cómo usar googlefc.controlledMessagingFunction para suprimir solo la publicación de Offerwall para los suscriptores, sin suprimir otros tipos de mensajes:

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

Es la referencia a la cola de devolución de llamada global para la ejecución asíncrona de llamadas relacionadas con la mensajería. La única forma admitida de invocar cualquier función es agregándola a callbackQueue.

Dado que los diferentes tipos de datos están disponibles en distintos momentos, se debe agregar una función como un mapa, con una de las siguientes cadenas como clave y la función que se ejecutará como valor.

Claves admitidas:

Nombre de la clave Uso Latencia relativa
CONSENT_API_READY Las funciones que se envían a la cola de devolución de llamada con la clave CONSENT_API_READY se ejecutan cuando las APIs de los marcos de trabajo de consentimiento compatibles están definidas y se pueden llamar. A partir de este punto, la ejecución de cualquier función con clave CONSENT_API_READY que se agregue posteriormente será síncrona. Consulta las secciones sobre los marcos de trabajo de IAB para obtener detalles específicos de cada marco de trabajo. Baja
CONSENT_DATA_READY Las funciones que se envían a la cola de devolución de llamada con la clave CONSENT_DATA_READY se ejecutan cuando se conoce el consentimiento del usuario recopilado en un marco de consentimiento compatible (ya sea de una ejecución anterior o una vez que el usuario interactúa con el mensaje de consentimiento). A partir de este punto, la ejecución de cualquier función con clave CONSENT_DATA_READY que se agregue posteriormente será síncrona. Alto
AD_BLOCK_DATA_READY Las funciones que se envían a la cola de devolución de llamada con la clave AD_BLOCK_DATA_READY se ejecutan cuando los datos de bloqueo de anuncios están disponibles en el flujo. A partir de este punto, la ejecución de cualquier función con clave AD_BLOCK_DATA_READY que se agregue posteriormente será síncrona. Alto
CONSENT_MODE_DATA_READY Las funciones que se envían a la cola de devolución de llamada con la clave CONSENT_MODE_DATA_READY se ejecutan cuando los datos del [modo de consentimiento](https://support.google.com/google-ads/answer/10000067) de Google (para usar con las etiquetas de Google Ads y Analytics) están disponibles en el flujo. Una vez que los datos del modo de consentimiento estén listos, podrás acceder a los valores del modo de consentimiento en cualquier momento con googlefc.getGoogleConsentModeValues. Medio
INITIAL_US_STATES_OPT_OUT_DATA_READY Las funciones que se envían a la cola de devolución de llamada con la clave INITIAL_US_STATES_OPT_OUT_DATA_READY se ejecutan cuando los datos de las reglamentaciones estatales de EE.UU. están disponibles en el flujo. Ten en cuenta que cualquier solicitud posterior de datos de las reglamentaciones estatales de EE.UU. se debe obtener llamando directamente a la API de GPP (__gpp). Medio
INITIAL_CCPA_DATA_READY Es la clave heredada para las reglamentaciones estatales de EE.UU. Se prefiere INITIAL_US_STATES_OPT_OUT_DATA_READY.

Las funciones enviadas a la cola de devolución de llamada con la clave INITIAL_CCPA_DATA_READY se ejecutan cuando los datos de las reglamentaciones estatales de EE.UU. están disponibles en el flujo. Ten en cuenta que cualquier solicitud posterior de datos de las reglamentaciones estatales de EE.UU. se debe obtener llamando directamente a la API de GPP (__gpp).
Medio

googlefc.CallbackQueue {!Object}

Resumen del método:

Nombre Tipo Parámetro Tipo de datos que se devuelve Rol
push(data) número data: Es un par clave-valor en el que la clave es uno de los tipos de disponibilidad de datos y el valor es una función de JavaScript que se ejecutará. Las claves de disponibilidad de datos aceptables son CONSENT_API_READY, CONSENT_DATA_READY, AD_BLOCK_DATA_READY, INITIAL_US_STATES_OPT_OUT_DATA_READY, CONSENT_MODE_DATA_READY y (heredada) INITIAL_CCPA_DATA_READY. La cantidad de comandos agregados hasta el momento. Esto devuelve la longitud actual del array. Ejecuta la función que se pasa, en el orden en que los datos están disponibles y, luego, en el orden en que estas funciones se agregan a la cola.

Ejemplo:

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

Representa los diferentes estados de bloqueo de anuncios del usuario. Los diferentes estados son los siguientes:

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

Representa los diferentes estados de permitir anuncios con el bloqueo de anuncios del usuario. Los diferentes estados son los siguientes:

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

Representa los diferentes estados de rechazo de las reglamentaciones estatales de EE.UU. del usuario. Los diferentes estados son los siguientes:

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}

Es el tipo de objeto que devuelve 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;
}

El valor de cada campo es un número que corresponde a un valor de enumeración googlefc.ConsentModePurposeStatusEnum.


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

Representa los diferentes valores posibles de consentimiento del usuario final para un propósito del modo de consentimiento. Los diferentes valores son los siguientes:

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}

Establece este campo como verdadero para ocultar el vínculo predeterminado No vender ni compartir y usar tu propio vínculo personalizado No vender ni compartir. Ten en cuenta que esta función solo se admite en Ad Manager.

Ejemplo:

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

Representa los diferentes estados de rechazo de las reglamentaciones estatales de EE.UU. del usuario. Los diferentes estados son los siguientes:

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}

Establece este campo como verdadero para ocultar el vínculo predeterminado No vender ni compartir y usar tu propio vínculo personalizado No vender ni compartir. Ten en cuenta que, si estableces este campo como verdadero, eres responsable de renderizar un vínculo de No vender ni compartir en tu sitio. Este campo se debe usar junto con openConfirmationDialog. Además, el uso de tu propio vínculo personalizado de No vender o No compartir para la funcionalidad de mensajería de las "reglamentaciones estatales de EE.UU." solo se admite en Ad Manager.

Ejemplo:

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

Métodos: explicaciones y ejemplos

googlefc.getConsentStatus(): {number}


googlefc.getConsentedProviderIds(): {!Array<string>}

  1. Ahora, siempre devuelve una lista vacía cuando se llama.

googlefc.showRevocationMessage(): {undefined}

Borra el registro de consentimiento de las reglamentaciones de la UE actual, si está presente, y vuelve a mostrar el mensaje de las reglamentaciones de la UE para permitir que el usuario cambie su decisión de consentimiento.

Ejemplo 1: Ejemplo simple de configuración de un vínculo que mostrará el mensaje de revocación cuando se haga clic en él:

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

Ejemplo 2: Si solo quieres que el vínculo sea visible cuando se apliquen los reglamentos de la UE al usuario actual, puedes usar la cola de devolución de llamada de googlefc con la API del MTC para actualizar de forma condicional la visualización del botón según el valor de gdprApplies una vez que se determine. Para ello, usa la clave de API de 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}

Devuelve un valor en AdBlockerStatusEnum según el estado de bloqueo de anuncios del usuario. La clave que se debe especificar para esta función es AD_BLOCK_DATA_READY.

Ejemplo:

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

Devuelve un valor en AllowAdsStatusEnum según el estado de permitir anuncios del usuario. La clave que se debe especificar para esta función es AD_BLOCK_DATA_READY.

Ejemplo:

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

Devuelve un valor en InitialUsStatesOptOutStatusEnum según el estado de rechazo de la reglamentación estatal de EE.UU. del usuario. La clave que se debe especificar para esta función es INITIAL_US_STATES_OPT_OUT_DATA_READY. Ten en cuenta que cualquier solicitud posterior de datos de reglamentaciones estatales de EE.UU. se debe obtener llamando directamente a la API de GPP (__gpp).

Si anulas el vínculo No vender ni compartir mi información personal, puedes usar este método para determinar cuándo incluir el vínculo en tu sitio.

Ejemplo:

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

Abre el diálogo de confirmación de rechazo de las reglamentaciones estatales de EE.UU. si se anula el vínculo predeterminado No vender. Una vez que el usuario interactúa con el diálogo de confirmación, se llama a la función de devolución de llamada proporcionada con true si el usuario decide inhabilitar la opción y, de lo contrario, con false.

Ejemplo:

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

Devuelve un objeto googlefc.GoogleFcConsentModeUserStatus que contiene los valores actuales de cada propósito del modo de consentimiento, según la decisión de consentimiento del usuario.

Consulta Usa las soluciones de administración del consentimiento de Google con compatibilidad con el modo de consentimiento para los reglamentos de la UE para conocer el uso previsto.


googlefc.ccpa.getInitialCcpaStatus(): {number}

Devuelve un valor en InitialCcpaStatusEnum según el estado de rechazo de la reglamentación estatal de EE.UU. del usuario. La clave que se debe especificar para esta función es INITIAL_CCPA_DATA_READY. Ten en cuenta que cualquier solicitud posterior de datos de reglamentaciones estatales de EE.UU. se debe obtener llamando directamente a la API de GPP (__gpp).

Ejemplo:

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

Abre el diálogo de confirmación de rechazo de las reglamentaciones estatales de EE.UU. si se anula el vínculo predeterminado No vender. Una vez que el usuario interactúa con el diálogo de confirmación, se llama a la función de devolución de llamada proporcionada con true si el usuario decide inhabilitar la función y, de lo contrario, con false.

Ejemplo:

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

Si usas las soluciones de administración del consentimiento de Google para recopilar el consentimiento según el RGPD en el marco de trabajo del MTC v2 de IAB, debes usar la API del MTC v2 de IAB.

Puedes usar la clave de cola de devolución de llamada CONSENT_API_READY para asegurarte de que las devoluciones de llamada correspondientes se invoquen solo cuando se defina la API del MTC de IAB v2 en la página. Se debe usar junto con el comando 'addEventListener' de la API de IAB TCF v2.

Ejemplo:

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

Puedes usar la clave de cola de devolución de llamada CONSENT_DATA_READY para asegurarte de que las devoluciones de llamada correspondientes se invoquen solo cuando se recopile el consentimiento del usuario y se pueda acceder a él con la API del MTC de IAB v2. Esto se puede usar junto con el comando 'addEventListener'. Los datos proporcionados en la primera invocación de la devolución de llamada que proporciones contendrán las selecciones de consentimiento del usuario (siempre que el MTC v2 se aplique a este usuario). Ten en cuenta que, con el lanzamiento del TCF v2.2, el comando 'getTCData' ahora está obsoleto.

Ejemplo:

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

Las soluciones de administración del consentimiento de Google pueden interpretar las selecciones de consentimiento de tus usuarios en relación con los reglamentos de la UE para el modo de consentimiento de Google (obtén más información en el Centro de ayuda).

El modo de consentimiento se puede implementar en el modo básico o en el modo avanzado, como se describe en la documentación de Google Ads y Analytics. Consulta con tu departamento legal qué modo de consentimiento debes implementar para cumplir con los requisitos legales.

El modo de consentimiento avanzado se admite de forma predeterminada. Una vez que habilites el modo de consentimiento en la IU de Privacidad y mensajería, no necesitarás realizar ninguna acción adicional.

Para implementar el modo de consentimiento básico con las soluciones de administración del consentimiento de Google, puedes usar la clave de cola de devolución de llamada CONSENT_MODE_DATA_READY para cargar de forma condicional tus etiquetas de Google Ads y Analytics una vez que estén disponibles los datos del modo de consentimiento. Los datos del modo de consentimiento estarán disponibles después de que Funding Choices determine que el modo de consentimiento no se aplica a esta solicitud (por ejemplo, porque las reglamentaciones de la UE no se aplican a esta solicitud) o después de que un usuario haya tomado una decisión de consentimiento de las reglamentaciones de la UE. Te recomendamos que consultes con tu departamento legal qué criterios usar para determinar si tus etiquetas se pueden cargar una vez que el modo de consentimiento esté disponible.

Por ejemplo, para cargar tus etiquetas una vez que estén disponibles los datos del modo de consentimiento, independientemente de la decisión de consentimiento del usuario final, haz lo siguiente:

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

También puedes usar la API de googlefc.getGoogleConsentModeValues() para obtener los valores de los propósitos individuales del modo de consentimiento cuando los datos de este modo estén disponibles. Esta API devuelve un objeto GoogleFcConsentModeUserStatus que contiene un campo para cada propósito del modo de consentimiento admitido, y el valor de cada campo es un valor de tipo enum que indica el valor de ese propósito del modo de consentimiento.

Por ejemplo, puedes usar googlefc.getGoogleConsentModeValues() para desbloquear tus etiquetas de Google Ads y Analytics solo cuando se cumpla alguna de las siguientes condiciones:

  • El usuario final toma una decisión de consentimiento en virtud de los reglamentos de la UE que da como resultado el otorgamiento del consentimiento para todos los fines del modo de consentimiento, o bien
  • No se aplica ninguno de los propósitos del modo de consentimiento a la solicitud actual (lo que podría suceder si no se aplican los reglamentos de la UE o si no se configura el modo de consentimiento para uno o más propósitos en Privacidad y mensajería).
<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>

Si usas las soluciones de administración del consentimiento de Google para proporcionar mensajes de rechazo de las reglamentaciones estatales de EE.UU. a los usuarios finales en el marco de trabajo de GPP de IAB, debes usar la API de GPP de IAB.

Debido a la naturaleza de exclusión de las reglamentaciones estatales de EE.UU., puedes usar la clave de cola de devolución de llamada CONSENT_API_READY o CONSENT_DATA_READY para asegurarte de que se pueda llamar a la API de GPP de IAB y que devuelva datos obtenidos con consentimiento en el momento en que se invoquen las devoluciones de llamada.

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

Si usas las soluciones de administración del consentimiento de Google para proporcionar mensajes de rechazo de las reglamentaciones estatales de EE.UU. a los usuarios finales en el marco de trabajo de GPP de IAB, puedes proporcionar tu propio vínculo personalizado No vender ni compartir estableciendo la marca googlefc.usstatesoptout.overrideDnsLink en 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>

Esto garantiza que no se renderice el vínculo predeterminado No vender ni compartir. Luego, debes controlar la interacción del usuario con tu vínculo personalizado de No vender o No compartir invocando el diálogo de confirmación de rechazo de las reglamentaciones estatales de EE.UU.

Ten en cuenta que, cuando usas tu propio vínculo personalizado de No vender o No compartir, eres responsable de asegurarte de que cumpla con las reglamentaciones estatales de EE.UU. Además, el uso de tu propio vínculo personalizado de No vender ni compartir para la función de mensajería de las "reglamentaciones estatales de EE.UU." solo se admite en 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>