Telegram-bot + Google Analytics

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.

imagenimagen

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.

imagen

imagen

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?"

Source: https://habr.com/ru/post/442610/


All Articles