| name | apify-concurrence-locale |
| description | Use when you want to size up every competitor on Google Maps for a trade in a given area - their ratings, review counts, price level and coordinates. Search term + location -> CSV of competitors ranked. |
Radiographier la concurrence locale
Objectif & quand
One-shot : tu ouvres (ou tu audites) une activité dans une zone et tu veux la photo complète de la concurrence sur Google Maps - qui est là, combien d'avis, quelle note moyenne, quel niveau de prix. Utile pour te positionner (prix, promesse), repérer les leaders à observer et les trous de marché. Cet Actor lit la recherche Google Maps publique et te sort un tableau comparable, ligne par ligne.
Prérequis
- Compte Apify +
APIFY_TOKEN (gratuit pour démarrer).
- MCP Apify configuré (
CONNECTING-MCP.md).
Actor utilisé
compass/crawler-google-places (https://apify.com/compass/crawler-google-places) - le scraper Google Maps de référence : établissements, notes, nombre d'avis, niveau de prix, coordonnées.
Config (config.example.yaml)
| Champ | Rôle |
|---|
searchStringsArray | métier / type d'établissement à cartographier (ex : salle de sport) |
locationQuery | zone géographique en texte libre (ex : Bordeaux, France) |
maxCrawledPlacesPerSearch | nombre max de concurrents par terme (borne le coût) |
scrapePlaceDetailPage | ouvre la fiche de chaque lieu pour récupérer le niveau de prix + détails |
language | langue des résultats (fr) |
Procédure (via MCP)
- Définir le métier (
searchStringsArray) et la zone (locationQuery).
- Demander au MCP Apify de lancer l'Actor
compass/crawler-google-places avec l'input de config.example.yaml (tool call-actor).
- Récupérer les items du dataset (
get-dataset-items).
- Mettre en forme : une ligne par concurrent. Trier par nombre d'avis (
reviews_count) pour faire ressortir les leaders.
Si le MCP ne fait pas l'action
Fallback via lib/apify_helpers.py :
from lib import apify_helpers as a
places = a.run_actor("compass/crawler-google-places", {
"searchStringsArray": ["salle de sport"],
"locationQuery": "Bordeaux, France",
"maxCrawledPlacesPerSearch": 50,
"scrapePlaceDetailPage": True,
"language": "fr",
})
Ou lancer l'Actor depuis la console Apify (bouton Start) avec le même input.
Livrable
CSV : name, category, rating, reviews_count, price_level, address, phone, website, maps_url.
Coût & limites
Pay-per-result : $0.004 / établissement, +$0.002 / établissement pour le détail de fiche (scrapePlaceDetailPage, nécessaire au niveau de prix). 50 concurrents ≈ $0.30. Le champ maxCrawledPlacesPerSearch borne la dépense. Données publiques. Pour surveiller ensuite les avis d'un concurrent dans le temps, voir le script veille_avis_maps.
Exemple
examples/concurrence-locale.csv (données fictives, schéma réel).