La sección La gente también pregunta (PAA) en los resultados de búsqueda de Google revela las preguntas de seguimiento que los usuarios tienen sobre un tema. Estos datos son extremadamente valiosos para la estrategia de contenido: identificar qué preguntas relacionadas debe responder en su página, crear secciones de preguntas frecuentes y comprender la intención del usuario. La API de Scavio incluye la matriz people_also_ask en las respuestas SERP cuando Google muestra este cuadro. Este tutorial muestra cómo extraer datos PAA para cualquier palabra clave y utilizarlos para el análisis de brechas de contenido.
Requisitos previos
- Python 3.8 o superior
- solicita biblioteca instalada
- Una clave API de Scavio
- Comprensión básica de listas y dictados de Python
Guia paso a paso
Paso 1: Obtener SERP con datos PAA
PUBLICAR en el punto final de Scavio con su palabra clave. La respuesta incluirá una matriz people_also_ask cuando Google muestre el cuadro PAA.
data = search_google("how does retrieval augmented generation work")
paa = data.get("people_also_ask", [])
print(f"Found {len(paa)} PAA questions")Paso 2: Imprimir preguntas y respuestas
Cada elemento de PAA contiene una pregunta, un fragmento de respuesta y un enlace de origen. Repetirlos e imprimirlos.
for item in paa:
print("Q:", item["question"])
print("A:", item.get("snippet", "No answer available"))
print("Source:", item.get("link", ""))
print()Paso 3: Extraer preguntas para el análisis de brechas de contenido
Cree una lista solo de las preguntas. Estos representan temas que debería considerar abordar en su contenido.
questions = [item["question"] for item in paa]
print("Content gaps to address:")
for q in questions:
print(f" - {q}")Paso 4: Exportar a JSON para revisión editorial
Guarde los datos de PAA como JSON para que un equipo de contenido pueda revisarlos o incluirlos en un LLM para generar preguntas frecuentes.
import json
with open("paa_data.json", "w") as f:
json.dump({"keyword": keyword, "questions": paa}, f, indent=2)
print("Saved PAA data to paa_data.json")Ejemplo en Python
import os
import json
import requests
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
def get_paa(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("people_also_ask", [])
def analyze_content_gaps(keywords: list[str]) -> dict:
all_questions = {}
for kw in keywords:
questions = [item["question"] for item in get_paa(kw)]
all_questions[kw] = questions
return all_questions
if __name__ == "__main__":
keywords = ["vector database", "embedding models 2026"]
gaps = analyze_content_gaps(keywords)
print(json.dumps(gaps, indent=2))Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
async function getPAA(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.people_also_ask || [];
}
async function main() {
const keywords = ["vector database", "embedding models 2026"];
for (const kw of keywords) {
const paa = await getPAA(kw);
console.log(`\n${kw}:`);
paa.forEach(item => console.log(` Q: ${item.question}`));
}
}
main().catch(console.error);Salida esperada
{
"people_also_ask": [
{
"question": "What is the difference between RAG and fine-tuning?",
"snippet": "RAG retrieves external documents at inference time, while fine-tuning...",
"link": "https://example.com/rag-vs-finetuning"
},
{
"question": "How do vector databases work?",
"snippet": "Vector databases store high-dimensional embeddings and retrieve...",
"link": "https://example.com/vector-databases"
}
]
}