lundi 13 juin 2016

Retours sur "Que Du Web"


J'ai été invité à la conférence "Que Du Web", voici ce que j'y ai appris ...

Tout d'abord je tiens à préciser que je n'y connais pas grand chose en SEO (Search Engine Optimisation). Beaucoup de sujets étaient dans cette thématique j'ai donc beaucoup appris. Pour tout dire j'ai même été sidéré par certaines pratiques (qui sont pourtant certainement très courantes.)

En comparaison, les pratiques de CRO ("Conversion Rate Optimisation", sujet que je connais mieux) on est des anges ;) ...

J'ai d'ailleurs été assez étonné de voir que le sujet de l'optimisation des conversions est très peu évoqué, apparemment pour certaines personnes le volume du trafic semble être le graal. Il y a encore du travail d'"évangélisation" sur le sujet...

Voici les sujets qui m'ont marqués...

L'achat de nom de domaines "abandonnés"


Le page-rank qui est une mesure de popularité des sites web,
ce véritable flux vital à entendre les experts du SEO, ne se perd pas, il se recycle!
Pour rappel, le page rank est une simulation de parcours d'internautes sur le graphe des pages web, cela permettant d'identifier les sites les plus "centraux" par rapport à une thématique. C'est bien sur un des paramètres qui sert à Google (et autres) pour classer les sites dans la page de résultat d'une recherche.

J'ai vu la présentation de Romain Mikula, sur la récupération de noms de domaines expirés. Voici la tactique :
  • Identifier des nom de domaines expirés (par exemple des entreprises qui rationalisent leur usage de noms de domaines).
  • Les racheter (ça coûte quelques euros seulement)
  • Identifier les liens existants sur le net, qui pointent vers ce nom de domaine,
  • et re-créer les pages pour que ces liens ne soient plus "cassés".
  • Le nom de domaine est alors à nouveau "opérationnel" et possède "du page rank" (ou "du jus" apparemment c'est l'expression consacrée... )
  • C'est ce "jus" qui est alors renvoyé vers le site principal dont on veux augmenter le "page rank" et donc le trafic.
J'ai vu qu'il y avait encore au moins une autre présentation sur le sujet mais que je n'ai pas suivi (il y avait des présentations en parallèles, je n'ai donc pas pu tout voir). Cette pratique doit donc être relativement connue et fréquemment exploitée...

Black Hat SEO


Le terme "Black hat" SEO fait référence aux hackers, et le black pour spécifier le coté sombre,c'est donc des opération "illégales" ou plus généralement avec un objectif de nuisance. À ce sujet, la présentation de Kaddiern Sauvage, m'a bien déniaisé ;).
  • Il existe des sites qui servent uniquement à "générer du page rank" sans réel contenu. Ces sites peuvent redistribuer du page rank à des sites "réels" via des liens. En augmentant leur page-rank ces sites réels augmentent donc leur trafic (parce qu'il remontent dans le classement Google), même si le site d'origine du lien n'a pas vraiment de trafic.
  • Cette pratique est évidement condamnée par Google. Goole a même fait des bots qui passent sur le net pour identifier ces fraudes au page-rank, et les "punir" en abaissant leur page rank.
  • Il existe donc la possibilité d'acheter un tel lien, non pas pour son site, mais pour un site concurrent. Il n'y a alors plus qu'a attendre la punition de Google envers le site concurrent...
Bien sûr cette pratique est risquée et malhonnête. Mais c'est très intéressant de voir que tout action entraîne une réaction, et que même avec une bonne intention, cette action de Google peut finir par générer des outils pour guerroyer sur le web.

Mais il y a des "white hat" (des gentils) aussi ...


Le tracking (même avec les meilleurs intentions du monde, comme chez AB Tasty (mon employeur)) peut être vu comme intrusif. En particulier le retargeting semble cristalliser le rejet de la pub et du tracking. Vous savez quand une thématique de pub vous suit de site en site, à cause d'un abandon de panier ou de recherche sur un site de e-commerce.

Et bien Qwant le moteur de recherche français, respecte votre vie privé et vous évite ce genre de désagréments en se refusant de faire du tracking.
Il est même conseillé par les services de cyber sécurité français!
D'autres, comme "duck duck go", qui se vantent de faire pareil sont en fait bien moins sûr, en particulier à cause de leur hébergement tierce (contrairement à Qwant qui gèrent eux même leur serveurs!).

De la pub ciblée sans tracking !? ...


Sylvain Peyronnet, nous a fait une présentation où il nous a démontré qu'il était possible de faire de la pub ciblée sans tracking. Un test est d'ailleurs en cours sur le moteur Qwant. J'ai hâte d'en connaître les résultats, et encore plus d'en savoir un peu plus sur la stratégie employée. J'aimerai bien faire un truc un peu similaire pour AB Tasty, donc Sylvain, si tu me lis, saches que je te bombarderais bien de questions sur le sujet... ;)

Conclusion


C'était une super conf' j'ai appris plein de trucs et rencontré plein de gens très intéressants (on a même eu une avant première d'un futur service d'OVH par Vincent Terrasi). Même si c'est une conférence de taille moyenne, à force de Tweets on a réussi à être en "Trending Topics" sur Twitter pendant quelques heures.
La conférence iSWAG scientifique qui se déroulait en parallèle était aussi très intéressantes, mais cela fera peut être l'objet d'un autre article...

jeudi 9 juin 2016

Récupérer des profils Twitter en masse

Introduction

Pour un projet, j'ai besoin de données de issues de Twitter. J'ai donc monté un serveur, ainsi qu'une chaîne d'acquisition. Dans  cet article Je vais décrire: l'objectif, l'architecture, les technologies utilisées, les résultats,  mais aussi les emm*rdes ;) , et les solutions...

UPDATES :
  1. j'ai mis à disposition une petite fraction de ces données (40k profils) sur le site Kaggle : https://www.kaggle.com/hwassner/TwitterFriends
  2.  J'ai mis en ligne un article décrivant l'analyse que je fais sur ces données.

L'objectif

 Je veux faire de la classification non-supervisée d'utilisateurs de Twitter. C'est à dire que je veux utiliser un algorithme pour classer des utilisateurs Twitter sans donner d'objectif précis de classification. C'est l'algorithme lui-même qui va décider du classement en fonction des données dont il dispose.  Je discuterai de l'interprétation des résultats de cet algorithme dans un autre article.

Les données

Je cherche a acquérir une base de données de comptes Twitter. Je veux que mon classement se base sur les abonnements des utilisateurs de Twitter. De plus j'aimerai avoir surtout des données venant de gens qui tweetent.
(Sur Twitter : 90% des messages sont crée par 10% des utilisateur).

Le protocole

J'ai crée un programme en Java qui exploite l'API publique de Twitter. Ce programme va aller chercher les "Trending Topics" (TT), toutes les 5 minutes. Les TT sont des sujets qui sont les plus discutés sur Twitter pour une région données au niveau d'une ville ou d'un pays (j'utilise la zone France), il s'agit simplement d'une liste de mots.

Grâce à cette liste de mots, je peux alors ouvrir un flux (stream) de tweets filtrés par les sujets en questions. Je dispose donc d'un échantillonnage de tweets en français.

À partir des ces tweets, je collecte l'identifiant des émetteurs de ces tweets (ou re-tweets), et je collecte alors leur liste d'abonnement. Je stocke le tout en base de données.

Cela peut se résumé comme ceci :

   Trending Topics --> stream tweets --> user ID --> liste d'abonnements

L'implémentation

Pour l'accès aux données Twitter j'utilise leur API publique, via Twitter4j (en Java)

Pour le stockage, j'utilise mongoDB.







Pour contrôler mongoDB, (ainsi qu'un serveur web qui accède à ses données) j'utilise Docker



Les Emm*rdes ... et leur solutions

  • L'API Twitter est raisonnablement généreuse pour ce qui est des tweets, mais pour ce qui est des listes de lecture de ses utilisateur c'est autre chose... Twitter limite à 15 liste d'abonnements par minute.
    C'est vraiment peu, et d'après ce que j'ai pu me renseigner auprès de revendeur de données Twitter (swift & Gnip), aucun ne donne accès à ces information.
    => J'ai donc fédèré plusieurs comptes (plus précisemment les clés d'application) pour disposer d'un débit plus confortable sur la donnée qui m'intéresse...
  • mongoDB c'est bien mais, ça bouffe toute la mémoire disponible. C'est très efficace pour la base de donné, mais du coup le serveur ne peut plus faire grand chose d'autre. Et dans mon cas mon serveur doit aussi faire la collecte de tweets et de de profiles Twitter. J'ai donc opté pour Docker pour contenir mongodb

Résultats

Les données stockées par utilisateur Twitter sont :
  • L'ID, le screenName (les nom qui commence par @...)
  • la liste des abonnements.
  • la liste des hashtag sur lequel l'utilisateur à tweeté
  • le nombre de follower
  • la photo d'avatar

 Et voici quelques chiffres le serveur tourne depuis près d'un an a enregistrer les trending topics, et surtout les gens qui tweetent sur ces sujets.

La suite ...

Vous vous en doutez probablement cette collecte de donnée n'est qu'une première étape. La suite est la création d'un algorithme profilage automatique en fonction des abonnements des utilisateurs. J'ai déjà beaucoup avancé sur le sujet mais il faut maintenant le temps d'écrire l'article qui sera bientôt publié ici ...

UPDATE : ça y est j'ai (enfin) écris un article décrivant l'analyse que je fais avec ces données.