
AI Machine Learning SaaS Platform for Ad Optimization - AdsPower
SaaS platform for AI and Machine Learning-driven ad optimization: search intent classification via NLP, automated bidding and negative keyword detection across Google AdWords, Bing Ads and Facebook Ads
Project Overview
AdsPower was an early-stage startup building a SaaS platform for AI-driven ad campaign optimization. The core concept: ingest thousands of campaign data points - keywords, bids, quality scores, click-through rates, conversion data - and feed them into supervised classification models trained on Azure Machine Learning Studio to output actionable optimization recommendations.
Concretely, the models learned to classify user behaviors, analyze search intent via Google SERPs, predict optimal bid prices, identify high-performing keyword clusters, detect negative keywords that drained budgets, and recommend ad improvements based on historical performance patterns - the whole pipeline resulting in automatic bid optimization based on conversion rates.
The project was directly inspired by Optmyzr and Dolead (French performance marketing platform), both analyzed in depth during our competitive research.
Objectives, Context & Risks
AI-Driven Optimization
Classify search intent and predict conversion probability per keyword via supervised classification models
Automated Bidding
Automatically optimize bids (1st page, top, 1st position) based on actual conversion rates
Negative Keyword Detection
Automatically identify and exclude keywords draining budget without conversion through semantic clustering
Quality Score
Predict and improve Quality Score via expected CTR analysis, ad relevance, and landing page experience
In 2016, the SEA AdTech space was dominated by Optmyzr (US) and Dolead (France), both built on essentially heuristic recommendation engines. Azure Machine Learning Studio had just exited public preview in 2015, opening a managed path to industrialize supervised models without infrastructure. The team relied on 2 cofounders: 1 CEO/business founder and myself as Technical Project Manager & Cofounder (CTO), driving product design, application architecture, ML R&D, and investor relations.
- Technical: industrialize Azure ML in production with < 500 ms latency on bid recommendations
- Regulatory: comply with Google AdWords API quotas and TOS - risk of ban if exceeded
- Differentiation: ML-first approach (vs heuristic of established platforms on the market)
- Survival: validate PMF (Product-Market Fit) before runway depletion (cash left before funding runs out - 18-24 months max without fundraise)
- Google AdWords API quotas: rate-limiting or ban if excessive volume
- API breaking changes: Google regularly updates TOS and schemas (confirmed by the AdWords -> Google Ads migration in early 2018)
- Imprecise models: accuracy < 80% = loss of client trust
- Azure ML Studio vendor lock-in: Microsoft platform still young at the time
- Scarcity of ML skills in the Bordeaux region in 2017
- Limited runway: bootstrapped startup with no external investor
ML Approach & Technical Pipeline
Phase 1
Research and design (January-March 2016, 3 months)
- •As Technical Project Manager & Cofounder, I led the deep competitive analysis of Optmyzr and Dolead (features, pricing, positioning)
- •Drafted the 60-page specification document and produced 40+ mockup pages for Dashboard, Campaign Manager, Keywords, Opportunities, Quality Score, Reports, and AI Insights
- •Motivated technical choices: Angular over React (TypeScript maturity in 2016), Symfony 3.2 for Doctrine ORM and bundles, Azure ML Studio for time-to-market, NLTK over spaCy for multi-language support
- •Overcame difficulty: ML talent scarcity in Bordeaux - solved through geo-filtered GitHub search on `machine-learning` tags
Phase 2
Prototype and v1 (April-October 2016, 7 months)
- •Sprint 0: setup Vagrant + Ubuntu 16.10, self-hosted GitLab, CI/CD, and first Symfony bundles
- •Built the Data Collection Service (Google AdWords + Bing Ads connectors)
- •Built the SERP Scraper (Goutte + CasperJS) covering 6 engines (Google, Bing, Yahoo, Yandex, Baidu, DuckDuckGo)
- •NLP pipeline (NLTK + TF-IDF) as a Python Flask sidecar + first Azure ML Studio models (Bid Prediction + k-means)
- •v1 delivered in November 2016 with the first 3 beta testers
- •Overcame difficulty: 10M+ SERP requests/month - solved with Memcached cache and Redis queue
Phase 3
v2 and multi-platform (November 2016 - June 2017, 8 months)
- •Beta-tester feedback → UX redesign across several screens
- •Added Facebook Ads SDK coverage
- •Electron desktop build (Mac / Windows / Linux) and Cordova mobile build (iOS / Android)
- •Google Prediction API integration for audience segmentation
- •Overcame difficulty: Google announced the AdWords API → Google Ads API migration in early 2018 - full connector refactor planned ahead
Phase 4
v3 Angular 10 and shutdown (July 2017 - December 2018)
- •Angular 4 → 6 → 8 → 10 migration across 3 major iterations
- •Stabilization and accuracy improvements on Azure ML models
- •Paying customer acquisition: 4 contracts signed over 18 months (vs initial target of 20)
- •Long B2B sales cycle (6 months on average), insufficient runway to wait for funnel maturation
- •December 2018: project shut down, budget depleted
- Supervised learning (gradient boosting, logistic regression, decision trees) trained on Azure ML Studio to predict Quality Score components
- NLP pipeline with NLTK: tokenization, stemming, stop word removal and TF-IDF vectorization of keywords and search queries
- k-means clustering applied to TF-IDF vectors to group keywords by search intent and detect negative keywords
- Audience segmentation via supervised classification on demographic data (age, gender) using Google Prediction API
- Multi-engine scraping (Google, Bing, Yahoo, Yandex, Baidu, DuckDuckGo) to collect competitive intelligence data
The problem: in Google AdWords, advertisers buy keywords in broad match. Google then triggers ads on search queries it considers similar, but which often have nothing to do with the campaign's commercial intent. An advertiser selling "professional IT supplies" could see their budget consumed by visitors searching for "free computer courses" - paid clicks that will never convert.
The ML solution: the system scraped Google search results (SERP) for each purchased keyword, analyzed the type of displayed results and extracted the thematic classification and search intent (transactional, informational, navigational). These signals were vectorized via TF-IDF and fed into a supervised classification model (gradient boosting on Azure ML).
The result: the model classified each query as relevant or irrelevant. Keywords identified as false positives were automatically suggested as negative keywords to be excluded.
This is just one example among the many optimization algorithms built into the platform.
Classification Flow
Team & Organization
5
People
18+
Code repos
3
Major versions
40+
Mockup pages
As Technical Project Manager & Cofounder (CTO), I led the entire project from conception to delivery: application architecture, Machine Learning R&D, sprint management, vendor management, and investor relations. Coordinated 4 external contractors (2 full-stack Angular/Symfony developers, 1 ML/data Python freelancer, 1 UX designer) sourced through GitHub search in the Bordeaux area.
- 3-4 beta testers (French SEA agencies): weekly feedback for 18 months, workflow co-design
- 4 paying customers signed over 18 months of commercial activity
- 1 Business Angel met in due-diligence (offer ultimately declined on our side)
- Microsoft Azure ML team partner: preview access to platform updates
- 6 VC meetings in Paris and 2 pre-seed investment committees
- Remote coordination (freelancers in Bordeaux, Paris, Toulouse) via Trello + Slack + weekly video calls
- CEO vs Technical Project Manager roadmap divergence: the CEO pushed sales + new features, I pushed stability + model accuracy - resolved with weekly 1-1s and a jointly-prioritized backlog
Results & Achievements
- First French SaaS platform to industrialize Azure ML Studio in production for AdTech, as early as 2016 - well before predictive models became mainstream in digital advertising
- 3 years of continuous delivery with a stable team of 4 contractors, a controlled budget until runway depletion, and a functional product in production from sprint 1 until shutdown
- Built a multi-platform application: web (Firebase), desktop (Electron for Mac/Win/Linux) and mobile (Cordova for iOS/Android)
- Designed and documented a complete data model covering Google AdWords, Bing Ads and Facebook Ads ecosystems
- 3 major backend versions in under a year, with a migration from Angular 4 to Angular 10
- Complete project documentation: requirements doc, 4 functional specs, technical specs, data model, market study
- First tech startup cofounding as Technical Project Manager & Cofounder (CTO), with end-to-end leadership (design, team, delivery, investors)
- Operational mastery of the Technical Project Manager hat in early-stage: sprint breakdown, estimation, freelancer coordination, product roadmap negotiated with the CEO
- Applied Machine Learning expertise acquired in real-world conditions: Azure ML Studio, NLTK, gradient boosting, k-means in production
- Multi-year R&D track leadership: budget, hiring, product prioritization, investor stakeholder management
- Remote freelancer management and turnover handling over 3 years
- Concrete product-market fit lesson: technical excellence alone is not enough, commercial validation must precede construction
- Long B2B cycle understanding (6-month average sales cycle) and the importance of the commercial funnel vs pure R&D
- Permanent adoption of the lean startup approach in all my subsequent CTO / Technical Project Manager missions
Project Outcome
The project was ultimately abandoned due to lack of funding. The R&D cost was too high for a bootstrapped startup with no external financing. The product worked, the models produced real optimization recommendations, but without commercial traction the budget ran out.
- •Development halted in December 2018 and production environments frozen
- •Returned to beta testers with a transition path to Optmyzr (assisted migration)
- •4 active customers manually supported for 3 months after shutdown
- •Complete documentation archived (spec, functional specs, data model, market study) for a potential future pivot
- •Freed the 4 contractors: all found new engagements within the following month
- •Postmortem talks at a Bordeaux coding school (sharing on product-market fit and Azure ML industrialization)
- •AdTech market shift: OpenAI GPT (2020-2022) reshuffles the deck, classical ML models are largely surpassed by LLMs
- •Project closed, no restart or pivot planned
- •Screenshots and mockups now serve as portfolio material (see gallery below)
Critical Reflection
- Technical rigor: clean DDD architecture, modular Symfony bundles, tests and CI/CD from day 0 - kept as personal standard since
- Strategic ML choice: industrializing Azure ML Studio was the right bet in 2016 (time-to-market + managed scalability)
- Pioneering multi-platform: desktop + mobile + web with a unified Angular codebase in 2016
- Exhaustive documentation: requirements, specs, data model, market study
- Too-late commercial validation: built the full v1 before confronting 3 paying prospects
- Azure ML Studio dependency: vendor lock-in factored in too late
- Team too tech-heavy: no dedicated growth / marketing profile, everything rested on the CEO
- Sell first, then build: 3 MOUs signed before any development sprint
- Tiny MVP: 1 ML feature only (negative keyword detection), tested for 6 months before broadening scope
- Open-source ML: scikit-learn + FastAPI rather than Azure ML Studio, to avoid vendor lock-in
- Recruit a 3rd growth / marketing cofounder to balance the tech/business/acquisition trio
- Formalize the Technical Project Manager role earlier with a shared pilot board with the CEO, to avoid silent priority drift
- Technical excellence alone doesn't make a viable business. A good product without paying customers remains an R&D project.
- Timing matters as much as execution. The AI angle applied to advertising was ahead of its time in 2016 - making the project visionary but also harder to sell.
- Validate the market before building the product. Too much time invested in technical R&D and not enough in commercial validation with real paying customers.
- The ability to iterate fast is a lasting asset - this regular delivery discipline became a permanent reflex in all my subsequent projects.
Related journey
Professional experience linked to this achievement
Skills applied
Technical and soft skills applied
Hard Skills
Soft Skills
Leadership & Team Management
Co-founded startup as CTO, managed a team of 4 freelancers for ML platform development
Adaptability & Learning Agility
Self-taught NLP, ML classification, and Azure ML Studio to build advertising intelligence platform
Project Management
Led 3 major product iterations in under a year as Technical Project Manager
Problem Solving & Critical Thinking
Designed search intent classification and bid optimization algorithms using TF-IDF and k-means clustering
Image gallery
Project screenshots and visuals









Have a SaaS project powered by AI, LLMs or Machine Learning?
Today I work on SaaS projects powered by AI and LLMs: RAG, fine-tuning, autonomous agents, multi-model orchestration, where the goal is to turn raw data into actionable recommendations. This expertise builds on an older foundation of classical Machine Learning - industrialized on AdsPower with NLP (NLTK + TF-IDF), supervised classification (gradient boosting) and k-means clustering, integrated with several external APIs (Google AdWords, Bing Ads, Facebook Ads) into a multi-platform SaaS. If you are exploring a SaaS project around AI, LLMs or Machine Learning, let's talk about your context.
Contact me