Saltar al contenido principal

Análisis de audiencia

Indica un tema o el sitio web de una marca y recibe lo que la gente real dice sobre ello en comentarios y debates públicos: las palabras que usa, las preguntas que hace, lo que espera de un producto, en qué no está de acuerdo con los creadores, qué falta en el contenido existente y qué temas están creciendo. Cada hallazgo se cuenta en hilos independientes y se enlaza con los comentarios de los que procede, para que tu equipo o tu propio modelo de IA puedan comprobarlo.

Un trabajo de investigación lee una muestra de hasta 500 comentarios aceptados y la convierte en los nueve productos (vistas distintas de los mismos datos) que se indican a continuación. Cada trabajo incluye los nueve; puedes indicar el que más te interesa.

Valor de productsQué recibes
audience_keywordsfrases que usa la audiencia, agrupadas por significado (frecuencia en comentarios, no volumen de búsqueda)
audience_questionspreguntas recurrentes con sus variantes, la etapa del embudo y si los creadores ya las responden
website_requirementslo que un sitio web debe decir o mostrar: funciones, integraciones, precios, pruebas, objeciones; cada punto marcado como must, should o could
comparison_intelligencecómo compara la audiencia los productos mencionados: criterios, motivos para cambiar, carencias de confianza
content_brief_from_audienceun brief de contenido: título provisional, secciones, preguntas que responder, objeciones, FAQ, afirmaciones que evitar
audience_content_gapsdemanda que las respuestas existentes cubren mal, con el material que conviene crear
creator_vs_audience_gapdónde los comentaristas discrepan de lo que afirman los creadores, lo cuestionan o le añaden condiciones
buyer_expectationslo que los compradores dan por hecho (must_have) y lo que diferencia a un producto (differentiator)
trend_from_audiencetemas rising, stable o declining, normalizados por cada 1000 hilos relevantes

El análisis de audiencia se activa para una clave bajo petición: escribe a support@omev.be. Los trabajos se cobran del saldo habitual de la clave.

Precio​

QuéPrecio
Un trabajo de investigación, con los nueve productos incluidos$0.99

El precio se cobra una vez, cuando jobs/create acepta el trabajo. Un trabajo que termina en NO_DATA (no hay suficiente debate público relevante) es gratuito; un trabajo COMPLETED_PARTIAL se cobra completo. Repetir jobs/create con el mismo idempotency_key devuelve el mismo trabajo y no se vuelve a cobrar. estimate, jobs/get, jobs/result y jobs/cancel son gratuitos.

Comprueba la petición primero​

estimate valida el cuerpo, muestra el alcance normalizado y el precio, y no inicia ningún trabajo. Acepta el mismo cuerpo que jobs/create; aquí idempotency_key es opcional.

curl -sS https://llmapi.omev.be/v1/audience-intelligence/estimate \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"schema_version": "1.2",
"products": ["audience_questions", "buyer_expectations"],
"topic": {"name": "waterproof sneakers for commuting"},
"audience": {"description": "city commuters who walk in the rain"},
"scope": {"platforms": ["youtube", "reddit"], "languages": ["en"], "markets": ["US"]}
}'
{
"request_id": "…",
"supported": true,
"normalized_scope": {
"markets": ["US"], "languages": ["en"],
"from": "2026-03-31T10:00:00Z", "to": "2026-09-27T10:00:00Z",
"platforms": ["reddit", "youtube"]
},
"sample": {"target_accepted_comments": 500, "consent_required": false},
"quote": {
"customer_cost_usd": "0.99000000", "currency": "USD", "tier": "single",
"products": ["audience_content_gaps", "audience_keywords", "audience_questions", "…"],
"valid_until": "2026-09-27T11:00:00Z"
},
"estimated_completion_seconds": {"min": 20, "typical": 240, "max": 1800},
"warnings": []
}

quote.customer_cost_usd es el precio del trabajo. supported: false o una nota en warnings significa que una fuente de datos no está disponible temporalmente: vuelve a intentarlo más tarde.

Iniciar un trabajo de investigación​

curl -sS https://llmapi.omev.be/v1/audience-intelligence/jobs/create \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"schema_version": "1.2",
"idempotency_key": "acme-17-sneakers-2026-09",
"products": ["audience_questions", "buyer_expectations"],
"topic": {"name": "waterproof sneakers for commuting"},
"audience": {"description": "city commuters who walk in the rain"},
"scope": {"platforms": ["youtube", "reddit"], "languages": ["en"], "markets": ["US"]}
}'
CampoRequeridoSignificado
schema_versionsí1.0, 1.1 o 1.2; usa 1.2
idempotency_keysí para jobs/create8–200 caracteres; repetirla devuelve el mismo trabajo en lugar de iniciar uno nuevo
product o productsnoel producto que más te interesa o una lista de productos de la tabla anterior; como máximo uno de los dos campos. El trabajo genera los nueve en cualquier caso
topic.namename o website_urlel tema, 3–300 caracteres
topic.website_urlname o website_urlel sitio de una marca; el nombre de la marca se lee del sitio
topic.descriptionnohasta 2000 caracteres que precisan el tema
topic.include_terms, topic.exclude_termsnohasta 50 términos cada uno para ampliar o acotar lo que se considera relevante
audience.descriptionnoa quién quieres escuchar, 3–2000 caracteres
audience.roles, audience.company_sizenopistas adicionales para audiencias profesionales
scope.platformsnocualquiera de youtube, reddit, linkedin, tiktok, instagram, threads, facebook, twitter, web
scope.languagesnoidiomas de los comentarios, por defecto ["en"], hasta 10
scope.marketsnocódigos de país como ["US"]; vacío significa todo el mundo
scope.periodno{"days": 7…365} (por defecto 180) o {"from": "…Z", "to": "…Z"} en UTC, con 7–365 días de diferencia
entitiesnoproductos o empresas que comparar: {"name": "…", "kind": "product", "aliases": ["…"]}; sin ellos, comparison_intelligence usa las comparaciones encontradas en los comentarios
creator_seedsnocanales o comunidades que leer: {"platform": "youtube", "url": "https://…"}; una comunidad de Reddit es https://www.reddit.com/r/<name>, un solo hilo de Reddit es la URL del hilo con "kind": "publication"
source_modenodiscover (por defecto) encuentra las fuentes por sí mismo; seeds_only lee solo tus creator_seeds
data_modenorefresh_if_needed (por defecto) reutiliza datos recientes del mismo alcance y los completa; fresh recopila de nuevo; corpus_only usa solo los datos ya recopilados para tu cuenta
outputnomax_signals (1–100, por defecto 30), max_evidence_per_signal (1–20, por defecto 5), include_short_quotes e include_markdown (ambos true por defecto)
limitsnomax_creators (por defecto 30, hasta 100), max_publications (por defecto 300, hasta 1000), max_comments (por defecto 15 000, hasta 50 000), deadline_seconds (por defecto 1800, 60–3600)

Valores por defecto importantes:

  • Con solo topic.website_url, el trabajo lee todas las plataformas y también foros y blogs independientes.
  • Con topic.name y sin scope.platforms, el trabajo lee solo YouTube. Indica las plataformas que necesitas.

La respuesta es 202 con el trabajo:

{
"request_id": "…",
"job": {"id": "aij_…", "status": "QUEUED", "stage": "VALIDATE", "progress": 0,
"created_at": "…", "deadline_at": "…", "currency": "USD", "warnings": []},
"idempotent_replay": false,
"poll_after_seconds": 3
}

Seguir el trabajo​

Un trabajo suele tardar unos minutos y se detiene como muy tarde al cumplirse limits.deadline_seconds. Consulta el estado cada 5–10 segundos.

curl -sS https://llmapi.omev.be/v1/audience-intelligence/jobs/get \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{"job_id": "aij_…"}'

job.progress va de 0 a 100; job.coverage_so_far muestra las cantidades recopiladas hasta el momento.

statusSignificado
QUEUED, RUNNINGen espera o en curso
WAITING_PROVIDER, RETRY_WAITesperando a una fuente de datos o reintentando; sigue consultando
COMPLETEDel informe está listo
COMPLETED_PARTIALhay un informe listo, pero la muestra es menor de lo previsto; consulta warnings y product_readiness
NO_DATAno se encontró suficiente debate público relevante; no hay informe
BUDGET_EXHAUSTED, EXPIRED, FAILEDel trabajo terminó sin un informe completo; stop_reason y public_error_code indican el motivo
CANCELLEDcancelaste el trabajo

Para detener un trabajo, envía {"job_id": "aij_…"} a /v1/audience-intelligence/jobs/cancel. La respuesta es 202 mientras el trabajo se detiene, o 200 si ya está cancelado.

Descargar el informe​

curl -sS https://llmapi.omev.be/v1/audience-intelligence/jobs/result \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{"job_id": "aij_…"}'

Antes de que termine el trabajo, la llamada devuelve 409 JOB_NOT_READY. Un trabajo que terminó sin informe (por ejemplo, NO_DATA) devuelve {"job": {…}, "report": null}.

El informe:

CampoContenido
status, productsel estado final y los productos generados
product_resultsun objeto por producto, con el nombre del producto como clave; cada uno contiene una lista items con la forma de ese producto
product_readinesspor producto: sufficient, insufficient_sample o no_evidence, con el motivo
summaryun resumen breve en lenguaje sencillo
research_question, scopequé se estudió: tema, audiencia, periodo, plataformas solicitadas y realmente observadas
methodologyqué opiniones representa la muestra, cómo se seleccionaron las fuentes, limitaciones
coveragecomentarios recopilados, aceptados y excluidos, hilos únicos, plataformas, la mayor proporción de una sola fuente
signalslos hallazgos de base: type (pregunta, problema, expectativa, objeción, comparación, tendencia…), label, strength (anecdotal, emerging, recurring, strong), recuentos y evidence_ids
evidencelos comentarios en los que se basan los hallazgos: plataforma, publicación, texto del comentario, relevancia
contradictions, warningshallazgos que se contradicen y todo lo que limita el informe
rendered_markdownel mismo informe en Markdown, cuando output.include_markdown es true

Los recuentos son hilos de debate únicos, no comentarios sueltos, así que un solo hilo muy ruidoso no puede hacer que un tema parezca grande. Trata los hallazgos anecdotal como indicios, no como hechos.

Los informes están disponibles durante 90 días después de que termine el trabajo; después, la llamada devuelve 410 RESULT_EXPIRED.

Temas de nicho​

Un trabajo busca 500 comentarios aceptados, el máximo. Para un nicho en el que no existen tantos, puedes aceptar una muestra menor de 200–499 comentarios por el mismo precio: establece sample_policy.mode en narrow, sample_policy.target_accepted_comments en el objetivo y añade sample_policy.narrow_topic_consent con el texto de consentimiento registrado, el momento en que se aceptó y la versión de la política. Contacta con support@omev.be para obtener el texto exacto antes de integrarlo en un producto.

Errores​

CódigoCuándo
401clave de API ausente o no válida
403la clave no puede usar este producto
404trabajo desconocido o que pertenece a otra cuenta
409 JOB_NOT_READYse pidió el informe antes de que terminara el trabajo
409 IDEMPOTENCY_CONFLICTel idempotency_key ya se usó con un cuerpo distinto
409 JOB_ALREADY_TERMINALse envió la cancelación de un trabajo que ya había terminado
410 RESULT_EXPIREDel informe tiene más de 90 días
422 INVALID_ARGUMENTfalta un campo o está fuera de rango; el cuerpo indica el campo
429demasiadas peticiones o demasiados trabajos en cola; vuelve a intentarlo tras una breve pausa

Para 409, 410 y 422, el cuerpo incluye el código de servicio mostrado arriba. Los demás estados devuelven el cuerpo de error común; consulta Errores.