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 aprovisionar el servidor.

Requisitos previos

  1. Necesitas una cuenta de GCP. Si no tienes una, crea una cuenta de GCP nueva.
  2. Necesitas una cuenta de facturación de GCP. Si no la tienes, crea una cuenta de facturación de GCP (requiere la función de Creador de cuentas de facturación).
  3. Necesitas el rol Creador de proyectos y Usuario de 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, sigue estos pasos:

  • Crea un contenedor de servidor nuevo en Tag Manager
  • Crea un proyecto de Google Cloud nuevo (GCP)
  • Aprovisionar un nuevo servidor de etiquetado de App Engine
  • Agrega la URL del servidor de etiquetado nuevo al contenedor del 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 nuevo contenedor de servidor.

  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 proyecto de GCP nuevo

A fin de crear un proyecto de GCP nuevo para tu servidor de etiquetado, sigue estos pasos:

  1. Abre la consola de Google Cloud.

  2. Crea un proyecto de GCP nuevo.

  3. Ponle un nombre al proyecto. Te recomendamos que uses el ID del contenedor para mayor comodidad. Este nombre solo se usa en 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. Crea tu servidor de etiquetado con la secuencia de comandos de shell. Establece el tipo de implementación en testing.

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

Agregar la URL del servidor de etiquetado a Tag Manager

  1. Abre Google Tag Manager.

  2. En Administrador > Configuración de contenedores, 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 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 mediante el envío de pequeñas cantidades de tráfico de prueba y el uso de 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 se generarán costos.

2. Cómo usar App Engine en producción

En la configuración de production, cada servidor cuesta alrededor de $40 por mes (USD). 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 Administra 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 interrupción del servidor. Sin embargo, puedes optar por ejecutar menos (o más) servidores. Esperamos que el ajuste de escala automático de 3 a 6 servidores (la configuración predeterminada) maneje entre 50 y 200 solicitudes por segundo. El rendimiento depende de la cantidad de etiquetas y de lo que estas 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. Si quieres volver a configurar el servidor de etiquetado para un entorno de producción, ejecuta la secuencia de comandos de configuración que se indica a continuació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. Configura servidores adicionales para entregar el tráfico de producción. Recomendamos un mínimo de tres servidores.

Inhabilita el registro (opcional)

Solicitar registro

De forma predeterminada, App Engine registra información sobre cada una de las solicitudes (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 significativos. Para reducir o eliminar los cargos de registro, recomendamos inhabilitar el registro de solicitudes de App Engine.

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

  1. En Google Cloud Platform, abre el Enrutador de registros. Asegúrate de que estés 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 el campo Tipo: Bucket de Cloud Logging, Nombre: _Default, selecciona el menú ampliado y, luego, haz clic en Editar receptor.
  3. En Destino del receptor, selecciona el bucket de registros _Predeterminado.
  4. En Elige registros para incluirlos en el receptor, agrega una línea nueva. Ingresa la siguiente regla en 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 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 la 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 no deseados de la consola.

Identifica los registros no deseados de la consola:

  1. En GCP, abre el Explorador de registros.
  2. Busca cualquier mensaje de registro no deseado que se origine en 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 con registros de muestra.

Para inhabilitar el mensaje de registro de la consola, sigue estos pasos:

  1. En Google Cloud Platform, abre el Enrutador de registros. Asegúrate de que estés 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 el campo Tipo: Bucket de Cloud Logging, Nombre: _Default, selecciona el menú ampliado y, luego, haz clic en Editar receptor.
  3. En Destino del receptor, selecciona el bucket de registros _Predeterminado.
  4. En Elige registros para incluirlos en el receptor, agrega una línea nueva. Ingresa la siguiente regla en el filtro de inclusión existente:

    NOT textPayload:"Custom message:"
    

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

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

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

3. Asigna la implementación a tu dominio personalizado

La implementación predeterminada del 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. Cómo agregar 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 del servidor que deseas apuntar al servidor de etiquetado.

  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. Haz clic en Guardar y regresa a tu lugar de trabajo.

5. Datos

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

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 de acceso (la string después del nombre de dominio) deben coincidir.

Funcionamiento 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 Preview que te permite seleccionar la URL de la que deseas 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 versión principal (p.ej., actualizar de la versión 1.x.x a la 2.x.x) cuando Tag Manager te notifique que debes realizar la actualización.

Para actualizar el servidor de etiquetado, vuelve a ejecutar la secuencia de comandos de configuración con la misma configuración que utilizaste anteriormente. Los parámetros de configuración existentes se establecen 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 los mismos parámetros de configuración que usaste anteriormente. Las opciones de configuración existentes se establecen de forma predeterminada.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

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

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

Tag Manager puede mostrar mensajes en los que se te solicita que actualices el servidor de etiquetado hasta un día después de que el servidor se actualice correctamente. Sin embargo, la página de vista previa mostrará un mensaje actualizado sobre la versión del servidor de etiquetado.

Soluciona problemas de tiempos de espera de implementaciones 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 varias razones por las que esto podría suceder. Las dos más comunes son las 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 alguna de las cuentas no tiene la función Editor, haz clic en el ícono de lápiz a la derecha de la cuenta para actualizar la función, luego en el menú desplegable de la función existente, desplázate hacia la parte superior y haz clic en Proyecto y, luego, en Editor.
  2. Cuota insuficiente: la implementación de producción consume cuota de Compute Engine. Si el proyecto no tiene una cuota suficiente, es posible que se agote el tiempo de espera de la implementación mientras intenta aprovisionar recursos.

    1. Dirígete a la página IAM y administración en la barra de navegación del lado izquierdo en la consola de Google Cloud y, luego, haz clic en la pestaña Cuotas en 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 la cuota estén dentro del límite o tengan una marca de verificación verde.
    4. Busca y haz clic en CPUs. Verifica que el uso actual y la cantidad de instancias que se implementen seguirán estando por debajo del límite de la región de implementación.