Escriba los datos en Firestore desde el servidor Google Tag Manager

Autor
Stape
Publicado
26 abr 2022
También disponible

La integración de Firestore y sGTM ofrece numerosas oportunidades para el etiquetado del lado del servidor. Lo mejor que puede hacer con esta combinación es enriquecer los datos del lado del servidor.

Puedes obtener rápidamente datos de Firestore utilizando una nueva variable Firestore Lookup. Es una variable nativa y disponible para todos en sGTM. Pero, ¿cómo se pueden escribir datos en Firebase? Stape ha resuelto este problema creando una etiqueta Firestore Writer.

Esta entrada del blog mostrará cómo escribir datos a Firestore desde el contenedor del lado del servidor de Google Tag Manager. También mostraré cómo utilizar la etiqueta Firestore Writer y la variable Firestore Lookup para enriquecer los datos del lado del servidor. ¡Vamos a empezar!

¿Qué es Firestore?Copie el enlace a esta sección

Firestore es una base de datos NoSQL flexible y escalable con almacenamiento orientado a documentos. A diferencia de las bases de datos SQL, en Firestore no hay tablas ni filas, sino que los datos se almacenan en documentos que se organizan en colecciones para facilitar la navegación y la gestión.

firestore writer

Firestore es la solución perfecta para quienes tienen extensas colecciones de pequeños documentos. Almacena los datos en documentos que se organizan en colecciones. Cada documento incluye pares nombre-valor. 

Firestore y servidor Google Tag ManagerCopie el enlace a esta sección

Con la última versión de la API GTM del lado del servidor, ahora es posible construir la integración de Firestore y sGTM. Hemos utilizado esta API para crear la etiqueta Firestore Writer. Permítanme describir rápidamente las funciones que ofrece la API de Firestore sGTM.

Firestore.read - lee datos del documento Firestore y devuelve una promesa que resuelve un objeto que contiene dos claves: id y data.

Firestore.write - escribe datos en un documento o colección de Firestore. Si sólo se especifica la ruta a la colección, el documento se creará automáticamente con un nombre aleatorio.

Firestore.query - devuelve una matriz de documentos de Firestore que coinciden con las condiciones de consulta especificadas.

Firestore.runTransaction - permite leer y escribir desde Firestore automáticamente.

Etiqueta Firestore WriterCopie el enlace a esta sección

firestore writer

Firebase Path - especifique una ruta de acceso a su documento o colección de Firestore. Si la ruta es a una colección, se creará un documento con un ID generado aleatoriamente. Si la ruta es a un documento que no existe, se generará un documento.

Hay varios tipos de acciones que permite esta etiqueta:

1. Add Event Data - envíe todos los Datos de Evento que tenga en sGTM al documento Firestore. Si los Datos de Evento y los Datos Personalizados tienen el mismo campo, se utilizará el valor de los Datos Personalizados para ese campo. En otras palabras, puede anular los valores de los Datos de Eventos con los Datos Personalizados.

2. Merge document keys - si está marcada, la etiqueta fusionará las claves del documento de Fire Store con los datos de sGTM. De lo contrario, la etiqueta anulará todo el documento.

3. Override Firebase Project ID - El ID de proyecto se recupera de la variable de entorno GOOGLE_CLOUD_PROJECT siempre que el ajuste de permiso access_firestore para el ID de proyecto esté establecido en * o GOOGLE_CLOUD_PROJECT. Si el contenedor del servidor se ejecuta en Google Cloud, GOOGLE_CLOUD_PROJECT ya estará asignado al ID del proyecto de Google Cloud.

4. Add Timestamp - si está activada, la etiqueta añadirá la marca de tiempo en milisegundos al documento.

Custom Data - utilícelo para anular los datos del evento.

Para configurar la etiqueta Firestore Writer necesitaráCopie el enlace a esta sección

Si utiliza stape para el alojamiento de sGTM, necesitará estas cosas para configurar la etiqueta Firestore Writer:

1. Cuenta de servicio de Google conectada al stapeCopie el enlace a esta sección

1. Cree o inicie sesión en la consola web de Google Cloud Platform.

2. Seleccione IAM & Admin -> Cuentas de servicio -> Haga clic en Crear cuenta de servicio.

create service account

3. Añada la cuenta -> Haga clic en Siguiente -> Seleccione el rol BigQuery Data Editor para el acceso a BigQuery o el rol Cloud Datastore User para Firestore.

Si quiere utilizar la cuenta de servicio de Google sólo para BigQuery, elija sólo el rol de editor de datos de BigQuery. Lo mismo para Firestore.

Cuando llegue al tercer paso, haga clic en Listo.

google service account

4. Cree la clave privada -> Seleccione JSON -> seleccione Crear -> JSON se descargará en su ordenador. 

create private key

5. Abra su cuenta de stape.io -> abra el contenedor sGTM -> abra la pestaña Power-ups -> cargue el archivo JSON que ha descargado de Google Cloud -> haga clic en Guardar. 

account in stape

2. Cuenta FirebaseCopie el enlace a esta sección

1. Abra Firebase -> haga clic en Crear Proyecto -> seleccione el mismo proyecto que ha utilizado para crear la cuenta de servicio de Google -> haga clic en Continuar -> haga clic en Añadir Firebase en el tercer paso.

2. Haga clic en Build -> Firestore Database.

firebase

3. Haga clic en Crear base de datos -> seleccione Iniciar en modo de producción -> Haga clic en Siguiente.

create database

4. Seleccione la ubicación de Cloud Firestore. Debe coincidir con la ubicación de su servidor sGTM. Para comprobar la ubicación del servidor sGTM, vaya a su cuenta de stape.io -> abra el contenedor sGTM que desea integrar con Firebase y marque Ubicación del servidor. 

create database

5. Haga clic en Iniciar una colección. Aquí tendrá que establecer Firebase Path que últimamente se utilizará para Firestore Writer Tag. He añadido la ruta de Firebase a la compra -> Haga clic en Guardar.

start collection

Cómo configurar la etiqueta Firestore WriterCopie el enlace a esta sección

La capacidad de escribir y leer datos a/desde Firestore ofrece numerosos escenarios para el enriquecimiento de datos. Usted almacena los datos en Firestore utilizando la etiqueta Firestore Writer y extrae los datos necesarios con la ayuda de la variable Firestore Lookup para enviarlos en las etiquetas sGTM.

En este ejemplo, quiero enviar los datos del usuario a la API de conversión de Facebook y cuando esta información no está disponible en los datos del evento sGTM. Para conseguirlo, almacenaré los datos del usuario y el id de cliente de Google Analytics (_gid) en Firebase cuando un usuario realice una compra. Usando la variable de búsqueda de Firestore y _gid (como identificación única del usuario), extraeré los detalles del usuario en el evento page_view y enriqueceré el evento pageview de Facebook CAPI.

1. Cree y configure un contenedor del lado del servidor de Google Tag Manager.

2. Envíe los datos al contenedor GTM del servidor. Los dos más populares para enviar datos a sGTM son Google Analytics 4 y Data Tag/Data Client.

3. Descargue la etiqueta Firestore Writer desde GitHub -> Abra las secciones de plantillas en el contenedor de Google Tag Manager del servidor -> Haga clic en Nuevo.

4. Haga clic en los tres puntos de la esquina superior derecha -> Haga clic en Importar -> Seleccione la plantilla de la etiqueta Firestore Writer que ha descargado recientemente de GitHub -> Haga clic en Guardar.

firestore writer tag

5. Cree una nueva etiqueta Firestore Writer -> Añada la ruta de Firebase. Utilizaré path purchase, esta configuración creará una nueva colección llamada compra en Firestore, y todas las nuevas compras se añadirán como documentos Firestore con nombres aleatorios. Voy a seleccionar una acción Añadir Datos de Eventos, lo que significa que la etiqueta escribirá todos los datos de eventos a Firestore. También añadí Datos Personalizados para añadir user_email y user_id al documento de Firestore. Dado que este es un sitio de prueba y una configuración de demostración, yo no hash de datos de usuario, pero si usted utiliza un formato similar en la producción, asegúrese de hash de datos de usuario.

firestore wirter tag

6. Pruebe su etiqueta y compruebe qué datos se han añadido a Firestore. En mi caso, cada vez que un usuario compra en el sitio, se añade un nuevo documento a Firestore con los datos del evento sGTM. 

test the firebase tag

7. Ahora, cree la variable Firestore Lookup en sGTM. He seleccionado Collection Path & Query -> Specify Collection Path -> Set your condition. En mi caso, cada vez que user_id (en Firestore) coincida exactamente con la variable gid (en sGTM), la variable de búsqueda extraerá el valor de user_email en el documento Firestore correspondiente.

variable firestore lookup

8. Pruebe la variable Firestore Lookup en la vista previa de sGTM. 

user email lookup

9. Ahora, puedo enviar datos enriquecidos de sGTM con el correo electrónico del usuario, incluso si el correo electrónico del usuario no está disponible en sGTM. 

Conclusión:Copie el enlace a esta sección

Las posibilidades son infinitas en lo que respecta al enriquecimiento de datos con la ayuda de Firestore y el servidor Google Tag Manager. Es relativamente fácil escribir datos de sGTM en Firestore. El paso principal es crear un esquema de datos almacenados en Firestore y extraerlos cuando los necesite para enriquecer las etiquetas sGTM.

Si necesita ayuda para configurar el seguimiento del lado del servidor, no dude en ponerse en contacto con nosotros. Podemos ayudarle a introducir sus datos en Firestore y a empezar a obtener información sobre ellos en muy poco tiempo. Gracias por leer!

¿Necesita ayuda para configurar el etiquetado del lado del servidor?

Todo lo que se necesita son unas simples preguntas. Haga clic en Obtener ayuda, rellene el formulario, y le enviaremos un presupuesto.

Obtener ayuda

Aloje su servidor GTM en Stape¡ahora mismo!