Gracias por consultar la versión preliminar de la nueva documentación sobre la plataforma de etiquetas de Google. Este sitio web está en versión beta pública. (Comentarios)

Configurar el consentimiento en plantillas de Tag Manager

Organízate con las colecciones Guarda y clasifica el contenido según tus preferencias.

Google Tag Manager incluye varias funciones que te ayudan a crear soluciones de gestión de consentimiento con plantillas de Tag Manager que puedes implementar. Estas plantillas están disponibles en la galería de plantillas de la comunidad. Estas funciones incluyen un conjunto de APIs y tipos de consentimiento que le permiten tener un mayor control sobre el comportamiento de las etiquetas. Más información sobre la configuración y los ajustes de consentimiento de Tag Manager

Para configurar los ajustes de consentimiento predeterminado, use la setDefaultConsentState API. Durante la configuración inicial de los usuarios, pregúnteles por las opciones predeterminadas que quieren usar. En el siguiente ejemplo se muestra la llamada setDefaultConsentState de un usuario que ha indicado que ad_storage debe ser 'denied' y que analytics_storage, functionality_storage, personalization_storage y security_storage deben ser 'granted' de forma predeterminada:

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'ad_storage': 'denied',
  'analytics_storage': 'granted',
  'functionality_storage': 'granted',
  'personalization_storage': 'granted',
  'security_storage': 'granted',
  'wait_for_update': 500
});

Actualizar el comportamiento de las etiquetas

Usa la API updateConsentState para actualizar el estado de consentimiento de los usuarios del sitio web cuando lo hayan indicado (por lo general, mediante un banner en el que se les solicita). En el siguiente ejemplo se muestra la llamada updateConsentState de un usuario que ha indicado su consentimiento para ad_storage, analytics_storage, functionality_storage, personalization_storage y security_storage:

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'analytics_storage': 'granted',
  'functionality_storage': 'granted',
  'personalization_storage': 'granted',
  'security_storage': 'granted'
});

Ejemplo de implementación

En el siguiente ejemplo de implementación, debe crear tres campos en el editor de plantillas.

El campo command

  1. En la pestaña Campos, haga clic en Añadir campo.
  2. Seleccione Menú desplegable.
  3. Cambia el nombre a command.
  4. Haga clic en Añadir elemento de menú y, a continuación, introduzca default en Nombre del elemento y default en Valor.
  5. Haga clic en Añadir elemento de menú y, a continuación, introduzca update en Nombre del elemento y update en Valor.

El campo defaultSettings

  1. En la pestaña Campos, haga clic en Añadir campo.
  2. Seleccione Tabla de parámetros.
  3. Cambie el nombre a defaultSettings y, a continuación, despliegue el campo.
  4. Cambie el Nombre visible a Default settings.
  5. Haga clic en Añadir columna, seleccione Entrada de texto, cambie el nombre a regiony marque la opción Los valores de las columnas deben ser únicos. Despliegue la columna y cambie el nombre visible a Region (leave blank for all regions).
  6. Haga clic en Añadir columna, seleccione Entrada de texto y cambie el nombre a granted. Despliegue la columna y cambie el nombre visible a Granted (comma separated).
  7. Haga clic en Añadir columna, seleccione Entrada de texto y cambie el nombre a granted. Despliegue la columna y cambie el nombre visible a Granted (comma separated).

El campo updateSettings

Repita los pasos correspondientes al campo defaultSettings, pero asigne un nombre al campo updateSettings en lugar de al campo defaultSettings.

Cuando haya creado esos tres campos, puede continuar en la pestaña Código y escribir el siguiente código:

const setDefaultConsentState = require('setDefaultConsentState');
const updateConsentState = require('updateConsentState');

const splitInput = (input) => {
  return input.split(',')
    .map(entry => entry.trim())
    .filter(entry => entry.length !== 0);
};

const parseCommandData = (settings) => {
  const regions = splitInput(settings.region);
  const granted = splitInput(settings.granted);
  const denied = splitInput(settings.denied);

  const commandData = {};
  if (regions.length > 0) {
    commandData.region = regions;
  }
  granted.forEach(entry => {
    commandData[entry] = 'granted';
  });
  denied.forEach(entry => {
    commandData[entry] = 'denied';
  });
  return commandData;
};

if (data.command === 'default') {
  data.defaultSettings.forEach(settings => {
    const commandData = parseCommandData(settings);
    setDefaultConsentState(commandData);
  });
}
if (data.command === 'update') {
  data.updateSettings.forEach(settings => {
    const commandData = parseCommandData(settings);
    updateConsentState(commandData);
  });
}

data.gtmOnSuccess();

Tipos de consentimiento

tipo de consentimiento
ad_storage obligatorio
analytics_storage obligatorio
functionality_storage recomendado
personalization_storage recomendado
security_storage recomendado

Comportamiento específico para regiones concretas

Para cambiar el comportamiento predeterminado de las etiquetas con los usuarios de determinadas regiones, especifique una región en el comando de consentimiento. De esta forma, puede ajustar los valores predeterminados según las ubicaciones geográficas de los usuarios. En este ejemplo, se asigna el valor 'denied' a analytics_storage para los usuarios de España y Alaska, y el valor 'granted' a analytics_storage para todos los usuarios:

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});
setDefaultConsentState({
  'analytics_storage': 'granted'
});

Cuanto más específicos son los parámetros, más prioridad tienen

Si se ejecutan dos comandos de consentimiento predeterminados en la misma página con valores para una región y una subregión, se aplicará el comando correspondiente al parámetro más específico. Por ejemplo, si has asignado el valor 'granted' a ad_storage para la región US y el valor 'denied' a ad_storage para la región US-CA, a un visitante de California (CA) se le aplicará la configuración de US-CA, ya que es la más específica. En este ejemplo eso significa que, para el visitante de US-CA, a ad_storage se le asigna el valor 'denied'.

Región ad_storage Comportamiento
US 'granted' Se aplica a los usuarios de Estados Unidos que no están en California.
US-CA 'denied' Se aplica a los usuarios de California, en Estados Unidos.
Sin especificar 'granted' Se usa el valor predeterminado 'granted'. Se aplica a todos los usuarios que no se encuentren en Estados Unidos ni en California.