Recopilación de estadísticas de Viber

Hubo interés en cómo obtener estadísticas de chat en el ambiente. Según la información del sitio viber.com, las estadísticas se proporcionan solo para comunidades con al menos 1000 miembros.

A continuación, describiré las instrucciones sobre cómo obtuve estadísticas para el chat de viber usando un archivo de respaldo.



1. La copia de seguridad de la cuenta tiene el formato de base de datos viber.db, para la versión de PC se encuentra en la ruta: C: \ Users \ <User_name> \ AppData \ Roaming \ ViberPC \ <phone number>.



2. Usé el navegador SQL Lite para leer el archivo de la base de datos.



3. Abra el archivo viber.db en el navegador SQL Lite . La base de datos aparece de la siguiente manera:







4. La tabla principal es Eventos, todos los eventos (por cuenta) en el ambiente están numerados (EventID). Otras tablas tienen una relación de clave externa denominada EventID. La información sobre los mensajes se almacena en la tabla Mensajes, la información sobre los usuarios, en la tabla Contactos. Solo usé estas tres tablas.



5. Para obtener estadísticas sobre un chat, primero debe averiguar el ID del ChatID de chat deseado. Para hacer esto, seleccione el elemento "Ver datos" del menú contextual de la tabla ChatInfo y vaya a la pestaña "Datos" para ver.







6. Por el nombre del chat (atributo Name) buscamos el deseado y miramos su ID (atributo ChatID).



7. De manera similar, puede obtener el identificador de usuario (ContactID) en la tabla de Contactos a través de los atributos de Nombre (como el usuario está registrado en su teléfono) o ClientName (nombre de usuario de su cuenta). Usé el atributo ClientName porque No tengo todos los usuarios en el cuaderno de mi teléfono.



8. A continuación, obtenemos los datos necesarios formando consultas de selección en la pestaña SQL. Qué atributos hacer depende de las necesidades, para ello es necesario realizar una solicitud adecuada. Por mi parte, hice las solicitudes que se muestran en la tabla 1.



Tabla 1. Lista de solicitudes utilizadas

P / p No. Solicitar texto Descripción
1 Seleccione Count (Messages.EventID) de Messages, Events donde Messages.EventID = Events.EventID y Events.ChatID = 46 Número de mensajes de chat
2 Seleccione el recuento (Messages.EventID), Contact.ClientName de Messages, Events, Contact where Messages.EventID = Events.EventID and Events.ChatID = 46 y Events.ContactID = Contact.ContactID group by Events.ContactID order by Contact.ContactID Número de publicaciones por usuario (devuelve el número de eventos para cada usuario)
3 Select Contact.ContactID, Contact.ClientName from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ChatID=46 and Events.ContactID=Contact.ContactID group by Events.ContactID order by Contact.ContactID
4 Select * from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ContactID=Contact.ContactID and Events.ChatID=46 and Events.ContactID=465
5 Select count(Messages.EventID), Messages.Type from Messages, Events where Messages.EventID=Events.EventID and Events.ChatID=46 group by Messages.Type order by Messages.Type (. 2)
6 Select Count(Messages.Type), Messages.Type from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ContactID=Contact.ContactID and Events.ChatID=46 and Events.ContactID=482 group by Messages.Type
7 Select Count(Messages.PGIsLiked), Contact.ClientName from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ChatID=46 and Messages.Type=0 and Messages.PGIsLiked=1 and Events.ContactID=Contact.ContactID group by Contact.ClientName order by Contact.ContactID
8 Select Sum(Messages.PGLikeCount), Contact.ClientName from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ChatID=46 and Events.ContactID=Contact.ContactID group by Contact.ClientName order by Contact.ContactID
9 Select Events.TimeStamp from Messages, Events, Contact where Messages.EventID=Events.EventID and Events.ContactID=Contact.ContactID and Events.ChatID=46 and Events.ContactID=460 order by Events.TimeStamp (. . 11)


2.



№ /
1 EventID . , .. ,
2 Type ( , , ):

0 – : ,

1 –

2 —

3 —

4 –

9 –

11 –

12 —

15 – ,

65 –

66 –

67 –

68 –

69 —

72 –

77 —

3 ContactID
4 ClientName
5 ChatID
6 TimeStamp UNIX- POSIX- (. Unix time) — , UNIX POSIX- .

( UTC) 31 1969 1 1970, .



9. Después de ejecutar la consulta, exporté el resultado primero a PDF y luego a Excel (fue más fácil para mí):







10. Después de eso, usé los datos para construir infografías en Excel, por ejemplo, en la solicitud # 5 (ver tabla 1):







Nota 1. Datos difieren, porque el chat está activo y la base de datos se está actualizando.



Nota 2. Ya en Excel he combinado los tipos 65 ... 77 en general (servicio).



11. Cómo trabajar con el atributo de hora (TimeStamp). En la base de datos, la hora de UNIX se utiliza para vincular eventos a la hora, y para obtener datos asociados con la vinculación a la fecha y la hora, se hizo necesario procesarlos más. Aquí hay un ejemplo de cómo lo hice en Excel:







a. Guarde los resultados de la consulta 9 (consulte la tabla 1) en Excel (columna A).

segundo. En la columna B descartamos los últimos 3 caracteres (no entendí para qué sirven) para obtener la hora en formato UNIX. Hacemos esto usando la fórmula = LEFT (A2; DLSTR (A2) -3). Estire la fórmula sobre toda la gama de líneas.

C. La columna C está llena de unidades (contador de mensajes).

re. En la columna D, traduzca la fecha a una legible por humanos usando la fórmula = (B2 / 86400) + 25569. Estire la fórmula en todo el rango de filas.

mi. Para contar el número de mensajes por mes (celdas E2: R2), use la fórmula = SUMIF ($ C $ 2: $ C $ 1434; $ D $ 2: $ D $ 1434; "> =" & E $ 1; $ D $ 2: $ D $ 1434; "<= "& EON MESES (E $ 1; 0)). Estire la fórmula a todo el rango de columnas E1: R1.

F. Construimos un histograma basado en el rango de celdas E1: R2.



Conclusión



Este método de recopilación de estadísticas se realiza en modo manual, consume muchos recursos (al menos en términos del tiempo empleado), pero al menos es eficiente. A falta de uno mejor, por así decirlo. Este método se puede utilizar no solo para obtener estadísticas sobre el chat, sino también sobre la cuenta de Viber en su conjunto. No adjunto las fuentes, tk. Realicé todas las operaciones en un chat real que contiene datos personales de los usuarios y soy demasiado vago para crear un chat separado para la prueba. Gracias por su atención.



All Articles