Configura el etiquetado del servidor con App Engine

En esta guía, se explica cómo hacer lo siguiente:

  • Aprovisionar un servidor de etiquetado en App Engine de Google Cloud Platform (GCP)
  • Actualiza el servidor de etiquetado para controlar el tráfico en vivo.
  • Aumenta o disminuye la cantidad de servidores que ejecutan tu contenedor de Google Tag Manager.
  • Mantén actualizada la versión del servidor de etiquetado después de aprovisionarlo.

Requisitos previos

  1. Necesitas una cuenta de GCP. Si no tienes una, crea una cuenta de GCP.
  2. Necesitas una cuenta de facturación de GCP. Si no tienes una, crea una cuenta de facturación de GCP (requiere la función de creador de cuentas de facturación).
  3. Necesitas los roles de Creador del proyecto y Usuario de la cuenta de facturación. Obtén más información para agregar roles.

1. Aprovisionar un servidor

Para crear un nuevo servidor de etiquetado en una instancia de App Engine, debes hacer lo siguiente:

  • Crea un nuevo contenedor de servidor en Tag Manager
  • Crea un proyecto de Google Cloud (GCP) nuevo
  • Aprovisiona un nuevo servidor de etiquetado de App Engine
  • Agrega la URL del nuevo servidor de etiquetas al contenedor de servidor de Tag Manager

Crea un contenedor de servidor de Google Tag Manager

  1. Abre Google Tag Manager.

  2. En la fila de la cuenta, haz clic en el menú ampliado > Crear contenedor.

  3. Crea un contenedor de servidor nuevo.

  4. Haz clic en el botón de selección "Aprovisionar manualmente el servidor de etiquetado". Observa la configuración del contenedor. Lo necesitarás para aprovisionar tu servidor.

Crea un nuevo proyecto de GCP

Sigue estos pasos a fin de crear un proyecto de GCP nuevo para tu servidor de etiquetado:

  1. Abre la consola de Google Cloud.

  2. Crea un proyecto de GCP nuevo.

  3. Ponle un nombre al proyecto. Te recomendamos usar el ID del contenedor para mayor comodidad. Este nombre solo se usa dentro de GCP.

  4. Anota el ID del proyecto de GCP, ya que lo necesitarás para crear tu servidor de etiquetado.

Aprovisionar un nuevo servidor de etiquetado

Para crear tu servidor de etiquetado, sigue estos pasos:

  1. Abre Cloud Shell.

  2. Configura el proyecto de GCP en Cloud Shell. Reemplaza project ID por el ID del proyecto de GCP que anotaste antes:

    gcloud config set project project ID
    
  3. Sigue la secuencia de comandos de shell para crear tu servidor de etiquetado. Establece el tipo de implementación en testing.

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

Agrega la URL del servidor de etiquetado a Tag Manager

  1. Abre Google Tag Manager.

  2. En Administrador > Configuración del contenedor, haz clic en Agregar URL. Si no conoces la URL de tu servidor, ejecuta el siguiente comando en Cloud Shell:

    gcloud app browse
    

    Resultado: Configuraste un servidor de etiquetado y lo aprovisionaste con una configuración de testing. Ahora puedes probar el etiquetado del servidor.

Configuración inicial del servidor (testing)

La configuración de prueba es adecuada para explorar el producto, ya que envía pequeñas cantidades de tráfico de prueba y usa la función de vista previa en Tag Manager. Esta configuración es una clase de instancia F1 de App Engine en el entorno estándar y, en la mayoría de los casos, no incurrirás en ningún costo.

2. Usa App Engine en producción

En la configuración de production, cada servidor cuesta aproximadamente USD 40 por mes. Cada servidor es una instancia de App Engine con 1 CPU virtual, 0.5 GB de memoria y 10 GB de disco en el entorno flexible.

Consulta Cómo administrar los costos de App Engine para comprender la facturación de App Engine y cómo configurar alertas de facturación. Te recomendamos configurar una alerta de facturación.

Recomendamos ejecutar un mínimo de 3 servidores para reducir el riesgo de pérdida de datos en caso de una interrupción del servidor. Sin embargo, puedes elegir ejecutar menos (o más) servidores. Se espera que el ajuste de escala automática de 3 a 6 servidores (la configuración predeterminada) controle entre 50 y 200 solicitudes por segundo. El rendimiento depende de la cantidad de etiquetas y de lo que hacen.

Para configurar tu servidor de etiquetado, sigue estos pasos:

  1. Abre Cloud Shell en Google Cloud Platform.
  2. Configura el proyecto de Cloud Platform en Cloud Shell. Reemplaza project ID por el ID del proyecto de GCP que anotaste antes:
    gcloud config set project project ID
  3. Para volver a configurar el servidor de etiquetado para un entorno de producción, ejecuta la siguiente secuencia de comandos de configuración. Realiza las siguientes tareas:
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. Cambia el tipo de implementación a production.
    2. Configurar servidores adicionales para entregar el tráfico de producción Recomendamos un mínimo de tres servidores.

Opcional: Inhabilita el registro

Registro de solicitudes

De forma predeterminada, App Engine registra información sobre cada solicitud (p. ej., ruta de la solicitud, parámetros de consulta, etc.) que recibe. Si tu servidor de etiquetado controla muchas solicitudes por mes (p.ej., más de 1 millón), esos mensajes de registro pueden generar cargos de registro importantes. Para reducir o eliminar los cargos de registro, te recomendamos que inhabilites el registro de solicitudes de App Engine.

Para inhabilitar el registro de solicitudes de App Engine, haz lo siguiente:

  1. En la plataforma de Google Cloud, abre el Enrutador de registros. Asegúrate de estar en el proyecto que coincida con tu ID de contenedor:
    Captura de pantalla del selector de proyectos de GCP, que muestra un ID de contenedor de Tag Manager de muestra
  2. En la línea Type: Cloud Logging bucket, Name: _Default, selecciona el menú ampliado y, luego, haz clic en Edit Sink.
  3. En Destino del receptor, selecciona el bucket de registros _Default.
  4. En Elige registros para incluirlos en el receptor, agrega una línea nueva. Ingresa la siguiente regla para el filtro de inclusión existente:

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. Para inhabilitar también el registro desde el balanceador de cargas, agrega una línea nueva y, luego, ingresa la siguiente regla en el filtro de inclusión existente:

    NOT LOG_ID("requests")
    
  6. Actualiza el receptor para aplicar los cambios. Ahora, las solicitudes de App Engine se excluirán del registro.

  7. Verifica que no aparezcan solicitudes nuevas en los registros del Explorador de registros.

Registro de consola

El servidor de etiquetado, los clientes o las etiquetas de un contenedor pueden registrar mensajes en la consola que pueden generar cargos de registro. Para reducir o eliminar los cargos de registro, puedes inhabilitar los mensajes de registro de la consola no deseados.

Identifica los registros no deseados de la consola:

  1. En GCP, abre el Explorador de registros.
  2. Busca mensajes de registro no deseados que provengan de tus etiquetas. Por ejemplo:

    Una etiqueta puede enviar los siguientes registros:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    Busca los mensajes de registro correspondientes en el campo textPayload:
    Captura de pantalla del Explorador de registros de GCP, que muestra registros de muestra

Para inhabilitar el mensaje de registro de la consola, haz lo siguiente:

  1. En Google Cloud Platform, abre el Enrutador de registros. Asegúrate de que estás en el proyecto que coincide con el ID de tu contenedor:
    Captura de pantalla del selector de proyectos de GCP, que muestra un ID de contenedor de Tag Manager de muestra
  2. En la línea Type: Cloud Logging bucket, Name: _Default, selecciona el menú ampliado y, luego, haz clic en Edit Sink.
  3. En Destino del receptor, selecciona el bucket de registros _Default.
  4. En Elige registros para incluirlos en el receptor, agrega una línea nueva. Ingresa la siguiente regla al filtro de inclusión existente:

    NOT textPayload:"Custom message:"
    

    En el caso de los registros de la consola, reemplaza el texto Custom message: por una subcadena del registro de la consola que deseas inhabilitar. Para obtener filtros más detallados, usa el lenguaje de consulta de registro.

  5. Actualiza el receptor para aplicar los cambios. El mensaje logToConsole que coincida debe excluirse del registro.

  6. Verifica que no aparezcan mensajes de registro nuevos de la consola en el Explorador de registros.

3. Asigna la implementación a tu dominio personalizado

La implementación predeterminada de etiquetado del servidor se aloja en un dominio de App Engine. Te recomendamos que modifiques la implementación para usar un subdominio de tu sitio web.

Asigna el subdominio de tu sitio web a tu servidor de etiquetado.

4. Agrega la URL del servidor a Google Tag Manager

Ahora que tienes un servidor, debes asegurarte de que Google Tag Manager sepa que debe usarlo.

  1. Abre Google Tag Manager.

  2. Haz clic en el contenedor de servidor al que deseas dirigir tu servidor de etiquetas.

  3. Abre la configuración del contenedor de servidor en la pestaña Administrador > Configuración del contenedor.

  4. Haz clic en Agregar URL y pega la URL de tu servidor.

  5. Guarda y vuelve a tu lugar de trabajo.

5. Validación

Ahora que ya configuraste el servidor de etiquetado, asegúrate de que funcione según lo previsto. En tu espacio de trabajo de Tag Manager, haz clic en el botón Vista previa. Si se carga la página de vista previa, significa que todo está configurado de forma correcta.

Cómo obtener una vista previa de varias URLs

Si asignaste varios dominios a un solo servidor de etiquetado, asegúrate de que cada URL se agregue a la configuración del contenedor.

Si proporcionaste varias URLs, todas las rutas (la cadena después del nombre de dominio) deben coincidir.

Funciona No funciona
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Si se agregan varias URLs, verás un ícono junto al botón Vista previa, el cual te permitirá seleccionar la URL de la que quieres obtener una vista previa.

Actualiza la versión del servidor de etiquetado

Las nuevas actualizaciones del servidor de etiquetado contienen correcciones de vulnerabilidades de seguridad y funciones nuevas. Te recomendamos que, al menos, actualices el servidor de etiquetado para cada actualización de la versión principal (p.ej., de la versión 1.x.x a la 2.x.x) cuando Tag Manager te notifique que realices la actualización.

Para actualizar tu servidor de etiquetado, vuelve a ejecutar la secuencia de comandos de configuración con la misma configuración que usaste anteriormente. La configuración existente se establece de forma predeterminada.

Para actualizar tu servidor de etiquetado, sigue estos pasos:

  1. Abre Cloud Shell en Google Cloud Platform.
  2. Configura el proyecto de Cloud Platform en Cloud Shell. Reemplaza project ID por el ID del proyecto de GCP que anotaste antes:
    gcloud config set project project ID
  3. Ejecuta la secuencia de comandos de configuración con la misma configuración que usaste anteriormente. La configuración existente se establece de forma predeterminada.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

Para verificar que la actualización se haya realizado correctamente, sigue estos pasos:

  1. En el contenedor de servidor, haz clic en el botón Preview para iniciar una nueva sesión de depuración y enviar una solicitud en una pestaña independiente.
  2. En Resumen, selecciona la pestaña Consola y asegúrate de que no haya mensajes que te soliciten actualizar el servidor de etiquetado.

Es posible que Tag Manager muestre mensajes en los que se te solicite que actualices tu servidor de etiquetas hasta un día después de que se haya actualizado correctamente. Sin embargo, en la página de vista previa, se mostrará un mensaje actualizado sobre la versión del servidor de etiquetado.

Soluciona problemas de tiempos de espera de implementación de producción

Cuando ejecutas la secuencia de comandos de configuración para crear o volver a configurar el servidor de etiquetado, es posible que se agote el tiempo de espera de la secuencia de comandos. Hay varios motivos por los que esto podría suceder. Los dos más comunes son los siguientes:

  1. Las cuentas de servicio tienen permisos incorrectos: Las cuentas de servicio de Compute Engine y App Engine son responsables de implementar y mantener la implementación de producción. De forma predeterminada, están preconfigurados con los permisos adecuados. Sin embargo, en algunos casos, la política de una organización puede hacer que sean incorrectas.

    1. Navega a la página IAM y administración en la barra de navegación de la izquierda en la consola de Google Cloud.
    2. Busca la cuenta de servicio de Compute Engine <project_number>-compute@developer.gserviceaccount.com y la cuenta de servicio de App Engine <project_name>@appspot.gserviceaccount.com.
    3. Ambas cuentas de servicio deben tener el rol Editor. Si ninguna de las cuentas tiene el rol Editor, haz clic en el ícono de lápiz a la derecha de la cuenta, en el menú desplegable del rol existente, desplázate hasta la parte superior y haz clic en Proyecto y, luego, en Editor para actualizarlo.
  2. Cuota insuficiente: La implementación de producción consume la cuota de Compute Engine. Si el proyecto no tiene una cuota suficiente, es posible que la implementación se agote mientras intenta aprovisionar recursos.

    1. Navega a la página IAM y administración en la barra de navegación de la izquierda en la consola de Google Cloud y, luego, haz clic en la pestaña Cuotas (Quotas) de la barra de navegación de la izquierda.
    2. Cerca de la parte superior de la página, haz clic en el cuadro de texto que dice Filtrar tabla y escribe Compute Engine API. Haz clic en el único resultado.
    3. Verifica que todos los estados de cuota estén dentro del límite o tengan una marca de verificación verde.
    4. Busca CPUs y haz clic en ella. Verifica que el uso actual más la cantidad de instancias implementadas se mantengan por debajo del límite de la región de implementación.