[MAKING OF] Un tool twitter avorté pour faire du spa… Marketing

Allez, premier article depuis une bonne année, qui va être tout simplement la suite logique de l’article précédent dans lequel j’évoquais un script perso de Twitter Marketing (ok, spam). C’est un post sur un forum, dans lequel un dév tâte le terrain pour proposer ou non le sien, qui m’a rappelé l’existence de cette bouse infâme qui traîne sur mon DD. Bouse de code j’entend (quasi aucune bonne pratique, 95% de mauvais code procédural, lourd… Mais ça marche et ça suffit pour une utilisation en local). Dans la mesure où il est clair que ni Mark 1 (la bouse), ni Mark 2 (la reprise à 5% sous FuelPHP, jamais terminé car passé ensuite sur un autre projet sous Laravel) ne verront le jour sous une forme finale, que je ne les utilise plus depuis… 1 an, et qu’enfin le Twitter marketing, ses rules, ses radars, ont continués d’évoluer, je me disais que je pouvais montrer un peu de quoi il retournait, d’autant plus que j’avais un peu teasé sur Twitter (sic) à l’époque. C’est parti !

Tweet tweet

Le concept

Le but n’était pas de faire un bête « twitteur » automatique. Too easy, aucun challenge, ça existe déjà. Copier bêtement et sans stratégie ne m’intéresse pas, améliorer, faire mieux, là c’est intéressant. Mass twitter, oui, mais le faire bien. Intelligemment. Rester au plus sous les radars, cramer le moins vite possible les comptes. Il fallait donc tenter de simuler un peu un comportement humain, feindre l’aléatoire. Bien que je ne sois pas allé au bout (compétences php limitées, temps, arrivée d’autres projets), le script actuel pose les prémices de l’idée que j’avais en tête.

  1. Compartimenter les différentes stratégies, et donc les comptes (le pool).
  2. Gérer des campagnes (jobs) et en avoir un retour immédiat et intégré sur leurs efficacité.
  3. Automatiser le plus d’actions possibles, tout en laissant le plus de latitude possible.

Les munitions

scud

Pour le dév et les tests, j’avais acheté sur Fiverr un lot de comptes Twitter vierges, avec je crois un peu d’ancienneté. Une cinquantaine de proxys, ainsi qu’un simple, mais complet, dico de synonymes ont complétés le minimum nécessaire pour se lancer dans l’aventure.

L’arme

Je vous passe l’historique de dév, mais voici basiquement le process, de l’ajout d’un compte à son premier tweet.

  • 1 click: création et récupération des tokens et clés nécéssaires à l’utilisation de l’API (non interfacé)
  • 1 click: ajout du compte en base, avec attribution auto d’un proxy.
  • 1 click: personnalisation du compte (bulletproof)
  • Création d’un job.

Et c’est tout. En quelques instants, il était donc possible d’avoir X comptes Twitter avec avatar, header personnalisé, bio, géolocalisation (une ville de France était choisie au hasard,  enregistrée, et soumise à chaque tweet); en mesure d’effectuer immédiatement un job.

Sur le premier screen vous pouvez voir un champs « type ». Il s’agit d’une première catégorisation, destinée à séparer les comptes spammy des comptes réels. L’idée était de pouvoir utiliser l’outil pour également gérer un compte associé à un site, quelque chose de plus officiel qu’on a pas foircément envie de cramer.

Vous noterez que j’avais fais le choix de partir sur une API par compte, plutôt qu’une API pour le pool entier. C’était un choix évident pour ne pas me prendre en 3 minutes un gros tampon spammeur sur le front par Twitter. Oui, j’aurais pu aussi passer par Curl pour simuler un comportement de navigateur pour toutes les actions. C’est ce que préconisent certains pour ne pas être flagué spammeur. En même temps, j’imagine que ces gens n’utilisent qu’une seule API, CQFD :)

Le pool

alien1

Caractéristique importante de la gestion du pool (enfin, pas tellement dans cette version de travail): les thématiques. C’était ce qui était prévu pour compartimenter son pool de comptes.

Chaque compte se voyait attribuer 2 thématiques: une principale et une secondaire. L’idée était de rendre les comptes moins louches et d’élaborer des stratégies dans les jobs. Il était prévu que les thématiques secondaires aient des jobs aux priorités moins élevées. Concrètement, vous pouviez décider d’avoir toute une série de comptes passionnés par la musique, mais parlant aussi un peu de cinéma.

Pool

 

Ce screen est plutôt explicite. Listing des comptes, en rouge les suspendus, une des killer feature « Phoenix Down« , pour récupérer en 1 clic un compte suspendu. Ca ne marchait qu’une fois bien évidemment (Twitter passant en mode manuel en cas de récidive), mais c’est bien pratique. On retrouve aussi la gestion du bulletproof, et l’accès aux principales actions.

Je n’avais pas parlé de la gestion des proxies, mais le bouton Check proxies permet de vérifier la validité de ceux-ci (of course), et de réattribuer un proxy actif aux comptes dont le proxy assigné était down.

Détails d'un compte

Je vous livre en pâture un compte (toujours online). Vous pourrez notamment y voir une campagne Amazon (dont je parlais également dans le précédent article), qui je suppose était préparée en spinning manuel visiblement. Mon Magic Spin étant d’une qualité déplorable, comme vous voyez sur les autres tweets et la bio.

Le spinning automatique, c’était d’ailleurs un des points qui me gênaient, car je n’avais (et n’ai toujours pas) pas la compétence nécéssaire pour l’améliorer comme il le mérite. Un peu, probablement, mais grandement, sûrement pas.

Note: le footer dévoile le petit nom que j’avais donné: Ultweetmate. Cherchez pas, j’ai le .com :)

Les jobs

Alias les campagnes.

Listing des jobs

 

« Execute » permettait de (re)lancer un job manuellement, pour une seule occurence. L’icône à gauche indiquait le type de job programmé.

  • Le mode pie (bavardage automatique)
  • Follow
  • Retweet
  • Mode conversation (reply)

Voici les screens des différentes programmations de jobs. Leurs options sont explicites.

Le mode pie était alimenté par une base de tweets pré-faits (spinnés à la sortie), catégorisés par thématiques, dont l’ajout était interfacé.Un mode nuit (pour éviter tweeter comme un bourrin à 3h du matin) était également prévu.

Bien que les jobs se programment via une cron, ils se décalent tous automatiquement dans le temps. Par exemple, un job programmé chaque heure ne se déclenchera pas toutes les 60 minutes pile, mais quelques minutes avant, puis quelques minutes après, et ainsi de suite. Ceci pour diminuer l’empreinte du bot auprès des algos de Twitter.

Détails des jobs

Cela restait très succint, mais suffisant, du moins lors des tests. Voici un exemple:

Détails du job Stats du job

 

Tout l’intérêt d’utiliser bit.ly se retrouvait ici: son API permet de récupérer de nombreuses stats.

Bilan

La prochaine étape était de faire tout un système de cloaking sur les liens (voir conclusion de l’article précédent). Cloaking thématisé pour rester toujours au plus possible sous les radars. Mais j’ai finalement été pris sur d’autres projets plus pérennes. Celui-ci était surtout un bon petit amusement.

Un Mark 1 codé avec oreilles, un Mark 2 à peine débuté, un spin dégueulasse: je m’étais mis de sacrés barrières de toutes manières. C’est dommage, en revenant dessus 1 an après pour cet article, je me dis que j’ai fais un petit tool bien sympathique. Pas complet et très perfectible, mais bien avancé quand même.

 

 

Auteur: Johan Biré

Auto-didacte, curieux et passionné, je prend le gentil visiteur par la main, lui dit où aller, et analyse ses pas. #marketing #analytics #bizdev

Laisser un commentaire