Saludos a los habravitas. Quiero hablar sobre cómo atornillamos Google Analytics al bot de telegramas, qué problemas encontramos y qué finalmente no se pudo configurar.
A la antigua usanza, Google Analytics se instala en un sitio con un dominio o en una aplicación con un SDK. Buscando en Google el tema, quedó claro que no había ejemplos, así que decidimos hacerlo nosotros mismos. En nuestro caso, no había sitio web ni aplicación móvil, pero había un deseo de rastrear eventos en el bot de Telegram. Y en parte resultó estar hecho.
Problema número 1
Los bots se encuentran físicamente en
t.me/benice_tools_bot . Esto es similar a un sitio normal, pero sin acceso directo a los archivos raíz, para establecer el código del contador y configurar eventos.
La interfaz en este caso es Telegram, a la que no tenemos acceso.
Nuestro bot funciona con la API de Binance y la API de Telegram, y en consecuencia hay un back-end a través del cual es posible maniobrar con la configuración de análisis.
En Google Analytics, crearon un contador "para el sitio" y registraron eventos con los parámetros "Acción, Etiqueta, Categoría". La configuración detallada se describe en docenas de sitios. Y después de eso, apareció el primer problema.
Según los métodos estándar de Google, no era posible colocar objetivos en el bot, no había acceso al frente.
Una
biblioteca acudió al rescate, lo que permitió transmitir y procesar parámetros de eventos desde el backend.
Después de la configuración, comenzamos a probar la capacidad de trabajo del método y obtuvimos el primer éxito. Los eventos completados comenzaron a mostrarse en Google Analytics, en modo "en tiempo real" era visible cuántas personas están en línea en el bot y otros datos.


Después de pruebas independientes y usuarios del tráfico publicitario, quedó claro que la información que necesitamos es 100% confiable. Quedó claro cuántas personas están en línea y qué eventos específicos se están llevando a cabo.
Pero todavía hubo algunos errores. Por ejemplo, el tipo de dispositivo no se detectó correctamente, se mostró "Computadora de escritorio", incluso si utiliza Telegram desde un dispositivo móvil. La ubicación indicaba solo Grecia, porque el servidor con el bot estaba en este país. La demografía, los intereses, los navegadores y los sistemas operativos se muestran como "(no establecidos)".
Problema número 2
Creamos enlaces promocionales que, cuando se activaban, daban acceso a funciones pagas durante 7 días. Y los clics en estos enlaces debían vincularse con Google Analytics para analizar las campañas publicitarias.
De forma predeterminada, Google Analytics genera un ID de usuario o lo deja sin este parámetro. Sin embargo, puede crear su propia identificación personalizada y enviarla a Google.
Usamos este método. Creamos la contabilidad de los usuarios a través del ID de usuario encriptado de nuestro sistema.
Telegram transmite metadatos cuando se inicia el bot. Esto funciona de la misma manera que las etiquetas utm familiares.
En el enlace, para una campaña publicitaria, se inserta una etiqueta después del inicio.
Por ejemplo:
http://t.me/benice_tools_bot?start=habrahabr
Cuando se inicia el bot, analizamos los parámetros para el inicio y los tomamos para una campaña específica.
En el backend, en el perfil del usuario, habrá información de que vino para una campaña particular campaign_habrahabr.
Quedaba por especificar nuestro visitante en el código:
if (!code) code = "organic"; const visitor = ua(googleAnalyticsProjectId, `token:${code};CLIENTID:${saltUserId}`, { strictCidFormat: false }); visitor.event(category, action, label).send();
Si el usuario vino solo, sin una campaña publicitaria, esta fuente se reconoce como "orgánica".
Por lo tanto, resultó analizar el desencadenamiento de objetivos de un usuario específico que provenía de una campaña publicitaria.


PS
Todas las llamadas a Google Analytics terminaron en desconcierto por parte del soporte. En las primeras llamadas, cuando nada más funcionaba, no se podían obtener consejos. Y cuando los eventos ya se transfirieron a análisis, el soporte se tomó un descanso de 15 minutos para "aclarar los detalles" de la pregunta, y cuando regresaron, ellos mismos comenzaron a hacer preguntas: "¿Cómo hiciste esto?"