Las calificaciones de reseñas son un indicador confiable de la calidad empresarial, la satisfacción del cliente y la posición en el mercado. Una empresa con cientos de reseñas de 4,5 estrellas es una ventaja más sólida que una con 3 reseñas y ninguna calificación. Al consultar los datos de reseñas a través de una API de búsqueda, puede calificar clientes potenciales automáticamente según la calificación, el volumen de reseñas y la antigüedad. Este tutorial muestra cómo extraer datos de reseñas de Google para una lista de empresas, crear una fórmula de puntuación y clasificar los clientes potenciales por calidad. El resultado es una lista de clientes potenciales priorizada que muestra primero los prospectos de mayor valor.
Requisitos previos
- Python 3.8+ instalado
- solicita biblioteca instalada
- Una clave API de Scavio de scavio.dev
- Una lista de nombres de empresas o categorías para puntuar
Guia paso a paso
Paso 1: Obtener datos de reseñas para empresas
Consulta Google Maps para empresas en una categoría y extrae el recuento de calificaciones y reseñas.
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def get_reviews(query):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": query, "type": "maps"})
return resp.json().get("local_results", [])Paso 2: Construya la fórmula de puntuación
Califique cada negocio según la calificación, el recuento de reseñas y una fórmula ponderada.
def score_lead(business):
rating = float(business.get("rating", 0))
reviews = int(business.get("reviews", 0))
# Weight: 60% rating quality, 40% review volume
rating_score = (rating / 5.0) * 60
volume_score = min(reviews / 100, 1.0) * 40
return round(rating_score + volume_score, 1)Paso 3: Clasificar y filtrar clientes potenciales
Aplique la puntuación a todas las empresas y ordénelas por calidad.
def rank_leads(query, min_score=50):
businesses = get_reviews(query)
scored = []
for b in businesses:
s = score_lead(b)
if s >= min_score:
scored.append({
"name": b.get("title", ""),
"rating": b.get("rating", "N/A"),
"reviews": b.get("reviews", 0),
"phone": b.get("phone", ""),
"score": s,
})
return sorted(scored, key=lambda x: x["score"], reverse=True)Paso 4: Exportar clientes potenciales clasificados
Guarde la lista de clientes potenciales puntuados y clasificados para su divulgación.
import json
leads = rank_leads("dentists in Chicago IL")
for lead in leads[:10]:
print(f"{lead['score']}pts - {lead['name']} ({lead['rating']} / {lead['reviews']} reviews)")
with open("scored_leads.json", "w") as f:
json.dump(leads, f, indent=2)
print(f"\nExported {len(leads)} scored leads")Ejemplo en Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def score(query):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": query, "type": "maps"})
leads = resp.json().get("local_results", [])
for b in leads[:5]:
r = float(b.get("rating", 0))
n = int(b.get("reviews", 0))
print(f"{b['title']}: {r}/5 ({n} reviews) score={round((r/5)*60+min(n/100,1)*40,1)}")
score("dentists in Chicago IL")Ejemplo en JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function score(query) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query, type: "maps"})
});
const leads = (await r.json()).local_results || [];
leads.slice(0,5).forEach(b => {
const s = (parseFloat(b.rating||0)/5)*60 + Math.min(parseInt(b.reviews||0)/100,1)*40;
console.log(b.title, b.rating, b.reviews, "score=" + s.toFixed(1));
});
}
score("dentists in Chicago IL");Salida esperada
A scored and ranked lead list where each business is rated by review quality and volume, with the highest-value prospects surfaced first.