ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment surveiller les textes publicitaires des concurrents à partir des données SERP
Tutoriel

Comment surveiller les textes publicitaires des concurrents à partir des données SERP

Suivez programmatiquement les titres et descriptions des annonces Google Ads de vos concurrents à l'aide de l'API Scavio. Surveillez les changements de textes publicitaires au fil du temps pour une veille concurrentielle.

Obtenez une clé API gratuiteDocumentation API

Les annonces Google Ads révèlent la stratégie de messagerie, les propositions de valeur et les offres promotionnelles de vos concurrents. Surveiller l'évolution des textes publicitaires vous aide à garder une longueur d'avance sur le positionnement de vos concurrents et à identifier rapidement les nouvelles campagnes. L'API Scavio inclut les résultats d'annonces payantes dans sa réponse SERP, contenant le titre, la description, l'URL affichée et le nom de l'annonceur. Ce tutoriel construit un script qui suit les textes publicitaires pour un ensemble de mots-clés, enregistre des instantanés au format JSON et compare les modifications entre les exécutions.

Prérequis

  • Python 3.8 ou supérieur
  • bibliothèque requests installée
  • Une clé API Scavio
  • Une liste de mots-clés pour lesquels les concurrents diffusent des annonces

Parcours

Étape 1: Récupérer les résultats SERP incluant les annonces

Interrogez Google via Scavio. La réponse inclut un tableau ads avec le titre, la description et le display_url pour chaque résultat payant.

Python
import requests

def get_ads(keyword: str) -> list[dict]:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"query": keyword, "country_code": "us"}
    )
    r.raise_for_status()
    return r.json().get("ads", [])

Étape 2: Extraire les détails des textes publicitaires

Analyser chaque annonce pour le titre, la description, l'URL affichée et le domaine de l'annonceur.

Python
def parse_ad(ad: dict) -> dict:
    return {
        "headline": ad.get("title", ""),
        "description": ad.get("description", ""),
        "display_url": ad.get("displayed_link", ""),
        "link": ad.get("link", ""),
    }

Étape 3: Enregistrer l'instantané de l'annonce au format JSON

Stockez chaque exécution sous forme d'instantané horodaté afin de pouvoir comparer les textes publicitaires entre les exécutions.

Python
import json
from datetime import datetime

def save_snapshot(keyword: str, ads: list[dict]) -> None:
    snapshot = {
        "keyword": keyword,
        "timestamp": datetime.now().isoformat(),
        "ads": [parse_ad(a) for a in ads]
    }
    filename = f"ads_{keyword.replace(' ', '_')}_{datetime.now().strftime('%Y%m%d')}.json"
    with open(filename, "w") as f:
        json.dump(snapshot, f, indent=2)

Étape 4: Comparer les textes publicitaires entre deux instantanés

Comparez deux fichiers d'instantanés pour détecter les nouvelles annonces, les annonces supprimées et les textes modifiés.

Python
def diff_snapshots(old_file: str, new_file: str) -> dict:
    with open(old_file) as f:
        old = {a["link"]: a for a in json.load(f)["ads"]}
    with open(new_file) as f:
        new = {a["link"]: a for a in json.load(f)["ads"]}
    return {
        "new_ads": [new[k] for k in new if k not in old],
        "removed_ads": [old[k] for k in old if k not in new],
        "changed": [new[k] for k in new if k in old and new[k] != old[k]],
    }

Exemple Python

Python
import os
import json
import requests
from datetime import datetime

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
KEYWORDS = ["crm software", "project management tool", "email marketing platform"]

def get_ads(keyword: str) -> list[dict]:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"query": keyword, "country_code": "us"})
    r.raise_for_status()
    return r.json().get("ads", [])

def monitor():
    for kw in KEYWORDS:
        ads = get_ads(kw)
        print(f"\n{kw}: {len(ads)} ads")
        for ad in ads:
            print(f"  {ad.get('title', 'N/A')}")
            print(f"  {ad.get('description', '')[:80]}")
        snapshot = {"keyword": kw, "ts": datetime.now().isoformat(), "ads": ads}
        with open(f"ads_{kw.replace(' ', '_')}.json", "w") as f:
            json.dump(snapshot, f, indent=2)

if __name__ == "__main__":
    monitor()

Exemple JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
const fs = require("fs");

async function getAds(keyword) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ query: keyword, country_code: "us" })
  });
  const data = await res.json();
  return data.ads || [];
}

async function main() {
  const keywords = ["crm software", "project management tool"];
  for (const kw of keywords) {
    const ads = await getAds(kw);
    console.log(`\n${kw}: ${ads.length} ads`);
    ads.forEach(a => console.log(`  ${a.title}`));
    fs.writeFileSync(`ads_${kw.replace(/ /g, "_")}.json`, JSON.stringify({ keyword: kw, ads }, null, 2));
  }
}
main().catch(console.error);

Sortie attendue

JSON
crm software: 4 ads
  Salesforce CRM - The #1 CRM Platform
  Start your free trial today. Trusted by 150,000+ businesses worldwide.
  HubSpot CRM - Free Forever CRM
  Get started with a CRM that scales. No credit card required.

project management tool: 3 ads
  Monday.com - Work Management Platform
  Manage projects, workflows, and tasks in one place.

Tutoriels associés

  • Comment automatiser l'analyse de la concurrence avec des API de recherche
  • Comment suivre les classements SEO quotidiennement avec l'API Scavio

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Python 3.8 ou supérieur. bibliothèque requests installée. Une clé API Scavio. Une liste de mots-clés pour lesquels les concurrents diffusent des annonces. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Best Of

Meilleures API SERP pour l'intelligence Google Ads (2026)

Read more
Solution

Données Google Ads à partir des API SERP

Read more
Best Of

Meilleure API de surveillance des concurrents en 2026

Read more
Use Case

Extraction des annonces Google Ads des SERP

Read more
Comparison

Google Places API vs SERP Local Pack API

Read more
Use Case

Automatisation de la veille concurrentielle TikTok avec n8n

Read more

Commencer

Suivez programmatiquement les titres et descriptions des annonces Google Ads de vos concurrents à l'aide de l'API Scavio. Surveillez les changements de textes publicitaires au fil du temps pour une veille concurrentielle.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité