Capturar campañas internas en Google Analytics


Creo que a estas alturas es difícil encontrar empresas o negocios que no sepan etiquetar sus campañas de captación de tráfico (otro tema es que siempre lo hagan bien). Esto era algo muy común hace solo unos pocos años pero a día de hoy hay pocos que no comprendan como usar las campañas de analytics para poder examinar el comportamiento y la conversión de los distintos canales por los que se provoca intencionadamente el tráfico.

Sin duda los modelos van evolucionando y ahora el bloqueo suele existir en el análisis dentro de la web y no tanto en la adquisición o conversión que están ya bastante asumidos en la mayor parte de negocios online. Y dentro de este análisis hoy quisiera hablaros de un tema que siempre veo que se presta a confusión: Las campañas Internas. Estos banners o mensajes que en una web (sobretodo en una web muy activa) podemos ir lanzando al usuario a medida que navega. Nuestro querido usuario se puede ver así impactado no solo por nuestro contenido o por publicidad de terceros (adsense, dfp, etc.) sino que podemos querer dirigirle hacia puntos concretos del site o dejarle claras nuestra ventajas y ofertas. Para ello mucha gente más que contendidos usa sistemas semejantes a la publicidad gráfica o incluso se mezcla la «autopromo» entre los banners de algún adservice.

Las ventajas de realizar este tipo de acciones son obvias: impactamos al usuario en el lugar preciso que escogemos y si todo va bien le dirigimos hacia nuestros intereses. El problema viene luego, cuando queremos saber qué ha pasado. Ya tenemos nuestras campañas internas en nuestro site y viene el siguiente paso: quiero saber qué hacen los usuarios que las usan. ¿Realmente sirven a mi propósito? ¿En qué medida? ¿Qué campañas funcionan mejor con mis usuarios? ¿Donde tienen un mayor impacto? ¿Qué mensajes mejoran más mi conversión?

Veamos si podemos dar respuesta a todo esto…

informe_campañas_internas

Qué son las campañas Internas?

Las campañas internas son sistemas que podemos usar en nuestra web para impactar sobre nuestro usuario advirtiéndole sobre algún producto, mensaje o ventaja que le ofrece nuestra web nuestra web. Son muy similares a las campañas de pago típicas del marketing online, con la salvedad de que tienen por destino la misma web que las publica y por lo tanto el objetivo de estas no es capturar a la visita (que ya es nuestra) sino guiarla hacia alguna parte de la web que deseamos potenciar. Normalmente hablamos del cumplimiento de algún objetivo de la web ya sea este económico, de fidelización o de marca.

Algunos ejemplo de campañas internas serían:

  • Banners destacando algún producto o sección de la web.
  • Links de texto promocionando otros artículos.
  • Artículos relacionados.
  • Bloques de Cross-Selling o Up-Selling
  • Procesos por los que obtener un descuento
  • CTA’s hacia el alta de usuario o hacia la suscripción al newsletter.
  • Etc.

En definitiva todo lo que añadamos en nuestra web fuera de su estructura lógica de navegación y que vaya destinado a manipular la navegación o la intención de compra de un usuario podría ser considerado una campaña interna.

Cómo suelen medirse estas campañas?

En un primer análisis superficial tiende a medirse simplemente el uso que hacen los usuarios de las mismas: es decir, los clics recibidos o el CTR de cada bloque propuesto al usuario. Esto es simple de medir con eventos. Etiquetamos eventos en los clicks de dichos mensajes y todo queda preparado para el análisis:


Si encima usamos un adserver, la monitorización de clics e impresiones será automática.

Una vez con los eventos medidos y con un poco de control sobre las herramientas de analítica seremos capaces de crear segmentos que nos permitan diferenciar entre el tráfico que hizo click en dichas campañas del que no lo hizo. Podemos entonces realizar análisis diferenciados de cómo cumplen nuestros KPI’s los usuarios que hicieron click en ciertas campañas internas vs los que no las ususaron. Normalmente veremos como el porcentaje de conversión de aquellos que hicieron click es superior lo que en un principio podría terminar justificando la acción en si misma.

Sin embargo toda esta información si bien es muy útil para empezar a trabajar en realidad sigue siendo un poco vaga, pues nos obliga a observar evento a evento (sin agrupaciones especiales) y nos provoca problemas para seguir el comportamiento del usuario tras el click. ¿Qué campañas internas convierten? ¿De qué tipología? ¿Cual es la última que impacta en nuestros usuarios? ¿que fragmento de la navegación del usuario se realiza realmente tras la campaña? Todo esto se vuelve bastante complejo o incluso imposible de observar con solo un evento en el click de la campaña…

Sistemas de medición de campañas internas

Al margen de los eventos de click en campañas internas (que siempre hay que medirlos, una cosa no quita la otra) hay 2 sistemas que suele usar la gente para seguir estas campañas y al que yo añadiré un tercero de mi propia cosecha:

Usar el sistema de campañas de analytics (el más usado y también el más desaconsejado)

Mucha gente cuando se enfrenta a las campañas internas se queda solo con el concepto de «campaña» y piensa en campañas de forma global, sin importarle si estas son internas o de adquisición. En consecuencia se decide etiquetar las campañas internas con los enlaces de las campañas normales de analytics (los famosos utm_…). Esto es un grave error pues lo que se hace realmente es solapar la información de los dos tipos campañas en un único dato y quitarnos mucha visibilidad sobre lo que pasa en nuestra web. Todo se transformar en un pequeño caos.

El problema es el término «Campaña» que nos hace pensar que se trata todo de lo mismo cuando en realidad las campañas internas y las campañas reales de analytics son dos cosas separadas a nivel de información:

  • Las campañas normales son métricas y dimensiones de análisis de la adquisición: nos informan sobre como ha llegado cada visita a nuestro site. Las usamos para ver que fuentes de tráfico nos traen más usuario y para evaluar la calidad de este tráfico.
  • Las campañas internas, en cambio, deberían ser dimensiones de comportamiento: Nos informan sobre que hace el usuario en nuestra web. Qué acciones realiza, qué inputs recibe y en consecuencia podremos examinar como afectará luego este comportamiento a la conversión.

Si usamos campañas normales para medir el comportamiento del usuario en nuestras campañas internas lo que conseguimos es que una acción interna realizada por el usuario nos BORRE datos sobre cómo este ha entrado en nuestra web. Los datos se mezclan y lo peor de todo, no sabemos a ciencia cierta en qué medida…

Imaginemos un caso:

Tengo un banner interno que promociona un producto con descuento. Este producto lo etiqueto como «?utm_medium=internal-campaign&utm_source=mi-bonito-banner». Es decir que mi medio pasará a valer «internal-campaign» y mi fuente «mi-bonito-banner».

Ahora pongamos que un amplio porcentaje de mi web entra por SEO (medium==organic) y en menor medida por adwords (medium==cpc) o por referencias en otras webs (medium==referral). De esos usuarios un porcentaje determinado hace click en la campaña que le ofrezco por lo que su medio se sobreescribe al recibir una nueva campaña etiquetada. Al final en nuestros informes aparece una información semejante a la siguiente:

– organic: 55%
– cpc: 26%
internal-campaign: 14%
– referral: 5%

Y aquí es donde tengo el problema. Ese 14% clicó en mi banner interno, eso nadie lo discute, pero… ¿cómo llegó toda esa gente a mi web? No tengo realmente ni idea de eso pues al informar el medio «internal-campaign» he sobreescrito el original y ya no se de donde venía el usuario. Hablando mal «la he liado parda», mis datos ya no tienen ninguna validez.

¡Nada! Que este sistema no es bueno, punto. No se usa. ¡Caca!

Usar las búsquedas internas (el sistema recomendado por Justin Cutroni)

Otro de los sistemas más extendidos es el detallado por Justin Cutroni en su blog.

Básicamente lo que nos dice es que sigamos el siguiente proceso:

  • 1) Usamos una variable propia (por ejemplo: «internal_campaign») en estas campañas. Es decir que mis links se etiquetarían por ejemplo como «?internal_campaign=banner-sidebar».
  • 2) En el administrador de analytics creamos un nuevo perfil (con una configuración separada a la real de nuestro site) y en este configuremos la variable que estamos usando como variable de búsqueda interna. Es decir: Activo el seguimiento de búsqueda interna y le digo que saque la búsqueda de «internal_campaign» que es la variable que he etiquetado.

campanas_internas_como_busqueda

A partir de ese momento disfrutaremos de todos los informes de búsquedas internas para analizar nuestras campañas internas sin que se choquen con otros datos de campaña (pues se ocupan dimensiones distintas para almacenar la información).

Brillante la verdad. Con solo 2 añadidos conseguimos hacer un seguimiento muy digno de nuestros recursos internos para impactar en el usuario. Dispondremos de:

  • Visitas que pasan por la campaña (= visitas que realizan búsqueda).
  • Qué campañas son las que usan los usuarios< (= la palabra clave buscada)
  • En qué páginas se hizo clic en las campañas (= páginas de inicio de la búsqueda)
  • E incluso el número de campañas distintas por las que pasa el usuario (= sacado de número de búsquedas por usuario)

campanas_internas_menu_busqueda

El problema de este sistema se produce en alguno de estos casos:

1) Cuando necesitamos visualizar datos de búsquedas internas y de campañas internas a la vez (pues no podemos tener en un perfil ambas cosas a la vez, se solaparían)
2) Cuando necesitamos detallar la información de campaña por medios, fuentes, nombres, etc. Pues la búsqueda interna de analytics solo nos dará dos variables: keyword y categoría.
3) Cuando tengamos ya un sistema de perfiles en nuestro site bastante trabajado, pues deberemos duplicar cada perfil para añadirle las campañas internas.
4) Cuando distintas personas acceden a Analytics y no todas son capaces de entender que hemos manipulado los valores de búsquedas internas para que signifiquen otra cosa.

Son casos complejos, que solo pasarán en webs con mucha actividad, pero casos a fin de cuentas, son cosas que suceden en muchas webs.

Yo no soy muy amigo de usar esta metodología en mis proyectos porque creo que se mezclan cosas y que se pueden montar sistemas más potentes y versátiles, pero hay que reconocer que en cuanto a sencillez es difícil superar a esta técnica: 2 variables añadidas a los links de mis páginas internas, una leve configuración y ya lo tenemos todo medido. Entiendo que esta sea la opción para muchos analistas que no quieren complicarse la vida. Todo es valorar lo que ganas y lo que pierdes.

Sea como sea conviene echarle un ojo al post de Cutroni sobre campañas internas (en inglés), con sus ejemplos y tanto para valorar la posibilidad como para sacar ideas propias.

Una tercera opción: Con dimensiones personalizadas propias

Por último quiero explicaros el sistema que yo estoy usando: Crear mi propio sistema de campañas internas, paralelo al de las campañas de analytics y almacenar en analytics aquellos datos que deseo como dimensiones personalizadas.

¿De qué va todo esto? Pues en realidad sigue siendo bastante sencillo aunuqe pasa a requerir algunos ajustes en el código de captura de Analytics:

  • Creamos una colección de variables semejantes a las de analytics (cambiando «utm_» por «ic_» de «internal campaign»).
  • Añadimos un pequeño código javascript que recoja estas variables y las vaya almacenando en cookies
  • Y cambiamos nuestro código de analytics para guardar como dimensiones personalizadas aquellas que realmente nos interesen

Un ejemplo: Yo tengo un banner interno que destaca un producto con descuento. Etiqueto su enlace con «?ic_medium=banner&ic_source=sidebar». Cuando un usuario hace click en dicho enlace empezamos a guardar como dimension personalizada tanto su medium como su source internos. Como estas variables no entran en conflicto con las de campaña real (pues son dimensiones personalizadas) tenemos la versatilidad del sitema de campañas sin perder ninguna información propia…

Veamos pues cómo poner en práctica este sistema:

Paso 1: creando nuestras dimensiones personalizadas

En nuestro Analytics deberemos crear todas las dimensiones personalizadas que queramos capturar de nuestras campañas. Esto dentro de Google Universal Analytics, donde disponemos (en la versión gratuita) de hasta 20 dimensiones distintas. En la versión classic podríamos hacer esto mismo con variables personalizadas pero al disponer de solo 5 me parece un sacrificio demasiado grande y ahi si que optaría por el sistema de cutroni aprovechando la búsqueda interna.

Bien, por lo tanto en nuestra cuenta debemos ir a «Administrador» > «Nuestra propiedad» > «Definiciones Personalizadas» > «Parámetros Personalizados».

Ahi debemos crear cuantas dimensiones personalizadas necesitemos. El sistema que os presento usa hasta 7 variables distintas para detallar las campañas internas pero mi consejo es que solo uséis aquellas variables que necesitéis. Si solo disponéis de uno o dos banners de este tipo en vuestra web es dificil que necesitéis más de 2 o 3 de estas variables.

Aún así os detallo la colección de variables disponibles y que habría que crear para sacarle todo el jugo a la herramienta:

  • IC-Medium: Variable ic_medium, similar a la de utm_medium de las campañas de analytics. Sus posibles valores podrían ser cosas como «banner», «text-link», «cross-selling», «related-posts», etc.
  • IC-Source: Variable ic_source, similar a la de utm_source de las campañas de analytics. Sus posibles valores podrían ser las secciones de la web, o las tipologías de páginas o diseños donde aparecen las campañas internas
  • IC-Campaign: Variable ic_campaign, similar al utm_campaign de analytics. Su posibles valores podrían ser los productos patrocinados o las distintas líneas de autopromo.
  • IC-Term: Variable ic_term, similar a la keyword en analytics. Puede ser útil en campañas provocadas dentro de buscadores internos.
  • IC-Content: Variable ic_content, similar al tan poco usado utm_content. Puede ser útil para llegar al detalle máximo en tus etiquetados de campañas internas.
  • IC-Referrer: Una variable que se crea automáticamente y que indica en qué página se realizó el click de tu campaña interna (la página de origen)
  • IC-Landing: Una variable que se crea automáticamente y que indica a que página ha llegado el usuario al hacer click en la campaña interna (la landing tras la campaña)

Como veis son muchas, yo empezaría por medium + source + referrer + landing y ya vereis si más adelante necesitáis más.

Como decíamos cada uno de estos parámetros va a tenerse que crearse como dimensión personalizada en Google Universal Analytics. Al crearlas Analytics nos pedirá tan solo dos datos:

1) Nombre de la dimensión (el que queráis ponerle)
2) Ámbito de la dimensión Donde debéis escoger vosotros qué ámbito darle.

Las dimensiones de ámbito visita: se mantienen durante toda la visita y se sobreescriben al volver a ser declaradas. Esto implica que esta es la opción buena si lo que queremos es realizar un análisis de la última campaña interna por la que pasó el usuario de forma que al entrar en una segunda campaña interna la primera ya no cuente. Suena mal, pero pensad que es justo así como funcionan las campañas de analytics, ante una segunda campaña la primera desaparece y tenemos que recurrir a los MCF para ver todas las campañas de la visita.

Las dimensiones de ámbito de hit: se guardan de forma separada en cada página visita y evento lo cual las dotan de otras características: Por un lado al crear segmentos sobre ellas veremos las visitas que han pasado por la campaña. Esto hará que ante un usuario que use 2 campañas a este le veremos en ambos segmentos. Sin embargo si lo que hacemos es simplemente consultar visitas por la dimensión de campaña interna seguramente no obtengamos datos pues nos mostrará los datos del primer hit de la visita (donde no había aún campaña). Esto nos obligará a hacer todos nuestros análisis a nivel de página vista y no de visita lo cual no está mal y es muy correcto para análisis de comportamientos pero es justo la forma con la que menos gente está acostumbrada a trabajar con analytics.

Tu decides, pero si no eres muy ducho con los informes personalizados de analytics yo te recomendaría siempre usar el ámbito visita, pese a la pérdida de fiabilidad de datos que puedas tener.

alta_dimension_personalizada

Paso 2: Incorporando el código de campañas internas a nuestra cuenta.

Como lo que vamos a hacer es crear una nueva funcionalidad que analytics no tiene por defecto, estamos obligados a añadir un pequeño código a nuestra web que la cree. Este codigo es el siguiente:



Y debemos incluirlo siempre ANTES del código de google analytics. De otra forma no funcionará pues necesitarmoes que estas nuevas funciones existan al cargar analytics.

Este código hace muchas cosas por si solo, pero lo que nos tiene que interesar es que a partir de su inclusión pasaran dos cosas:

  • 1) Las campañas internas empezarán a guardarse tras ser recibidas como ic_medium, ic_source, etc…
  • 2) Podemos acceder al valor de la campaña activa usando la funcion gaic.get( {nombreValor} )

Así que lo que nos queda es cambiar nuestro código de analytics para que las distintas variables de campaña interna que deseemos capturar se almacenen en las dimensiones personalizadas que hemos creado.

Imaginemos que me habéis hecho caso y habéis creado 4 dimensiones personalizadas:

– dimension1 = ic_medium
– dimension2 = ic_source
– dimension3 = ic_referrer
– dimension4 = ic_landing

Para almacenarlas tendríamos que poner un código como el que sigue:

ga('create', 'UA-12345678-9', 'midominio.com');

ga('set', 'dimension1', gaic.get('medium') );
ga('set', 'dimension2', gaic.get('source') );
ga('set', 'dimension3', gaic.get('referrer') );
ga('set', 'dimension4', gaic.get('landing') );

ga('send', 'pageview');

Y ¡magia! Ya tenemos nuestras campañas en analytics y podemos crear informes personalizados basados en estas nuevas dimensiones de campaña interna.

informe_campañas_internas

Limpiando un poco los datos

Si somos puristas, este sistema, como no, también tiene un pequeño problema que podemos remediar. Si lo pensamos en realidad estamos ensuciando nuestras URL’s con variables extra que poco nos interesan para el análisis de páginas, el comportamiento del usuario o incluso para la indexación que hacen los buscadores de nuestro site. Por este motivo deberíamos eliminar el rastro de estas nuevas variables en dos sitios:

– En nuestra herramienta de analítics
– Y en la lectura que hacen los buscadores de nuestro site (para SEO)

Para esto tenemos 2 formas de actuar:

Opción 1: Que las variables existan, pero sean ignoradas tanto en analítica como en SEO

En analytics vamos a Administrador, seleccionamos cada perfil/vista que tengamos y vamos a «Ver Configuración». Ahi veremos un cuadro llamado «Excluir parametros de consulta de URL» donde podemos indicar, separadas por comas, todas las variables que queremos que Google Analytics ignore. Así que copiamos la siguiente lista:

«ic_medium,ic_source,ic_campaign,ic_term,ic_content»

excluir_parametros_analytics

En Google Webmaster Tools (si lo estamos usando), accedemos a «Rastreo» > «Parametros de URL» y ahi le vamos dando a «Añadir parámetro» configurandolos todos como que no afectan al contenido del site.

excluir_parametros_gwt

Opción 2: No dejando rastro en las URLs y alterando las cookies de campaña interna en el onclick de los banners

Esta segunda opción aunque más limpia es tecnicamente más compleja. Se trata de evitar el uso de URLs e informar las campañas directamente cuando el usuario hace clic en el banner.

Para ello usaremos otra función que hemos creado al copiar el trozo de codigo: gaic.r() que es la encargada de leer las campañas.

Esta función acepta directamente el fragmento de URL que correspondería a las campañas.

Así si yo lanzo el siguiente código:

gaic.r('ic_medium=banner&ic_source=item_page');

Sería como haber cargado una URL etiquetada con esa campaña.

Veamos un ejemplo práctico de como no ensuciar URLs con Jquery:

Lo que haremos será etiquetar los enlaces de campaña interno con el atributo «data-ic» y con la clase «internal-campaign» y con jquery generaremos la campaña en el onclick de dicho enlace:

Nuestro enlace tendría el siguiente aspecto:


Y en jquery crearíamos el siguiente codigo:

$(function () {
  $('.internal-campaign').bind('click',function () {
    gaic.r( $(this).data('ic') );
  });
});

Sí, como os decía, es más limpio pero más técnico (y por lo tanto complejo).

Uso de campañas internas en Google Tag Manager

Si te fijas, todo lo que hemos comentado es perfectamente adaptable a Google Tag Manager.

Tan solo tienes que preocuparte si usas el metodo de variables de campaña de crear una macro de tipo javascript personalizada que utilice las funciones de gaic.get() y las devuelva en el momento deseado.

function () { return gaic.get('medium'); }

A parte de eso toda la complejidad radica en asegurarte de que antes de lanzarse analytics se haya cargado el codigo de funciones extra y ya está.

¡Usa campañas internas! Notarás la diferencia

El etiquetado de campañas internas puede darnos muchísima información sobre el comportamiento de los usuarios tras un clic en cualquier recurso de la web. No se trata solo de saber si la gente hace clic y como se alteran sus valores globales de tráfico cuando se hace clic y cuando no, sino que de forma cómoda podremos disfrutar de informes en encapsulen la actividad de los usuarios para cada campaña que creemos.

Como comentaba al principio del post, las posibilidades de etiquetado para este tipo de actividades llegan a gran cantidad de elementos de la web: cualquiera que vaya destinado a afectar la navegación o el comportamiento del usuario fuera de las vías comunes (menús, filtros, etc.). Eso puede englobar gran cantidad de elementos:

  • Articulos o productos relacionados con el actual
  • Text-links en medio de un contenido
  • Bloques de cross-selling y up-selling
  • Ofertas especiales
  • Y como no Banners hechos y derechos que hayamos querido incluir en la web por cualquier motivo

Cierto es también que no todas las webs utilizan estos recursos y las necesidades de analisis de muchas web no llegan a estos niveles. Tampoco se trata de complicarse la vida solo por ser el que más datos tiene, pero de que la posibilidad de obtener estos datos está ahí, no queda ninguna duda.

Espero que a algunos os sirva para mejorar o arreglar vuestras mediciones de clics internos.


6 respuestas a “Capturar campañas internas en Google Analytics”

  1. Hola Iñaki!
    Vaya un megapost que te has marcado… muy interesante la tercera opción que planteas, buscando por ahí la mayoría de blogs solo hablan de la de GA y la de Cutroni. Respecto a la de GA, me asalta una duda: sería posible controlar las campañas internas mediante un utm_nooverride?
    En plan: http://www.miweb.com/landing.html?utm_source=fuente&utm_medium=medio&utm_campaign=campaña&utm_nooverride=1

    Se lo anexaría a los enlaces internos de los banners de mi web para que no me sobreescriban las campañas que vienen de fuera, como de correo electrónico o de otros sites… la teoría es que no tengo problema, ya que los clicks en los banners los controlo mediante GTM. Lo que pasa es que no me funciona ni el &utm_override ni el &noo… ¿qué se me puede estar pasando?
    Gracias!!

    • Buenas david.

      Gracias por el comentario 🙂
      Sobre tu propuesta lo que comentas no puede funcionar. Si te hiciese caso con el no override (cosa que en universal analytics no hace) no guardarías nunca la campaña así que seria como no haber hecho nada. Y si no te hace caso pues sigues chafandola.

      Lo del no override estoy justo peleando para conseguirlo por un tema de emails. A ver si sale.

  2. Gracias a ti, Iñaki.
    Estaba aquí con un libro antiguo de analytics (pre-universal analytics) dándome de cabezazos con el tema del override, con razón…
    Suerte con el tema de los emails!

  3. Buenas Iñaki, he estado implementando tu técnica para capturar la información de las campañas internas y tenemos una duda.

    El problema esta en primer lugar en el alto porcentaje de valores «not set» lo cual nos parece extraño.

    Y por otro lado en que una vez que las variables IC tienen valor, no deberia aparecer más «not set», ya que tenemos las varibles creadas como variables de sesión y no de hit.

    Además puesto que en todos los enlaces en los que queremos controlar campañas internas utilizamos todas las variables (source, campaign, etc…) no tiene sentido que nos aparezcan ic_source con valor e ic_campaign con «not set».

    Alguna idea?

    Saludos y gracias

Responder a David Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *