[Analytics] UTM en enlaces de la carta semanal #186

Open
opened 2026-07-29 11:46:47 +00:00 by rafa · 3 comments
Owner

UTM en enlaces de la carta semanal para atribución GA4

Ahora mismo GA4 no puede atribuir de forma fiable las visitas que llegan desde el email de la carta: muchas terminan como Directo. Esto impide medir qué secciones y artículos de cada carta funcionan realmente.

Solicitud

Añadir a todos los enlaces editoriales salientes de cada carta semanal estos parámetros UTM:

utm_source=carta
utm_medium=email
utm_campaign=YYYY-MM-DD
  • Sustituir YYYY-MM-DD por la fecha de envío/publicación de esa carta.
  • Conservar cualquier query string existente y añadir los parámetros con & cuando corresponda.
  • Aplicar a enlaces a Artículos, Comentarios, Multimedia y otros contenidos editorializados; no a enlaces técnicos de baja/privacidad.

Criterio de aceptación

En el siguiente envío, GA4 debe registrar sessionSourceMedium = carta / email y permitir desglose por sessionCampaignName de esa semana.

Rafa quiere usar este dato para decidir la composición semanal de la carta. Por favor, proponed el punto exacto del template/pipeline donde aplicarlo y un dry-run/QA antes de activarlo.

## UTM en enlaces de la carta semanal para atribución GA4 Ahora mismo GA4 no puede atribuir de forma fiable las visitas que llegan desde el email de la carta: muchas terminan como **Directo**. Esto impide medir qué secciones y artículos de cada carta funcionan realmente. ### Solicitud Añadir a **todos los enlaces editoriales salientes de cada carta semanal** estos parámetros UTM: ``` utm_source=carta utm_medium=email utm_campaign=YYYY-MM-DD ``` - Sustituir `YYYY-MM-DD` por la fecha de envío/publicación de esa carta. - Conservar cualquier query string existente y añadir los parámetros con `&` cuando corresponda. - Aplicar a enlaces a Artículos, Comentarios, Multimedia y otros contenidos editorializados; no a enlaces técnicos de baja/privacidad. ### Criterio de aceptación En el siguiente envío, GA4 debe registrar `sessionSourceMedium = carta / email` y permitir desglose por `sessionCampaignName` de esa semana. Rafa quiere usar este dato para decidir la composición semanal de la carta. Por favor, proponed el punto exacto del template/pipeline donde aplicarlo y un dry-run/QA antes de activarlo.
Author
Owner

@mixbot ¿puedes revisar y proponer el punto de aplicación de los UTM de este issue? La prioridad es que el próximo envío de carta salga con la atribución verificable en el criterio de aceptación.

@mixbot ¿puedes revisar y proponer el punto de aplicación de los UTM de este issue? La prioridad es que el próximo envío de carta salga con la atribución verificable en el criterio de aceptación.
Collaborator

Propuesta de implementación (Inma) — UTM solo en el máster de BREVO

Dónde exactamente: en mixbot.py → write_carta_docx(), el generador de 00r_carta.docx — el máster que Inma pega en BREVO y que se convierte en el email de la carta. Ahí:

  1. Enlaces de artículos (todos pasan por un único punto, _add_hyperlink): se les aplica un helper _utm(url) que añade utm_source=carta&utm_medium=email&utm_campaign=YYYY-MM-DD, respetando cualquier query string existente (? vs &).
  2. Enlaces de intro y cola EFFA (vienen copiados del docx base): pasada final sobre las relationships del .docx, etiquetando solo destinos feadulta.com. Los enlaces técnicos (baja/privacidad) los pone BREVO en su plantilla, no van en el máster — quedan fuera solos.

La carta WEB (compose_html) NO lleva UTM, a propósito: la copia publicada en WordPress la lee gente que ya navega por la web; etiquetar sus enlaces como utm_medium=email apuntaría como "email" sesiones que no lo son y contaminaría GA4. El email es el único canal donde hoy se pierde la atribución, y es el único que se etiqueta.

utm_campaign: proponemos la fecha del domingo de la carta (p.ej. 2026-08-02 para la 737): es estable, identifica la semana de forma inequívoca y no baila si el envío se adelanta o retrasa un día. Si prefieres la fecha real de envío desde BREVO, se cambia sin problema — di cuál.

QA / dry-run antes de activar:

  • Regeneramos con --solo-docx (no toca WordPress) el máster de la 736 sobre una copia, con UTM activado.
  • Adjuntamos aquí la lista before/after de todos los enlaces para tu revisión.
  • La comprobación de la "erre" (todos los enlaces deben responder 200) correría ya sobre las URLs etiquetadas → el propio pipeline valida que los UTM no rompen nada.
  • Solo tras tu OK en este issue se activa para la carta siguiente.

Criterio de aceptación (el tuyo): en el primer envío con esto activo, GA4 debería registrar sessionSourceMedium = carta / email y desglosar por sessionCampaignName la semana correspondiente.

## Propuesta de implementación (Inma) — UTM solo en el máster de BREVO **Dónde exactamente:** en `mixbot.py → write_carta_docx()`, el generador de `00r_carta.docx` — el máster que Inma pega en BREVO y que se convierte en el email de la carta. Ahí: 1. **Enlaces de artículos** (todos pasan por un único punto, `_add_hyperlink`): se les aplica un helper `_utm(url)` que añade `utm_source=carta&utm_medium=email&utm_campaign=YYYY-MM-DD`, respetando cualquier query string existente (`?` vs `&`). 2. **Enlaces de intro y cola EFFA** (vienen copiados del docx base): pasada final sobre las *relationships* del .docx, etiquetando solo destinos `feadulta.com`. Los enlaces técnicos (baja/privacidad) los pone BREVO en su plantilla, no van en el máster — quedan fuera solos. **La carta WEB (`compose_html`) NO lleva UTM, a propósito:** la copia publicada en WordPress la lee gente que ya navega por la web; etiquetar sus enlaces como `utm_medium=email` apuntaría como "email" sesiones que no lo son y contaminaría GA4. El email es el único canal donde hoy se pierde la atribución, y es el único que se etiqueta. **`utm_campaign`:** proponemos la **fecha del domingo de la carta** (p.ej. `2026-08-02` para la 737): es estable, identifica la semana de forma inequívoca y no baila si el envío se adelanta o retrasa un día. Si prefieres la fecha real de envío desde BREVO, se cambia sin problema — di cuál. **QA / dry-run antes de activar:** - Regeneramos con `--solo-docx` (no toca WordPress) el máster de la **736** sobre una copia, con UTM activado. - Adjuntamos aquí la lista **before/after de todos los enlaces** para tu revisión. - La comprobación de la "erre" (todos los enlaces deben responder 200) correría ya sobre las URLs etiquetadas → el propio pipeline valida que los UTM no rompen nada. - Solo tras tu OK en este issue se activa para la carta siguiente. **Criterio de aceptación (el tuyo):** en el primer envío con esto activo, GA4 debería registrar `sessionSourceMedium = carta / email` y desglosar por `sessionCampaignName` la semana correspondiente.
Collaborator

Estado: ya se está enviando con UTM (cartas 738 y 739). Falta el veredicto en GA4

Para que quede constancia, porque desde el 29-jul esto ha avanzado por WhatsApp y no en el issue.

Qué se está haciendo

  • Se genera un segundo máster de BREVO junto al normal: 00r_carta_UTM.docx, con los enlaces a feadulta.com etiquetados. La carta publicada en la web NO lleva UTM, a propósito (etiquetar la navegación interna como medium=email ensuciaría GA4).
  • utm_campaign = fecha del domingo de la carta: 2026-08-09 (738) y 2026-08-16 (739).
  • Enviadas con etiquetas: carta 738 (33 enlaces) y carta 739 (35 enlaces).
  • QA antes de cada envío: todos los enlaces etiquetados comprobados uno a uno, 200 los 33 y los 35.

Hallazgo útil: BREVO reescribe los enlaces pero conserva el UTM

En el email todos los href apuntan al dominio de seguimiento de BREVO (…sendibt3.com/mk/cl/…), así que las etiquetas no se ven en el HTML. Pero el redirector sí las conserva en el destino:

https://www.feadulta.com/para-encontrar-a-dios-debo-subir-a-lo-alto/?utm_source=carta&utm_medium=email&utm_campaign=2026-08-09

Verificado sobre el envío de prueba de la 738: de 39 enlaces únicos, 33 llegan con UTM y los 6 restantes son los que no debían llevarlo (Benedictinas, edicionesfeadulta.com y los técnicos de BREVO).

⚠️ Excepción medida: /carta-de-la-semana/ y /la-semana-pasada/ son páginas que redirigen (302) a la categoría correspondiente y pierden la etiqueta por el camino — esos dos clics de navegación no se atribuyen. Ocurre igual sin UTM, no lo causa esto.

Lo que falta

Comprobar en GA4 que aparece sessionSourceMedium = carta / email con desglose por sessionCampaignName. Dos avisos para cuando se mire:

  1. Agosto es valle estacional y además coincide con el cutover del 03-ago, así que la comparación útil no es contra julio sino interanual (agosto 2025 vs agosto 2026). Los UTM no dependen del volumen: miden atribución, no tráfico.
  2. Si el dato sale bien, se integra en mixbot de serie y se acaban las versiones dobles del máster.
## Estado: ya se está enviando con UTM (cartas 738 y 739). Falta el veredicto en GA4 Para que quede constancia, porque desde el 29-jul esto ha avanzado por WhatsApp y no en el issue. ### Qué se está haciendo - Se genera un **segundo máster de BREVO** junto al normal: `00r_carta_UTM.docx`, con los enlaces a `feadulta.com` etiquetados. La **carta publicada en la web NO lleva UTM**, a propósito (etiquetar la navegación interna como `medium=email` ensuciaría GA4). - `utm_campaign` = **fecha del domingo de la carta**: `2026-08-09` (738) y `2026-08-16` (739). - Enviadas con etiquetas: **carta 738** (33 enlaces) y **carta 739** (35 enlaces). - QA antes de cada envío: **todos los enlaces etiquetados comprobados uno a uno, 200 los 33 y los 35**. ### Hallazgo útil: BREVO reescribe los enlaces pero **conserva el UTM** En el email todos los `href` apuntan al dominio de seguimiento de BREVO (`…sendibt3.com/mk/cl/…`), así que las etiquetas **no se ven en el HTML**. Pero el redirector sí las conserva en el destino: ``` https://www.feadulta.com/para-encontrar-a-dios-debo-subir-a-lo-alto/?utm_source=carta&utm_medium=email&utm_campaign=2026-08-09 ``` Verificado sobre el envío de prueba de la 738: de **39 enlaces únicos, 33 llegan con UTM** y los 6 restantes son los que no debían llevarlo (Benedictinas, edicionesfeadulta.com y los técnicos de BREVO). ⚠️ **Excepción medida:** `/carta-de-la-semana/` y `/la-semana-pasada/` son páginas que redirigen (302) a la categoría correspondiente y **pierden la etiqueta por el camino** — esos dos clics de navegación no se atribuyen. Ocurre igual sin UTM, no lo causa esto. ### Lo que falta Comprobar en GA4 que aparece `sessionSourceMedium = carta / email` con desglose por `sessionCampaignName`. Dos avisos para cuando se mire: 1. **Agosto es valle estacional** y además coincide con el cutover del 03-ago, así que la comparación útil no es contra julio sino **interanual (agosto 2025 vs agosto 2026)**. Los UTM no dependen del volumen: miden atribución, no tráfico. 2. Si el dato sale bien, **se integra en mixbot de serie** y se acaban las versiones dobles del máster.
Sign in to join this conversation.
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rafa/feadulta#186