Collection de statistiques Viber

Il y avait un intérêt pour la façon d'obtenir des statistiques de chat dans l'ambiance. Selon les informations sur le site viber.com, les statistiques ne sont fournies que pour les communautés d'au moins 1000 membres.

Ensuite, je décrirai les instructions sur la façon dont j'ai obtenu des statistiques pour le chat Viber à l'aide d'un fichier de sauvegarde.



1. La copie de sauvegarde du compte a le format de base de données viber.db, pour la version PC, elle se trouve le long du chemin: C: \ Users \ <nom_utilisateur> \ AppData \ Roaming \ ViberPC \ <numéro de téléphone>.



2. J'ai utilisé le navigateur SQL Lite pour lire le fichier de base de données.



3. Ouvrez le fichier viber.db dans le navigateur SQL Lite . La base de données se présente comme suit:







4. La table principale est Evénements, tous les événements (par compte) dans la vibe sont numérotés (EventID). D'autres tables ont une relation de clé étrangère appelée EventID. Les informations sur les messages sont stockées dans la table Messages, les informations sur les utilisateurs - dans la table Contact. Je n'ai utilisé que ces trois tableaux.



5. Pour obtenir des statistiques sur un chat, vous devez d'abord trouver l'identifiant du ChatID souhaité. Pour ce faire, sélectionnez l'élément "Affichage des données" du menu contextuel de la table ChatInfo et allez dans l'onglet "Données" pour l'affichage.







6. Par le nom du chat (attribut Name), nous cherchons celui souhaité et regardons son ID (attribut ChatID).



7. De même, vous pouvez obtenir l'identifiant de l'utilisateur (ContactID) dans la table Contact via les attributs Name (car l'utilisateur est enregistré sur votre téléphone) ou ClientName (nom d'utilisateur par son compte). J'ai utilisé l'attribut ClientName parce que Je n'ai pas tous les utilisateurs dans le bloc-notes de mon téléphone.



8. Ensuite, nous obtenons les données requises en formant des requêtes Select sur l'onglet SQL. Les attributs à faire dépendent des besoins, pour cela, il est nécessaire de faire une demande appropriée. Pour moi, j'ai fait des demandes, reflétées dans le tableau 1.



Tableau 1. Liste des demandes utilisées

P / p No. Demande de texte La description
1 Sélectionnez Count (Messages.EventID) dans Messages, Events où Messages.EventID = Events.EventID et Events.ChatID = 46 Nombre de messages de chat
2 Sélectionnez count (Messages.EventID), Contact.ClientName dans Messages, Events, Contact où Messages.EventID = Events.EventID et Events.ChatID = 46 et Events.ContactID = Contact.ContactID group by Events.ContactID order by Contact.ContactID Nombre de publications par utilisateur (renvoie le nombre d'événements pour chaque utilisateur)
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. Après avoir exécuté la requête, j'ai d'abord exporté le résultat vers PDF, puis vers Excel (c'était plus facile pour moi):







10. Après cela, j'ai utilisé les données pour créer des infographies dans Excel, par exemple, à la requête n ° 5 (voir tableau 1):







Remarque 1. Données diffèrent, parce que le chat est actif et la base de données est en cours de mise à jour.



Remarque 2. Déjà dans Excel, j'ai combiné les types 65 ... 77 en un commun (service).



11. Comment travailler avec l'attribut time (TimeStamp). Dans la base de données, l'heure UNIX est utilisée pour lier les événements à l'heure, et pour obtenir des données associées à la liaison à la date et à l'heure, il est devenu nécessaire de les traiter davantage. Voici un exemple de la façon dont je l'ai fait dans Excel:







a. Enregistrez les résultats de la requête 9 (voir tableau 1) dans Excel (colonne A).

b. Dans la colonne B, nous supprimons les 3 derniers caractères (je n'ai pas compris à quoi ils servent) pour obtenir l'heure au format UNIX. Nous faisons cela en utilisant la formule = LEFT (A2; DLSTR (A2) -3). Étirez la formule sur toute la plage de lignes.

c. La colonne C est remplie d'unités (compteur de messages).

ré. Dans la colonne D, traduisez la date en une date lisible par l'homme à l'aide de la formule = (B2 / 86400) + 25569. Étirez la formule sur toute la plage de lignes.

e. Pour compter le nombre de messages par mois (cellules E2: R2), utilisez la formule = SUMIF ($ C $ 2: $ C $ 1434; $ D $ 2: $ D $ 1434; "> =" & E $ 1; $ D $ 2: $ D $ 1434; "<= "& EON MOIS (E $ 1; 0)). Étirez la formule sur toute la plage de colonnes E1: R1.

F. Nous construisons un histogramme basé sur la plage de cellules E1: R2.



Conclusion



Cette méthode de collecte de statistiques est réalisée en mode manuel, elle est gourmande en ressources (au moins en termes de temps passé), mais au moins réalisable. Faute d'un meilleur, pour ainsi dire. Cette méthode peut être utilisée non seulement pour obtenir des statistiques sur le chat, mais également sur le compte Viber dans son ensemble. Je ne joins pas les sources, tk. J'ai effectué toutes les opérations sur un vrai chat contenant les données personnelles des utilisateurs, et je suis trop paresseux pour créer un chat séparé pour le test. Merci de votre attention.



All Articles