Was ein Monitor ist
Ein Monitor ist ein benanntes Prompt-Set in einem Markt: eine Liste von Prompts, die Engines, an die sie gehen, die Aliase für „Ihre Marke“, optional Ihre Domains und einige Wettbewerber, ein Land und ein Intervall. Jeder geplante Lauf reicht Prompts × Engines gewöhnliche asynchrone Tasks ein, und jede fertige Antwort wird einmal bewertet und aufbewahrt. Die Bewertung ist bewusst eng gefasst, und die Daten können nicht mehr beantworten, als sie speichern:- Sie hält fest, ob ein Marken-Alias im Antworttext vorkommt und an welchem Zeichen-Offset, ob die Antwort eine Ihrer registrierten Domains zitiert hat und welche Ihrer konfigurierten Wettbewerber in derselben Antwort vorkamen.
- Sie erzeugt keinen Sentiment-Wert und keine geschätzte Marktanteilszahl. Ein Rang ist ein Platz unter den Marken, die die Antworten nennen, wie im Ranking eines Kategorie-Monitors (siehe unten).
Wettbewerber werden für Sie gefunden
Sie müssen keine Wettbewerber eintragen. Sobald der erste Lauf eines Monitors vorliegt, lesen wir seine letzten Antworten mit einem Sprachmodell und behalten die Marken, die dasselbe verkaufen wie Sie und in mindestens zwei Antworten genannt werden, höchstens 15. Das wiederholt sich alle 30 Tage, sodass neue Konkurrenten hinzukommen und nicht mehr genannte wegfallen.- Gefundene Wettbewerber tragen
source: "auto". Selbst hinzugefügte tragensource: "user"und werden beim Lesen nie geändert oder entfernt. - Ändert sich die gefundene Liste, werden die gespeicherten Antworten des Monitors neu dagegen gezählt, damit jede Marke
eines Berichts über dieselben Antworten gemessen wird.
competitorsReadAtam Monitor zeigt den letzten Lauf. - Namen in lateinischer Schrift werden als ganze Wörter erkannt, „replicates“ ist also keine Nennung der Marke Replicate.
Monitor-Sets bewusst aufteilen
Verschiedene Monitore stehen für verschiedene Themen oder Märkte und sind getrennte Berichte: Jeder hat sein eigenes Fenster, seine eigene Bewertungsdefinition und seinen eigenen Zeitplan. Zwei Gewohnheiten zahlen sich aus:- Ein Monitor pro Thema und Markt, damit die Kohorte eines Berichts vergleichbar bleibt. Wer „bestes CRM“ und „wie bepreist man ein CRM“ in ein Prompt-Set mischt, mittelt zwei verschiedene Absichten zu einer Zahl.
- Formulieren Sie Prompts wie ein Käufer und nehmen Sie nie Ihre eigene Marke auf. Ein Prompt mit der Marke ist immer eine Nennung, meldet also für immer 100 % und misst nichts. Wettbewerbernamen sind in Ordnung und oft die nützlichsten Prompts, die Sie schreiben können.
Kategorie-Monitore: die Marken eines Marktes ranken
Ein Marken-Monitor verfolgt eine Marke. Ein Kategorie-Monitor verfolgt einen Markt: Sie benennen die Kategorie, gruppieren ihre Fragen nach Teilbereichen, und der Bericht rankt die Marken, die die Engines in ihren Antworten nennen. Setzen Sie beim Anlegen des Monitors"mode": "CATEGORY". mode ist standardmäßig BRAND und bleibt über die gesamte
Lebensdauer des Monitors fest, weil es bestimmt, was jede gespeicherte Zeile bedeutet.
Zeitplan, Kosten, Fenster, Filter,
quality, Quellen, Zitationen, Ergebnisse und Antworten funktionieren wie bei einem
Marken-Monitor. Ein Kategorie-Monitor hat keinen Alarm, daher liefert POST /v1/monitors/{id}/alerts/test 400.
Was der Bericht rankt
GET /v1/monitors/{id}/analytics liefert die Kategorie-Ansicht. stats und previous enthalten runs, named
(Antworten, die mindestens eine verfolgte Marke nennen) und namedRate; changes.namedRatePp ist die Änderung in
Punkten, und das Objekt category enthält das Ranking:
rankordnet Marken nach der Zahl der Antworten, die sie nennen: Er ist ein Platz unter den Marken, die diese Antworten nennen. Eine Marke, die keine Antwort genannt hat, hatrank: null.- Die
mentionRateeiner Marke teilt durch ihre eigenesampleSize, die Antworten, die bewertet wurden, während die Marke auf der Liste stand. Eine Marke, die Sie heute hinzufügen, wird ab heute gemessen. shareOfVoiceist100 × Nennungen dieser Marke / alle Nennungen verfolgter Markenim Fenster, die Anteile eines Fensters summieren sich also auf 100.GET /v1/monitorsergänzt bei jedem Kategorie-Monitorleader(die am häufigsten genannte Marke mit ihrer Rate). Seine Zählermentionedundcitedsind immer0.GET /v1/monitors/{id}/answers/{taskId}liefertmode, ein leeresaliasesund die verfolgten Marken alscompetitors.
Prompts aus der Suchnachfrage recherchieren
POST /v1/monitors/research nimmt den Request-Body von Prompt Research, kostet dieselben
12 Credits und liefert dasselbe Ergebnis, eingereicht für Ihr Konto. Lesen Sie den eingereihten Task mit
GET /v1/async/task/{id}; die ID steht in data.task.id der Antwort.
monitorSet.prompts als prompts, das topic jedes Prompts als seinen Teilbereich in promptTopics und
brands[].brand als competitors. Die Schaltfläche Recherche starten im Dashboard tut dasselbe und füllt das
Formular; gespeichert wird erst, wenn Sie den Monitor anlegen.
Kosten und Zeitplan
Ein Lauf reiht pro Prompt und Engine einen Task zum veröffentlichten Credit-Preis der jeweiligen Engine ein. Der Zeitplan wiederholt sich, bis Sie den Monitor pausieren oder löschen. Beim Anlegen wählen Sie also laufende Kosten:- Ein Lauf ist kein Burst. Tasks werden zugelassen, soweit Tarif-Parallelität und Warteschlange es erlauben. Ein
Lauf über dem Limit eines Gratis-Tarifs trifft daher über mehrere Minuten ein, statt verworfen zu werden. Beobachten
Sie
health.pendingin einem Bericht, um einen laufenden Durchgang zu sehen. - Das nächste Fenster ist ein Zeitpunkt, keine Garantie.
nextRunAtist der Fälligkeitszeitpunkt. Ein eine Woche lang pausierter Monitor läuft ein Intervall nach der Reaktivierung weiter, statt die verpassten Läufe nachzuholen.
Endpunkte
Alle verwenden denselben Bearer-Schlüssel wie der Rest der API (siehe Authentifizierung). Ein
Monitor eines anderen Kontos antwortet mit
404, nicht 403.
Einen Monitor anlegen
name, engines, prompts, aliases und intervalHours sind bei einem Marken-Monitor Pflicht; ein Kategorie-Monitor nimmt statt aliases das Feld category. Jede Liste akzeptiert ein Array oder einen
durch Zeilenumbrüche getrennten String; Einträge werden getrimmt, Leerzeilen verworfen und Duplikate entfernt.
country wählt den Markt, für den die Engines antworten, und übersetzt die Prompts nicht. prompts × engines muss
höchstens dem tasksPerRun-Limit aus capabilities entsprechen.
Engines sind die planbaren Prompt-Oberflächen: CHATGPT, GEMINI, PERPLEXITY, GOOGLE, AIMODE,
NAVER_AI_BRIEF, NAVER_AI_TAB und der veraltete Alias NAVER. GOOGLE_AIO und GOOGLE_AIMODE werden akzeptiert und
als GOOGLE und AIMODE gespeichert. Analyse-Tasks wie SOURCE_INFLUENCE sind keine Prompt-Oberflächen und können
nicht in einem Monitor geplant werden.
Ein auf bestimmte Engines beschränkter Schlüssel kann nur diese Engines planen; alles andere ist
403 KEY_SCOPE_DENIED. Das Monitor-Limit des Kontos liefert 409 MONITOR_LIMIT.
Ausführen, dann den Bericht lesen
POST /v1/monitors/{id}/run macht den nächsten Lauf sofort fällig, und die Antwort-Tasks erscheinen innerhalb etwa
einer Minute. Er wird wie ein geplanter Lauf abgerechnet, und ein erneuter Aufruf, solange dieses Fenster noch fällig
ist, wird nicht doppelt berechnet.
GET /v1/monitors/{id}/analytics ist der Vertrag, aus dem jeder Teil Ihres Berichts stammen sollte. Sein Fenster ist
halboffen und in UTC (since inklusive, until exklusive), und Sie wählen es auf eine von zwei Arten:
Zwei optionale Filter gelten gleichzeitig für alle Abschnitte:
engine (kanonische id oder öffentlicher Alias)
und prompt (exakter Text, bis 2.000 Zeichen). Zeilen sind nach Prompt-Text indiziert, sodass ein später aus dem
Monitor entfernter Prompt abfragbar bleibt.
Alle Abschnitte teilen diese eine Kohorte, und das vorherige Intervall hat exakt dieselbe Dauer und dieselben Filter.
Der Vergleich erfolgt also unter gleichen Bedingungen:
Was die Zahlen bedeuten
Lesen Sie dies, bevor Sie ein Dashboard-Panel beschriften. Die Definitionen sind der veröffentlichte Vertrag, undGET /v1/monitors/capabilities liefert sie als metrics, damit ein Client sie neben den Zahlen anzeigen kann.
mentionRatefür das Fenster, seine Engine-Gruppen und seine Zell-Gruppen ist100 × Antworten mit Nennung / bewertete Antworten. Sie ist nach Antworten gewichtet, kein Mittelwert der Engine-Quoten, sodass eine vielgenutzte Engine nicht von einer wenig genutzten überstimmt wird. (Die eigene Quote einer Marke hat einen eigenen Nenner, siehe nächster Punkt.)citationRatehat dieselbe Form für Antworten, die eine Ihrer registrierten Domains zitiert haben. Ohne registrierte Domains ist sie immer null, weil die Quellenverfolgung aus ist.- Die Quote einer Marke teilt durch ihre eigene
sampleSize, nicht durch die Fenstersumme. Für Ihre Marke sind das alle bewerteten Antworten; für einen Wettbewerber nur die Antworten, die bewertet wurden, während er im Monitor war. Fügen Sie heute einen Wettbewerber hinzu, deckt sein erster Bericht die Antworten ab, die ihn gemessen haben: Die Zeit vor seiner Aufnahme zählt nicht gegen ihn. Eine Marke ohne passende Antworten meldetmentionRate: null, nicht 0 %, weil 0 % wie ein echtes Verschwinden wirken würde. shareOfVoiceinbrandsist100 × Nennungen dieser Marke / alle Nennungen beobachteter Markenim Fenster, die Anteile eines Fensters ergeben also zusammen 100. Es vergleicht Marken innerhalb der Antworten, die Sie für diese Prompts gesammelt haben; es ist weder Marktanteil noch Sichtbarkeitsranking. DasshareOfVoicedes veralteten Detail-Endpunkts ist die ältere Sicht der Antwortdurchdringung, bei der jede Marke gegen die gesammelten Antworten gezählt wird und die Summe über 100 liegen kann. Mischen Sie beides nicht in einem Diagramm.competitorOnly(und die Listeopportunities) zählt Antworten, die einen konfigurierten Wettbewerber nannten, während Ihre Marke fehlte. Das ist die Lücke, an der Sie ansetzen können.- Quoten sind nullbar, nicht null. Keine Antworten im Fenster ergibt
null; eine Quote von null bedeutet, dass es Antworten gab und keine passte. - Eine abgeschlossene Beobachtung ohne Antwort zählt als nicht genannt. Sie bleibt im Nenner, und
quality.noAnswerObservationsgibt an, wie viele es waren. Ein fehlgeschlagener Task wird aus allen Quoten ausgeschlossen und erscheint nur inhealth. Eine defekte Engine verkleinert die Stichprobe, statt stillschweigend zu einer Abwesenheit zu werden, undqualityrekonstruiert sie nie als solche (historicalFailuresist immernull). - Veränderungen werden zurückgehalten, wenn sie irreführen würden.
changesund dasmentionRateChangePppro Zelle sindnull, undquality.comparableistfalse, wenn eine Periode keine Antworten hat (insufficient_periods), wenn Zeilen bewertet wurden, bevor es einen Bewertungskontext gab (legacy_scoring_unknown), oder wenn sich die Bewertungsdefinition zwischen den Perioden geändert hat (scoring_definitions_changed). Historische Zeilen behalten die Definitionen, mit denen sie bewertet wurden (quality.scoring). Änderungen an Aliasen oder Wettbewerbern schreiben die Vergangenheit also nie um. Einzige Ausnahme ist das oben beschriebene monatliche Lesen der Wettbewerber. - Die Stichprobengröße wird veröffentlicht.
quality.lowSampleist unter 30 bewerteten Antworten true,quality.missingCellszählt konfigurierte Prompt × Engine-Zellen ohne bisherige Antworten, undquality.partialDaysnennt die UTC-Tage, die das Fenster halbiert. Der niedrigere Zählwert eines Teiltags ist Arithmetik, kein Rückgang.
position in einer bewerteten Zeile ist der Zeichen-Offset des frühesten Alias-Treffers im Antworttext: ein
Näherungswert für Prominenz, kein Ranking. Er ist null, wenn die Marke fehlte, weshalb 0 nie „fehlt“ bedeuten muss.
Woher die Antworten kommen
GET /v1/monitors/{id}/sources beantwortet die Frage „Welche Seiten gewinnen diese Prompts?“ mit demselben Fenster und
denselben Filtern wie der Bericht und zählt verschiedene Antworten statt roher Quellenangaben. Eine Seite, die in
einer Antwort dreimal zitiert wird, zählt also einmal.
Jede Zeile enthält
citations und prompts (beides Zählungen verschiedener Antworten), own für Ihre registrierten
Domains und eine evidenceTaskId, die Sie mit dem Antwort-Endpunkt öffnen können. Hier gibt es keine stille
Top-N-Kürzung: Jede Domain oder Seite im Fenster ist über den Cursor erreichbar.
Zitationen im Zeitverlauf
GET /v1/monitors/{id}/citations liefert die Daten hinter den Zitationsdiagrammen im
Dashboard: die täglichen Zitationssummen des Zeitfensters und eine tägliche Reihe für jede
führende Domain und Seite. Es liest nur gespeicherte Ergebnisse und verbraucht daher keine Credits.
Eine Zitation ist hier eine Seite, die in einer Antwort vorkommt; dieselbe Seite zweimal in
einer Antwort zählt einmal.
/sources zählt stattdessen unterschiedliche Antworten, daher
können die Zahlen abweichen.
Der Anteil einer Quelle ist ihr
citations geteilt durch totals.citations. kind, q
und offset schränken nur die Listen ein; totals, days und types umfassen immer alle
Quellen im Fenster.
Die bewerteten Zeilen exportieren
GET /v1/monitors/{id}/results liefert die Zeilen selbst, für einen Data-Warehouse-Import, eine Wochenpräsentation
oder eine Tabelle.
Die Paginierung ist ein Keyset über
(ranAt, id) mit Mikrosekundengenauigkeit, sodass Zeilen mit gleichem Zeitstempel
weder übersprungen noch wiederholt werden können. Um die Extraktion reproduzierbar zu machen: Senden Sie explizite
Werte für since und until, halten Sie sie fest und folgen Sie nextCursor, bis er null ist. Wird das Fenster
zwischen den Seiten geändert, können Zeilen übersprungen oder wiederholt werden. Behandeln Sie den Cursor als
undurchsichtig: Er wird zurückgegeben und weitergereicht, nie selbst gebaut.
Mit format=csv ist die Antwort text/csv (UTF-8 mit BOM, damit Excel sie korrekt öffnet), und der
Paginierungsstatus wandert in die Header, weil ein CSV-Body keinen anderen Platz dafür hat:
Die Spalten sind
ran_at, monitor, engine, prompt, mentioned, cited, position, competitors, task_id, dazu
answer_text, sources, scoring_context bei includeEvidence=true (sources und scoring_context als JSON-Text in
ihren Zellen). Zellen, die als Tabellenformel gelesen werden könnten, werden vor dem Schreiben entschärft, sodass
fremder Text in Ihrer Tabelle nicht zur Formel wird.
Die Antwort hinter einer Zahl lesen
GET /v1/monitors/{id}/answers/{taskId} liefert den aufbewahrten Beleg für eine Zeile:
answerText: die Antwort, wie die Engine sie gegeben hat, wenn möglich als Markdown, höchstens 8.000 Zeichen, bei größerer Länge mit Auslassungszeichen gekürzt.sources: die Quellenangaben in der Reihenfolge der Engine, jeweils mit Label und 1-basierter Position in dieser Liste.aliasesundcompetitors: womit diese Zeile abgeglichen wurde, damit die Nennung geprüft statt einfach geglaubt werden kann.scoringContext: die exakt verwendete Definition, mitversion-Hash, Bewertungszeit,answerPresentundevidenceTruncated, wenn der Text oben gekürzt wurde.
scoringKnown: false mit den
aktuellen Aliasen des Monitors und einem evidenceTruncated von null. answerText ist null, wenn die Engine keinen
Antworttext geliefert hat.
Fehler auf dieser Oberfläche
Der Umschlag ist derselbe wie überall (siehe Fehler); die für das Monitoring spezifischen Codes sind:Ein Agent im Ablauf
Eine praktische Abfolge für einen Agenten oder ein Skript, nur mit den Endpunkten dieser Seite. Sie dient zur Veranschaulichung: Setzen Sie Ihren eigenen Schlüssel, Ihre Monitor-id und Ihr Fenster ein.GET /v1/monitors/capabilities: Engines, Preise und Limits lesen, bevor etwas ausgegeben wird.GET /v1/monitors: einen vorhandenen Monitor für Thema und Markt wiederverwenden oder mitPOST /v1/monitorseinen anlegen (optional zuerstPOST /v1/monitors/suggestaufrufen und die Vorschläge bearbeiten).POST /v1/monitors/{id}/run: falls Sie Antworten vor dem nächsten geplanten Fenster brauchen.GET /v1/monitors/{id}/analytics?days=30&engine=CHATGPT: zuerstqualitylesen (comparable,lowSample,missingCells,partialDays), dann die Zahlen. Pollen, bishealth.pendingsich beruhigt undquality.sampleSizenicht mehr wächst.GET /v1/monitors/{id}/sources?days=30&groupBy=page: mitnextCursorblättern, um die Seiten zu finden, die die Prompts gewinnen.GET /v1/monitors/{id}/answers/{taskId}: die Antwort hinter dem obersten Eintrag inopportunitiesöffnen, bevor etwas entschieden wird.GET /v1/monitors/{id}/results?since=...&until=...&includeEvidence=true&format=csv: dasselbe Fenster exportieren undx-next-cursorfolgen, bis er leer ist.
get_monitor_capabilities, list_monitors,
get_monitor, create_monitor, update_monitor, delete_monitor, run_monitor, get_monitor_analytics,
get_monitor_sources, get_monitor_results, get_monitor_answer, suggest_monitor_prompts, get_monitor_alerts,
test_monitor_alert). Schreibvorgänge sind als Mutationen gekennzeichnet, und create_monitor und run_monitor geben
vor dem Aufruf an, dass sie Credits verbrauchen.
Limits
Sehen Sie sich die Preise und die Engine-Referenz an, bevor Sie das Volumen erhöhen.