Перейти до основного вмісту

Аналітика аудиторії

Вкажіть тему або сайт бренду й отримайте те, що реальні люди говорять про це в публічних коментарях і обговореннях: слова, якими вони користуються, запитання, які вони ставлять, чого вони очікують від продукту, у чому не погоджуються з авторами, чого бракує в наявному контенті та які теми набирають популярності. Кожен висновок підраховано за незалежними гілками обговорень і пов'язано з коментарями, з яких його взято, тож ваша команда або ваша власна модель ШІ може його перевірити.

Одне дослідницьке завдання читає одну вибірку до 500 прийнятих коментарів і перетворює її на всі дев'ять продуктів (різних поглядів на ті самі дані), наведених нижче. Кожне завдання містить усі дев'ять; ви можете вказати той, що для вас найважливіший.

Значення productsЩо ви отримуєте
audience_keywordsфрази, якими користується аудиторія, згруповані за змістом (частота в коментарях, а не пошуковий обсяг)
audience_questionsповторювані запитання з варіантами формулювань, етапом воронки та позначкою, чи автори вже на них відповідають
website_requirementsщо сайт має сказати або показати: функції, інтеграції, ціни, докази, заперечення; кожен пункт позначено як must, should або could
comparison_intelligenceяк аудиторія порівнює названі продукти: критерії, причини переходу, прогалини в довірі
content_brief_from_audienceбриф для контенту: робоча назва, розділи, запитання, на які треба відповісти, заперечення, FAQ, твердження, яких слід уникати
audience_content_gapsпопит, який наявні відповіді покривають погано, із зазначенням матеріалу, який варто створити
creator_vs_audience_gapде коментатори не погоджуються з твердженнями авторів, ставлять їх під сумнів або додають до них умови
buyer_expectationsщо покупці вважають само собою зрозумілим (must_have) і що вирізняє продукт (differentiator)
trend_from_audienceтеми зі статусом rising, stable або declining, нормалізовані на 1 000 релевантних гілок обговорень

Аналітика аудиторії вмикається для ключа на запит: напишіть на support@omev.be. Завдання списуються зі звичайного балансу ключа.

Ціна​

ЩоЦіна
Одне дослідницьке завдання, усі дев'ять продуктів$0.99

Ціна списується один раз, коли jobs/create приймає завдання. Завдання, що завершилося зі статусом NO_DATA (замало релевантних публічних обговорень), безкоштовне; завдання COMPLETED_PARTIAL оплачується повністю. Повторний виклик jobs/create з тим самим idempotency_key повертає те саме завдання й повторно не оплачується. estimate, jobs/get, jobs/result і jobs/cancel безкоштовні.

Спочатку перевірте запит​

estimate перевіряє тіло запиту, показує нормалізований обсяг дослідження та ціну і не запускає жодної роботи. Він приймає те саме тіло, що й jobs/create; idempotency_key тут необов'язковий.

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 — це ціна завдання. supported: false або примітка в warnings означає, що джерело даних тимчасово недоступне: спробуйте пізніше.

Запуск дослідницького завдання​

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"]}
}'
ПолеОбов'язковеЗначення
schema_versionтак1.0, 1.1 або 1.2; використовуйте 1.2
idempotency_keyтак для jobs/create8–200 символів; повторне надсилання повертає те саме завдання замість запуску нового
product або productsніпродукт, який для вас найважливіший, або список продуктів із таблиці вище; не більше одного з двох полів. Завдання в будь-якому разі будує всі дев'ять
topic.namename або website_urlтема, 3–300 символів
topic.website_urlname або website_urlсайт бренду; назву бренду буде зчитано із сайту
topic.descriptionнідо 2 000 символів, що уточнюють тему
topic.include_terms, topic.exclude_termsнідо 50 термінів у кожному, щоб розширити або звузити те, що вважається релевантним
audience.descriptionнікого ви хочете почути, 3–2 000 символів
audience.roles, audience.company_sizeнідодаткові підказки для бізнес-аудиторій
scope.platformsнібудь-які з youtube, reddit, linkedin, tiktok, instagram, threads, facebook, twitter, web
scope.languagesнімови коментарів, за замовчуванням ["en"], до 10
scope.marketsнікоди країн, наприклад ["US"]; порожнє значення означає весь світ
scope.periodні{"days": 7…365} (за замовчуванням 180) або {"from": "…Z", "to": "…Z"} в UTC, з інтервалом 7–365 днів
entitiesніпродукти або компанії для порівняння: {"name": "…", "kind": "product", "aliases": ["…"]}; без них comparison_intelligence використовує порівняння, знайдені в коментарях
creator_seedsніканали або спільноти, які треба прочитати: {"platform": "youtube", "url": "https://…"}; спільнота Reddit — це https://www.reddit.com/r/<name>, окрема гілка Reddit — це URL гілки з "kind": "publication"
source_modeніdiscover (за замовчуванням) знаходить джерела самостійно; seeds_only читає лише ваші creator_seeds
data_modeніrefresh_if_needed (за замовчуванням) повторно використовує свіжі дані для того самого обсягу дослідження й доповнює їх; fresh збирає дані заново; corpus_only використовує лише дані, уже зібрані для вашого облікового запису
outputніmax_signals (1–100, за замовчуванням 30), max_evidence_per_signal (1–20, за замовчуванням 5), include_short_quotes і include_markdown (обидва за замовчуванням true)
limitsніmax_creators (за замовчуванням 30, до 100), max_publications (за замовчуванням 300, до 1 000), max_comments (за замовчуванням 15,000, до 50 000), deadline_seconds (за замовчуванням 1,800, 60–3 600)

Важливі значення за замовчуванням:

  • Якщо задано лише topic.website_url, завдання читає всі платформи, а також незалежні форуми й блоги.
  • Якщо задано topic.name без scope.platforms, завдання читає лише YouTube. Перелічіть потрібні вам платформи.

Відповідь — 202 із завданням:

{
"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
}

Відстеження завдання​

Завдання зазвичай триває кілька хвилин і зупиняється не пізніше, ніж спливе limits.deadline_seconds. Опитуйте статус кожні 5–10 секунд.

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 змінюється від 0 до 100; job.coverage_so_far показує, скільки даних зібрано на цей момент.

statusЗначення
QUEUED, RUNNINGочікування або виконання
WAITING_PROVIDER, RETRY_WAITочікування джерела даних або повторна спроба; продовжуйте опитування
COMPLETEDзвіт готовий
COMPLETED_PARTIALзвіт готовий, але вибірка менша, ніж планувалося; див. warnings і product_readiness
NO_DATAне знайдено достатньо релевантних публічних обговорень; звіту немає
BUDGET_EXHAUSTED, EXPIRED, FAILEDзавдання завершилося без повного звіту; причину пояснюють stop_reason і public_error_code
CANCELLEDви скасували завдання

Щоб зупинити завдання, надішліть {"job_id": "aij_…"} на /v1/audience-intelligence/jobs/cancel. Відповідь — 202, поки завдання зупиняється, або 200, якщо його вже скасовано.

Завантаження звіту​

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_…"}'

До завершення завдання виклик повертає 409 JOB_NOT_READY. Завдання, що завершилося без звіту (наприклад, NO_DATA), повертає {"job": {…}, "report": null}.

Звіт:

ПолеВміст
status, productsфінальний статус і побудовані продукти
product_resultsодин об'єкт на продукт, ключ — назва продукту; кожен містить список items у форматі цього продукту
product_readinessдля кожного продукту: sufficient, insufficient_sample або no_evidence, із поясненням причини
summaryкороткий підсумок простою мовою
research_question, scopeщо досліджувалося: тема, аудиторія, період, запитані та фактично охоплені платформи
methodologyчиї думки представляє вибірка, як відбиралися джерела, обмеження
coverageскільки коментарів зібрано, прийнято й виключено, унікальні гілки обговорень, платформи, найбільша частка одного джерела
signalsбазові висновки: type (запитання, больова точка, очікування, заперечення, порівняння, тренд…), label, strength (anecdotal, emerging, recurring, strong), лічильники та evidence_ids
evidenceкоментарі, на яких ґрунтуються висновки: платформа, публікація, текст коментаря, релевантність
contradictions, warningsвисновки, що суперечать один одному, і все, що обмежує звіт
rendered_markdownтой самий звіт у форматі Markdown, коли output.include_markdown має значення true

Лічильники рахують унікальні гілки обговорень, а не окремі коментарі, тож одна гучна гілка не може штучно роздути тему. Сприймайте висновки anecdotal як підказки, а не як факти.

Звіти доступні протягом 90 днів після завершення завдання; після цього виклик повертає 410 RESULT_EXPIRED.

Вузькі теми​

Завдання розраховане на 500 прийнятих коментарів — це максимум. Для ніші, де стільки коментарів немає, можна погодитися на меншу вибірку з 200–499 коментарів за тією самою ціною: встановіть sample_policy.mode у значення narrow, sample_policy.target_accepted_comments — у цільову кількість, і додайте sample_policy.narrow_topic_consent із зареєстрованим текстом згоди, часом її прийняття та версією політики. Перш ніж вбудовувати це у свій продукт, зверніться на support@omev.be за точним формулюванням.

Помилки​

КодКоли
401ключ API відсутній або недійсний
403ключ не може використовувати цей продукт
404невідоме завдання або завдання, що належить іншому обліковому запису
409 JOB_NOT_READYзвіт запитано до завершення завдання
409 IDEMPOTENCY_CONFLICTidempotency_key уже використано з іншим тілом запиту
409 JOB_ALREADY_TERMINALскасування надіслано для завдання, яке вже завершилося
410 RESULT_EXPIREDзвіт старший за 90 днів
422 INVALID_ARGUMENTполе відсутнє або виходить за допустимі межі; тіло відповіді називає це поле
429забагато запитів або забагато завдань у черзі; повторіть спробу після короткої паузи

Для 409, 410 і 422 тіло відповіді містить наведений вище код сервісу. Інші статуси повертають загальне тіло помилки, див. Помилки.