---
title: "Plateforme SaaS d'optimisation publicitaire par IA Machine Learning - AdsPower"
description: "Plateforme SaaS d'optimisation publicitaire par intelligence artificielle et Machine Learning : classification d'intention de recherche par NLP, enchères automatisées et détection de mots-clés négatifs sur Google AdWords, Bing Ads et Facebook Ads"
locale: "fr"
canonical: "https://portfolio.josedacosta.info/fr/realisations/plateforme-publicitaire-machine-learning"
source: "https://portfolio.josedacosta.info/fr/realisations/plateforme-publicitaire-machine-learning.md"
html_source: "https://portfolio.josedacosta.info/fr/realisations/plateforme-publicitaire-machine-learning"
author: "José DA COSTA"
date: "2016"
type: "achievement"
slug: "plateforme-publicitaire-machine-learning"
tags: ["Symfony 3.2", "Angular 4/10", "TypeScript", "Azure ML Studio", "NLTK", "Google AdWords API", "Bing Ads API", "Facebook Ads SDK", "MySQL", "GitLab CI", "Vagrant", "Electron"]
generated_at: "2026-04-24T08:27:18.119Z"
---

# Plateforme SaaS d'optimisation publicitaire par IA Machine Learning - AdsPower

Plateforme SaaS d'optimisation publicitaire par intelligence artificielle et Machine Learning : classification d'intention de recherche par NLP, enchères automatisées et détection de mots-clés négatifs sur Google AdWords, Bing Ads et Facebook Ads

**Date:** Janvier 2016 - Décembre 2018  
**Durée:** 3 ans  
**Rôle:** Chef de projet technique & Cofondateur  
**Technologies:** Symfony 3.2, Angular 4/10, TypeScript, Azure ML Studio, NLTK, Google AdWords API, Bing Ads API, Facebook Ads SDK, MySQL, GitLab CI, Vagrant, Electron

## Présentation du projet

### Le projet en bref

AdsPower était une **startup early-stage** développant une plateforme SaaS d'optimisation des campagnes publicitaires par **intelligence artificielle**. Le concept central : ingérer des milliers de points de données de campagnes - mots-clés, enchères, quality scores, taux de clic, données de conversion - et les injecter dans des **modèles de classification supervisés** entraînés sur **Azure Machine Learning Studio** pour produire des **recommandations d'optimisation actionnables**.

Concrètement, les modèles apprenaient à classifier les comportements utilisateurs, analyser l'intention de recherche via les SERP Google, prédire les prix d'enchères optimaux, identifier les clusters de mots-clés performants, détecter les mots-clés négatifs qui drainaient les budgets, et recommander des améliorations d'annonces basées sur les patterns de performance historiques - l'ensemble aboutissant à **l'optimisation automatique des enchères** en fonction du taux de transformation.

Le projet était directement inspiré d'**Optmyzr** et de **Dolead** (plateforme française de performance marketing), tous deux analysés en profondeur durant notre recherche concurrentielle.

## Objectifs, Contexte & Risques

### Les 4 piliers du produit

### Optimisation par IA

Classifier les intentions de recherche et prédire la probabilité de conversion par mot-clé via des modèles de classification supervisés

### Enchères automatisées

Optimiser automatiquement les enchères (1re page, haut de page, 1re position) en fonction du taux de transformation réel

### Détection de mots-clés négatifs

Identifier et exclure automatiquement les mots-clés qui drainent le budget sans conversion grâce au clustering sémantique

### Quality Score

Prédire et améliorer le Quality Score via l'analyse du CTR attendu, de la pertinence des annonces et de l'expérience landing page

### Contexte marché et technique

### Enjeux business et techniques

### Risques identifiés

### Risk1

**Quotas Google AdWords API** : rate-limiting ou bannissement si volumétrie excessive

### Risk2

**Breaking changes API** : Google modifie régulièrement TOS et schemas (confirmé par la migration AdWords -> Google Ads début 2018)

### **Modèles imprécis** : accuracy < 80 % = perte de confiance client

### Risk4

**Vendor lock-in Azure ML Studio** : plateforme Microsoft encore jeune à l'époque

### **Rareté des compétences ML** dans la région bordelaise en 2017

### **Runway limité** : startup bootstrappée sans investisseur externe

- **Technique** : industrialiser Azure ML en production avec des latences < 500 ms sur les recommandations de bid
- **Réglementaire** : respecter les quotas et TOS de Google AdWords API - risque de ban si excès
- **Différenciation** : approche **ML-first** (vs heuristique des plateformes établies sur le marché)
- **Survie** : valider le PMF (Product-Market Fit - adéquation produit/marché) avant épuisement du runway (trésorerie restante avant fin du financement - 18-24 mois max sans levée)

Objectif business : permettre aux annonceurs Google AdWords d'automatiser leurs campagnes grâce à l'IA, en détectant les mots-clés non performants et en ajustant les enchères en temps réel. Contexte : le marché était dominé par Optmyzr (US) et Dolead (FR). Nous visions une approche plus ML-first avec scraping SERP et classification d'intention. Enjeux : concurrencer des plateformes établies, construire une équipe produit/R&D, gérer la dépendance aux APIs Google/Bing/Facebook. Risques : quotas API, breaking changes, concurrence, modèles de classification imprécis.

En 2016, le AdTech SEA était dominé par **Optmyzr** aux États-Unis et **Dolead** en France, tous deux basés sur des moteurs de recommandations essentiellement heuristiques. **Azure Machine Learning Studio** venait de sortir de preview publique en 2015 et ouvrait une voie managée pour industrialiser des modèles supervisés sans infrastructure. L'équipe reposait sur **2 cofondateurs** : 1 CEO/fondateur business et moi-même en **Chef de projet technique & Cofondateur (CTO)**, pilotant la conception produit, l'architecture applicative, la R&D Machine Learning et l'interface investisseurs.

## Approche ML & pipeline technique

### Parcours chronologique en 4 phases

### Recherche et conception (janvier-mars 2016, 3 mois)

- En tant que **chef de projet technique & cofondateur**, j'ai mené l'analyse concurrentielle approfondie d'**Optmyzr** et **Dolead** (features, pricing, positionnement)
- Rédaction du **cahier des charges (60 pages)** et production de **40+ pages de maquettes** pour Dashboard, Campaign Manager, Keywords, Opportunities, Quality Score, Reports et AI Insights
- Choix techniques motivés : **Angular** plutôt que React (maturité TypeScript 2016), **Symfony 3.2** pour Doctrine ORM et les bundles, **Azure ML Studio** pour le time-to-market, **NLTK** plutôt que spaCy pour le multi-langue
- **Difficulté surmontée** : rareté des freelances ML à Bordeaux - résolue par recherche GitHub géolocalisée sur tags `machine-learning`

### Prototype et v1 (avril-octobre 2016, 7 mois)

- Sprint 0 : setup **Vagrant + Ubuntu 16.10**, GitLab self-hosted, CI/CD et premiers bundles Symfony
- Développement du **Data Collection Service** (connecteurs Google AdWords + Bing Ads)
- Construction du **SERP Scraper** (Goutte + CasperJS) couvrant 6 moteurs (Google, Bing, Yahoo, Yandex, Baidu, DuckDuckGo)
- Pipeline NLP (NLTK + TF-IDF) en sidecar **Python Flask** + premiers modèles **Azure ML Studio** (Bid Prediction + k-means)
- **Livraison v1 en novembre 2016** avec 3 premiers beta-testeurs
- **Difficulté surmontée** : volumétrie SERP de 10M+ requêtes/mois - résolue par cache **Memcached** et queue **Redis**

### v2 et multi-plateforme (novembre 2016 - juin 2017, 8 mois)

- Retours beta-testeurs → refonte UX sur **plusieurs écrans**
- Ajout de la couverture **Facebook Ads SDK**
- Build **desktop Electron** (Mac / Windows / Linux) et **mobile Cordova** (iOS / Android)
- Intégration **Google Prediction API** pour la segmentation d'audience
- **Difficulté surmontée** : Google a annoncé la migration AdWords API → **Google Ads API** début 2018 - refonte complète de tous les connecteurs anticipée

### v3 Angular 10 et arrêt (juillet 2017 - décembre 2018)

- Migration **Angular 4 → 6 → 8 → 10** en 3 itérations majeures
- Stabilisation et amélioration de l'accuracy des modèles Azure ML
- Recherche de clients payants : **4 contrats signés** sur 18 mois (vs objectif initial de 20)
- Cycle de vente B2B long (**6 mois** en moyenne), runway insuffisant pour attendre la maturation du funnel
- **Décembre 2018** : arrêt du projet, budget épuisé

### Choix techniques et méthodes ML

### Flux de classification

### Pipeline Machine Learning de bout en bout

### Architecture applicative et services

- **Apprentissage supervisé** (gradient boosting, régression logistique, arbres de décision) entraînés sur Azure ML Studio pour prédire les composantes du Quality Score
- **Pipeline NLP** avec NLTK : tokenisation, stemming, suppression des stop words et vectorisation TF-IDF des mots-clés et requêtes de recherche
- **Clustering k-means** appliqué aux vecteurs TF-IDF pour regrouper les mots-clés par intention de recherche et détecter les mots-clés négatifs
- **Segmentation d'audience** par classification supervisée sur données démographiques (âge, genre) via Google Prediction API
- **Scraping multi-moteurs** (Google, Bing, Yahoo, Yandex, Baidu, DuckDuckGo) pour collecter des données de veille concurrentielle

Pipeline ML en trois étapes : (1) Data Collection via les APIs Google AdWords, Bing Ads, et un SERP Scraper maison construit avec Goutte et CasperJS pour récupérer les résultats de recherche structurés. (2) NLP Processing avec NLTK pour la tokenisation, le stemming, la suppression des stop words, puis vectorisation TF-IDF. (3) ML Models sur Azure ML Studio : classification supervisée par Gradient Boosting pour prédire la pertinence, clustering non supervisé par k-means pour identifier les segments de mots-clés, et Google Prediction API pour la segmentation d'audience. Architecture : Backend Symfony 3.2 avec 4 bundles (Core, Api, Admin, QueryBuilder), frontend Angular 4 puis Angular 10 avec Highcharts et Syncfusion. Infrastructure : Vagrant Ubuntu 16.10, MySQL utf8mb4, Memcached, GitLab CI/CD, Electron desktop + Cordova mobile.

## Équipe & organisation

### L'équipe en chiffres

### Mon rôle et le recrutement

En tant que **Chef de projet technique & Cofondateur (CTO)**, j'ai piloté l'ensemble du projet de la conception à la livraison : **architecture applicative**, **R&D Machine Learning**, **pilotage des sprints**, **gestion des prestataires** et **interface investisseurs**. Coordination de **4 prestataires externes** (2 développeurs full-stack Angular/Symfony, 1 freelance ML/data Python, 1 UX designer) identifiés via recherche GitHub dans la région bordelaise.

### Parties prenantes externes

### Difficultés organisationnelles surmontées

### Rituels Scrum et chaîne CI/CD

- **3-4 beta-testeurs** (agences SEA françaises) : feedback hebdomadaire pendant 18 mois, co-design des workflows
- **4 clients payants** signés sur 18 mois d'activité commerciale
- **1 Business Angel** rencontré en due-diligence (offre finalement déclinée par nos soins)
- **Partenaire Microsoft Azure ML team** : accès preview aux nouveautés de la plateforme
- **6 rendez-vous VC à Paris** et 2 comités d'investissement pour la pré-séance

- **Coordination à distance** (freelances à Bordeaux, Paris, Toulouse) via Trello + Slack + visio hebdomadaire
- **Divergence roadmap CEO vs chef de projet technique** : le CEO poussait les ventes + nouvelles features, moi je poussais la stabilité + accuracy des modèles - résolue par des 1-1 hebdomadaires et un backlog priorisé en commun

Équipe Scrum de 5 personnes : 1 CEO/fondateur, 1 CTO/cofondateur technique (mon rôle : chef de projet technique et cofondateur), 2 développeurs freelance backend/frontend, 1 designer UX. Organisation : sprints de 2 semaines avec Sprint Planning (Trello), développement, code review (GitLab MR), déploiement automatique staging (GitLab CI), Sprint Review (démo produit), Rétrospective. 18+ dépôts de code dans 3 versions majeures. 40+ pages de maquettes. Coordination quotidienne et gestion externe de freelances. Interactions commerciales avec les premiers beta-testeurs, feedback produit hebdomadaire.

### 5

Personnes

### 18+

Dépôts de code

### 3

Versions majeures

### 40+

Pages de maquettes

## Résultats & réalisations

### Pour l'entreprise : livrables et jalons

### Pour moi : apprentissages et évolution

- **Première plateforme SaaS française** à industrialiser **Azure ML Studio** en production pour le AdTech, dès 2016 - bien avant la généralisation des modèles prédictifs dans la publicité digitale
- **Livraison continue sur 3 ans** avec une équipe stable de 4 prestataires, un budget maîtrisé jusqu'à l'épuisement contrôlé du runway et un produit fonctionnel en production du sprint 1 jusqu'à l'arrêt
- **Construction d'une application multi-plateforme** : web (Firebase), desktop (Electron pour Mac/Win/Linux) et mobile (Cordova pour iOS/Android)
- **Conception et documentation d'un modèle de données complet** couvrant les écosystèmes Google AdWords, Bing Ads et Facebook Ads
- **3 versions majeures du backend en moins d'un an**, avec migration d'**Angular 4** vers **Angular 10**
- **Documentation projet complète** : cahier des charges, 4 specs fonctionnelles, specs techniques, modèle de données, étude de marché

- **Première cofondation de startup tech** en tant que **Chef de projet technique & Cofondateur (CTO)**, avec pilotage de bout en bout (conception, équipe, livraison, investisseurs)
- **Maîtrise opérationnelle de la casquette chef de projet technique en early-stage** : découpage des sprints, estimation, coordination freelances, roadmap produit négociée avec le CEO
- **Expertise Machine Learning appliqué** acquise en conditions réelles : Azure ML Studio, NLTK, gradient boosting, k-means en production
- **Pilotage d'un axe R&D pluriannuel** : budget, recrutement, priorisation produit, gestion des stakeholders investisseurs
- **Management de freelances distants** et gestion de turnover sur 3 ans
- **Apprentissage concret du product-market fit** : l'excellence technique seule ne suffit pas, la validation commerciale doit précéder la construction
- **Compréhension des cycles B2B longs** (6 mois de vente moyenne) et de l'importance du funnel commercial vs la R&D pure
- **Adoption définitive de l'approche lean startup** dans toutes mes missions CTO / chef de projet technique ultérieures

Plateforme SaaS fonctionnelle en production avec campagnes gérées automatiquement. Preuves de concept validées pour la classification d'intentions de recherche et la détection de mots-clés négatifs. Applications multi-plateformes : web SPA Angular, desktop Electron (Mac/Windows/Linux), mobile Cordova (iOS/Android). Pipeline ML opérationnel avec Azure ML Studio. Intégration avec Google AdWords, Bing Ads, Facebook Ads APIs. Sur le plan personnel : première expérience de cofondation d'une startup tech, de gestion d'équipe technique, et de R&D en machine learning appliqué au marketing digital. Validation de mes compétences de Technical Project Manager.

## Issue du projet

### Fin de l'aventure et état du projet

### Futur immédiat (2018-2019, post-arrêt)

### À distance (2019-2022)

### Aujourd'hui (2026)

- Arrêt du développement **décembre 2018** et gel des environnements de production
- Retours aux beta-testeurs avec **solution de transition vers Optmyzr** (migration accompagnée)
- **4 clients actifs** suivis manuellement pendant 3 mois après l'arrêt
- **Documentation complète archivée** (cahier des charges, specs, modèle de données, étude de marché) pour éventuel pivot futur
- **Libération des 4 prestataires** : tous retrouvent des missions dans le mois

- **Retours d'expérience** donnés en école de développement à Bordeaux (partage sur le product-market fit et l'industrialisation Azure ML)
- Convergence du marché AdTech : **OpenAI GPT (2020-2022)** redistribue les cartes, les modèles ML classiques sont largement dépassés par les LLM

### **Projet clos**, aucune reprise ni pivot envisagés

- **Projet clos**, aucune reprise ni pivot envisagés
- **Captures d'écran et maquettes** servent aujourd'hui de portfolio (voir galerie ci-dessous)

Le projet s'est achevé fin 2018 après 3 ans d'activité. La startup n'a pas trouvé son product-market fit au niveau requis pour lever des fonds significatifs. Apprentissages capitalisés : les contraintes réglementaires strictes des APIs Google/Facebook, la compétition féroce sur le marché US, et la difficulté de différencier un produit technique face à des acteurs établis. Ces leçons ont nourri mes projets ultérieurs (Groupe Pichet, puis ACCENSEO).

Le projet a finalement été **abandonné par manque de moyens budgétaires**. Le coût de la R&D était trop important pour une startup bootstrappée sans financement externe. Le produit fonctionnait, les modèles produisaient de vraies recommandations d'optimisation, mais **sans traction commerciale le budget s'est épuisé**.

## Retour critique

### Points positifs

### Points d'amélioration

### Ce que je ferais différemment

### Leçons durables retenues

- **Rigueur technique** : architecture DDD propre, bundles Symfony modulaires, tests et CI/CD dès j0 - tenue en standard personnel depuis
- **Choix ML stratégique** : industrialiser Azure ML Studio était le bon pari en 2016 (time-to-market + scalabilité managée)
- **Multi-plateforme très avant-gardiste** : desktop + mobile + web avec une codebase Angular unifiée en 2016
- **Documentation exhaustive** : cahier des charges, specs, modèle de données, étude de marché

- **Validation commerciale trop tardive** : construction de la v1 complète avant confrontation à 3 prospects payants
- **Dépendance Azure ML Studio** : vendor lock-in pris en compte trop tardivement
- **Équipe trop tech** : pas de profil growth / marketing en dur, tout reposait sur le CEO

- **D'abord vendre, puis construire** : 3 MOU signés avant le moindre sprint de développement
- **MVP minuscule** : 1 seule feature ML (détection de mots-clés négatifs), testée 6 mois avant d'élargir le scope
- **ML open-source** : scikit-learn + FastAPI plutôt qu'Azure ML Studio, pour éviter le vendor lock-in
- **Recruter un 3e cofondateur growth / marketing** pour équilibrer le trio technique/business/acquisition
- **Formaliser plus tôt le rôle de chef de projet technique** avec un board de pilotage partagé avec le CEO, pour éviter les divergences silencieuses sur les priorités

- **L'excellence technique seule ne fait pas un business viable.** Un bon produit sans clients payants reste un projet R&D.
- **Le timing compte autant que l'exécution.** L'angle IA appliquée à la publicité était **en avance sur son temps en 2016** - ce qui rendait le projet visionnaire mais aussi plus difficile à vendre.
- **Valider le marché avant de construire le produit.** Trop de temps investi en R&D technique et pas assez en validation commerciale avec de vrais clients payants.
- **La capacité d'itération rapide est un atout durable** - cette discipline de livraison régulière est restée un réflexe permanent dans tous mes projets suivants.

Forces : une architecture technique moderne pour l'époque, une équipe motivée, une approche ML-first différenciée par rapport aux concurrents purement heuristiques. Faiblesses : surinvestissement technique avant validation du product-market fit, dépendance excessive aux APIs tierces (quotas Google changeants), et manque de puissance commerciale pour affronter Optmyzr et Dolead. Leçons : valider le marché avant de sur-construire. Une startup tech ne survit pas sans traction commerciale, même avec d'excellents modèles ML. Privilégier les POC rapides plutôt que des plateformes complètes avant d'avoir les premiers clients payants. Ce projet a été une école de lucidité entrepreneuriale qui m'a servi dans ACCENSEO plus tard.

### Contexte additionnel

- Retour aux réalisations
- Janvier 2016 - Décembre 2018
- Présentation du projet
- AdsPower était une **startup early-stage** développant une plateforme SaaS d'optimisation des campagnes publicitaires par **intelligence artificielle**. Le concept central : ingérer des milliers de points de données de campagnes - mots-clés, enchères, quality scores, taux de clic, données de conversion - et les injecter dans des **modèles de classification supervisés** entraînés sur **Azure Machine Learning Studio** pour produire des **recommandations d'optimisation actionnables**.

Concrètement, les modèles apprenaient à classifier les comportements utilisateurs, analyser l'intention de recherche via les SERP Google, prédire les prix d'enchères optimaux, identifier les clusters de mots-clés performants, détecter les mots-clés négatifs qui drainaient les budgets, et recommander des améliorations d'annonces basées sur les patterns de performance historiques - l'ensemble aboutissant à **l'optimisation automatique des enchères** en fonction du taux de transformation.

Le projet était directement inspiré d'**Optmyzr** et de **Dolead** (plateforme française de performance marketing), tous deux analysés en profondeur durant notre recherche concurrentielle.
- Objectifs, Contexte & Risques
- Approche ML & pipeline technique
- Équipe & organisation
- Résultats & réalisations
- Issue du projet
- Retour critique
- Exemple concret : classification des intentions de recherche
- **Le problème** : dans Google AdWords, les annonceurs achètent des mots-clés en correspondance large (broad match). Google déclenche alors les annonces sur des requêtes de recherche qu'il juge proches, mais qui n'ont souvent **rien à voir avec l'intention commerciale** de la campagne. Un annonceur vendant des "fournitures informatiques professionnelles" peut voir son budget consommé par des visiteurs cherchant "cours d'informatique gratuit" ou "réparation PC à domicile" - des clics payés qui ne convertiront jamais.

**La solution ML** : le système scrapait les résultats de recherche Google (SERP) pour chaque mot-clé acheté, analysait le **type de résultats affichés** (résultats shopping, fiches produit, articles informationnels, forums...) et extrayait la **classification thématique et l'intention de recherche** (transactionnelle, informationnelle, navigationnelle). Ces signaux, combinés aux données de performance historiques (CTR, taux de conversion, coût), étaient vectorisés via **TF-IDF** et injectés dans un **modèle de classification supervisé** (gradient boosting sur Azure ML).

**Le résultat** : le modèle classifiait chaque requête de recherche visiteur comme **pertinente ou non-pertinente** par rapport à l'objectif commercial de la campagne. Les mots-clés identifiés comme faux positifs étaient automatiquement proposés en **mots-clés négatifs** pour être exclus de la campagne. Sans ce système, il était impossible de détecter systématiquement les dépenses gaspillées sur des intentions utilisateur hors-cible.

Ceci n'est qu'un exemple parmi les nombreux algorithmes d'optimisation construits dans la plateforme.

## Compétences mobilisées

_Compétences techniques et humaines appliquées_

- **Leadership & Gestion d'Équipe** - Co-fondation startup en CTO et management d'une équipe de 4 freelances
- **Adaptabilité & Agilité d'Apprentissage** - Auto-formation NLP, classification ML et Azure ML Studio
- **Gestion de Projet** - 3 itérations majeures de produit en moins d'un an en chef de projet technique
- **Développement Full-Stack** - Plateforme full-stack Symfony 3.2 + Angular 4/10 avec pipelines ML
- **Résolution de Problèmes & Pensée Critique** - Algorithmes de classification d'intention et optimisation d'enchères TF-IDF/k-means
- **REST API Design** - Intégration des API Google AdWords, Bing Ads et Facebook Ads

## Parcours associé

_Expérience professionnelle liée à cette réalisation_

- **AdsPower - Project Manager technique & Cofondateur** - Startup early-stage développant une plateforme SaaS d'optimisation des campagnes publicitaires par intelligence artificielle. Le produit utilisait le machine learning pour classifier les comportements utilisateurs, predire la probabilité de conversion et optimiser automatiquement les encheres en fonction du taux de transformation.
En tant que chef de projet technique, pilotage de bout en bout : cadrage fonctionnel et technique, planification, coordination d'une équipe de 4 freelances, et suivi de la livraison du MVP.

## Galerie d'images

_Captures et visuels du projet_

## Vous avez un projet SaaS propulsé par l'IA, LLM ou Machine Learning ?

Aujourd'hui, j'interviens sur des projets SaaS propulsés par l'**IA** et les **LLM** : **RAG**, **fine-tuning**, **agents autonomes**, orchestration multi-modèles, où il s'agit de transformer un flux de données brut en recommandations actionnables. Ce savoir-faire s'appuie sur un socle plus ancien de **Machine Learning classique** - industrialisé sur AdsPower avec **NLP** (NLTK + TF-IDF), **classification supervisée** (gradient boosting) et **clustering k-means**, intégré à plusieurs APIs externes (Google AdWords, Bing Ads, Facebook Ads) dans une plateforme SaaS multi-plateforme. Si vous explorez un projet SaaS autour de l'**IA**, des **LLM** ou du **Machine Learning**, parlons de votre contexte.

**Contactez-moi**
