Hé les gars,
Récemment, je suis tombé amoureux des analyses de données de toutes sortes.
Alors que je cherchais une activité secondaire, j'ai exploré différentes options et suis tombé sur le monde des produits numériques. Des plateformes comme Gumroad, Ko-fi et d'autres dominent ce marché.
Mais je me suis heurté dès le début à un obstacle : il existe des centaines de produits.
Alors, lequel dois-je vendre ?
Après avoir recherché divers articles et plateformes, j'ai réalisé qu'il n'y avait pas suffisamment de données solides pour prendre une décision éclairée.
Cela m'a amené à commencer à suivre les tendances sur l'un des plus grands marchés de produits numériques : Gumroad.
J'ai commencé avec un simple script JavaScript qui effectue des requêtes API de base vers l'API Gumroad accessible au public. Vous pouvez facilement voir ces demandes dans l'onglet Réseau du navigateur :
https://gumroad.com/products/search?&tags[]=vrchat&from=10
C'était un bon début. J'ai décidé de suivre les 10 balises les plus populaires et de récupérer des données quotidiennement.
Pile technologique que j'ai utilisée :
Ça a bien fonctionné. J'ai collecté des données plusieurs jours de suite et je les ai trouvées suffisamment intéressantes pour les développer davantage. J'ai également reçu le soutien de la communauté sur X, j'ai donc décidé de passer à l'étape suivante.
J'ai réalisé que connaître les tags les plus populaires ne suffirait pas : le véritable potentiel réside dans l'identification des tags qui se développent.
Lors de ma prochaine itération, j'ai collecté des sous-balises des niches les plus populaires et j'ai rassemblé plus de 5 000 balises de cette façon.
Cela générait plus de 20 000 lignes de données par jour, j'avais donc besoin d'une solution de stockage.
Comme il est toujours possible d'héberger un cluster gratuit sur MongoDB Atlas et que MongoDB se marie bien avec JavaScript, je l'ai choisi comme option de stockage. Désormais, les données sont stockées et je peux exécuter diverses analyses.
Un autre défi était le temps nécessaire pour collecter les données.
Au début, cela a duré cinq heures. C'est à ce moment-là que j'ai découvert les proxys. Après avoir mis en place plusieurs serveurs proxy pour traiter les données en parallèle, le temps de collecte est passé de cinq heures à seulement 30 minutes.
J'exécutais tous les scripts manuellement, j'ai donc décidé d'automatiser le processus.
J'ai hébergé le code source sur un serveur distant sur Hetzner et mis en place des tâches cron via crontab.
0 18 * * * /usr/bin/node index.js collect-data 0 21 * * * /usr/bin/node index.js collect-totals
Le premier travail collecte les données et le second les agrège pour un résumé. Il supprime les doublons et calcule la croissance par rapport à la veille.
const [mode = 'collect-data'] = process.argv.slice(2); if (mode === 'collect-data') { return collectData(); } if (mode === 'collect-totals') { return collectTotals(); }
J'ai décidé de créer une interface utilisateur simple pour ce projet et de la partager publiquement. C'est ainsi que gumroadtrends.com a été lancé.
J'ai utilisé :
Voici à quoi ressemble l'interface utilisateur :
Il est difficile de comprendre les tendances avec seulement sept jours de données. Je prévois donc de continuer à collecter des données en pilote automatique et de les revoir après quelques semaines pour obtenir des informations plus approfondies.
Je suis heureux de partager tout ce que j'ai utilisé pour créer ce produit. Ceci est ma petite contribution à la communauté #buildinpublic dont je fais partie.
Bonne chance dans vos projets !
N'hésitez pas à nous contacter si le sujet vous intéresse. Suivez-moi sur X
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!