Przejdź do głównej zawartości

Analiza odbiorców

Podaj temat lub stronę internetową marki, a otrzymasz to, co prawdziwi ludzie mówią o nich w publicznych komentarzach i dyskusjach: słowa, których używają, pytania, które zadają, czego oczekują od produktu, w czym nie zgadzają się z twórcami, czego brakuje w istniejących treściach i które tematy zyskują na popularności. Każdy wniosek jest liczony w niezależnych wątkach i powiązany z komentarzami, z których pochodzi, dzięki czemu Twój zespół lub Twój własny model AI może go sprawdzić.

Jedno zadanie badawcze czyta jedną próbę do 500 zaakceptowanych komentarzy i przekształca ją we wszystkie dziewięć poniższych produktów (różnych widoków tych samych danych). Każde zadanie zawiera wszystkie dziewięć; możesz wskazać ten, na którym zależy Ci najbardziej.

Wartość productsCo otrzymujesz
audience_keywordsfrazy używane przez odbiorców, pogrupowane według znaczenia (częstotliwość w komentarzach, a nie wolumen wyszukiwań)
audience_questionspowtarzające się pytania z wariantami, etapem lejka i informacją, czy twórcy już na nie odpowiadają
website_requirementsco strona internetowa musi powiedzieć lub pokazać: funkcje, integracje, ceny, dowody, zastrzeżenia; każdy punkt oznaczony jako must, should lub could
comparison_intelligencejak odbiorcy porównują wymienione produkty: kryteria, powody zmiany, luki w zaufaniu
content_brief_from_audiencebrief treści: roboczy tytuł, sekcje, pytania, na które trzeba odpowiedzieć, zastrzeżenia, FAQ, twierdzenia, których należy unikać
audience_content_gapszapotrzebowanie, które istniejące odpowiedzi pokrywają słabo, wraz z materiałem, który warto stworzyć
creator_vs_audience_gapgdzie komentujący nie zgadzają się z twierdzeniami twórców, podważają je lub dodają do nich warunki
buyer_expectationsco kupujący uważają za oczywiste (must_have) i co wyróżnia produkt (differentiator)
trend_from_audiencetematy rising, stable lub declining, znormalizowane na 1 000 istotnych wątków

Analiza odbiorców jest włączana dla klucza na życzenie: napisz na support@omev.be. Zadania są rozliczane ze zwykłego salda klucza.

Cena​

CoCena
Jedno zadanie badawcze, wszystkie dziewięć produktów w cenie$0.99

Cena jest pobierana raz, gdy jobs/create przyjmie zadanie. Zadanie zakończone stanem NO_DATA (za mało istotnych publicznych dyskusji) jest bezpłatne; zadanie COMPLETED_PARTIAL jest rozliczane w całości. Powtórzenie jobs/create z tym samym idempotency_key zwraca to samo zadanie i nie jest ponownie płatne. estimate, jobs/get, jobs/result i jobs/cancel są bezpłatne.

Najpierw sprawdź zapytanie​

estimate weryfikuje treść żądania, pokazuje znormalizowany zakres i cenę, nie uruchamiając żadnej pracy. Przyjmuje tę samą treść co jobs/create; idempotency_key jest tu opcjonalny.

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 to cena zadania. supported: false lub uwaga w warnings oznacza, że źródło danych jest chwilowo niedostępne: spróbuj ponownie później.

Uruchomienie zadania badawczego​

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"]}
}'
PoleWymaganeZnaczenie
schema_versiontak1.0, 1.1 lub 1.2; używaj 1.2
idempotency_keytak dla jobs/create8–200 znaków; ponowne użycie zwraca to samo zadanie zamiast uruchamiać nowe
product lub productsnieprodukt, na którym zależy Ci najbardziej, lub lista produktów z tabeli powyżej; najwyżej jedno z tych dwóch pól. Zadanie i tak tworzy wszystkie dziewięć
topic.namename lub website_urltemat, 3–300 znaków
topic.website_urlname lub website_urlstrona marki; nazwa marki jest odczytywana ze strony
topic.descriptionniedo 2 000 znaków doprecyzowujących temat
topic.include_terms, topic.exclude_termsniedo 50 terminów w każdym, aby poszerzyć lub zawęzić to, co uznaje się za istotne
audience.descriptionniekogo chcesz usłyszeć, 3–2 000 znaków
audience.roles, audience.company_sizeniedodatkowe wskazówki dla odbiorców biznesowych
scope.platformsniedowolne z youtube, reddit, linkedin, tiktok, instagram, threads, facebook, twitter, web
scope.languagesniejęzyki komentarzy, domyślnie ["en"], do 10
scope.marketsniekody krajów, np. ["US"]; pusta wartość oznacza cały świat
scope.periodnie{"days": 7…365} (domyślnie 180) lub {"from": "…Z", "to": "…Z"} w UTC, w odstępie 7–365 dni
entitiesnieprodukty lub firmy do porównania: {"name": "…", "kind": "product", "aliases": ["…"]}; bez nich comparison_intelligence korzysta z porównań znalezionych w komentarzach
creator_seedsniekanały lub społeczności do przeczytania: {"platform": "youtube", "url": "https://…"}; społeczność Reddit to https://www.reddit.com/r/<name>, pojedynczy wątek Reddit to URL wątku z "kind": "publication"
source_modeniediscover (domyślnie) samodzielnie znajduje źródła; seeds_only czyta tylko Twoje creator_seeds
data_modenierefresh_if_needed (domyślnie) ponownie wykorzystuje świeże dane dla tego samego zakresu i je uzupełnia; fresh zbiera dane od nowa; corpus_only używa wyłącznie danych już zebranych dla Twojego konta
outputniemax_signals (1–100, domyślnie 30), max_evidence_per_signal (1–20, domyślnie 5), include_short_quotes i include_markdown (oba domyślnie true)
limitsniemax_creators (domyślnie 30, do 100), max_publications (domyślnie 300, do 1 000), max_comments (domyślnie 15 000, do 50 000), deadline_seconds (domyślnie 1 800, 60–3 600)

Ważne wartości domyślne:

  • Jeśli podasz tylko topic.website_url, zadanie czyta wszystkie platformy, a także niezależne fora i blogi.
  • Jeśli podasz topic.name bez scope.platforms, zadanie czyta tylko YouTube. Wymień platformy, których potrzebujesz.

Odpowiedzią jest 202 z zadaniem:

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

Śledzenie zadania​

Zadanie trwa zwykle kilka minut i kończy się najpóźniej po upływie limits.deadline_seconds. Sprawdzaj status co 5–10 sekund.

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 rośnie od 0 do 100; job.coverage_so_far pokazuje, ile danych zebrano do tej pory.

statusZnaczenie
QUEUED, RUNNINGoczekuje lub trwa
WAITING_PROVIDER, RETRY_WAITczeka na źródło danych lub ponawia próbę; sprawdzaj dalej
COMPLETEDraport jest gotowy
COMPLETED_PARTIALraport jest gotowy, ale próba jest mniejsza niż planowano; zobacz warnings i product_readiness
NO_DATAnie znaleziono wystarczająco dużo istotnych publicznych dyskusji; raportu nie ma
BUDGET_EXHAUSTED, EXPIRED, FAILEDzadanie zakończyło się bez pełnego raportu; stop_reason i public_error_code podają przyczynę
CANCELLEDzadanie zostało anulowane przez Ciebie

Aby zatrzymać zadanie, wyślij {"job_id": "aij_…"} na /v1/audience-intelligence/jobs/cancel. Odpowiedzią jest 202, gdy zadanie się zatrzymuje, lub 200, jeśli jest już anulowane.

Pobranie raportu​

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

Przed zakończeniem zadania wywołanie zwraca 409 JOB_NOT_READY. Zadanie, które zakończyło się bez raportu (na przykład NO_DATA), zwraca {"job": {…}, "report": null}.

Raport:

PoleZawartość
status, productsstatus końcowy i utworzone produkty
product_resultsjeden obiekt na produkt, z nazwą produktu jako kluczem; każdy zawiera listę items w formacie danego produktu
product_readinessdla każdego produktu: sufficient, insufficient_sample lub no_evidence, wraz z przyczyną
summarykrótkie podsumowanie prostym językiem
research_question, scopeco zbadano: temat, odbiorców, okres, platformy zamówione i faktycznie objęte
methodologyczyje opinie reprezentuje próba, jak wybierano źródła, ograniczenia
coveragekomentarze zebrane, zaakceptowane i wykluczone, unikalne wątki, platformy, największy udział jednego źródła
signalswnioski źródłowe: type (pytanie, problem, oczekiwanie, zastrzeżenie, porównanie, trend…), label, strength (anecdotal, emerging, recurring, strong), liczniki i evidence_ids
evidencekomentarze stojące za wnioskami: platforma, publikacja, treść komentarza, trafność
contradictions, warningssprzeczne wnioski i wszystko, co ogranicza raport
rendered_markdownten sam raport w formacie Markdown, gdy output.include_markdown ma wartość true

Liczone są unikalne wątki dyskusji, a nie pojedyncze komentarze, więc jeden głośny wątek nie sprawi, że temat będzie wyglądał na duży. Traktuj wnioski anecdotal jako wskazówki, a nie fakty.

Raporty są dostępne przez 90 dni od zakończenia zadania; potem wywołanie zwraca 410 RESULT_EXPIRED.

Wąskie tematy​

Zadanie celuje w 500 zaakceptowanych komentarzy, czyli maksimum. W niszy, w której tylu nie ma, możesz zaakceptować mniejszą próbę 200–499 komentarzy w tej samej cenie: ustaw sample_policy.mode na narrow, sample_policy.target_accepted_comments na docelową liczbę i dodaj sample_policy.narrow_topic_consent z zarejestrowaną treścią zgody, czasem jej akceptacji i wersją zasad. Zanim wbudujesz to w produkt, skontaktuj się z support@omev.be, aby otrzymać dokładne brzmienie.

Błędy​

KodKiedy
401brak klucza API lub klucz nieprawidłowy
403klucz nie może używać tego produktu
404nieznane zadanie lub zadanie należące do innego konta
409 JOB_NOT_READYraport zamówiono przed zakończeniem zadania
409 IDEMPOTENCY_CONFLICTidempotency_key został już użyty z inną treścią żądania
409 JOB_ALREADY_TERMINALanulowanie wysłano dla zadania, które już się zakończyło
410 RESULT_EXPIREDraport jest starszy niż 90 dni
422 INVALID_ARGUMENTbrakuje pola lub jest ono poza zakresem; treść odpowiedzi wskazuje pole
429zbyt wiele żądań lub zbyt wiele zadań w kolejce; spróbuj ponownie po krótkiej przerwie

Dla 409, 410 i 422 treść odpowiedzi zawiera kod usługi pokazany powyżej. Pozostałe statusy zwracają wspólną treść błędu, zobacz Błędy.