Zum Hauptinhalt springen
Vergleichen Sie eine abgeschlossene KI-Antwort mit den Seiten dahinter. Das Ergebnis zeigt die Suchen, die die Engine ausgeführt hat, die abgerufenen und die zitierten Seiten, die in der Antwort genannten Marken und die Seiten, die sie nennen, die Position Ihrer Marke sowie priorisierte Maßnahmen. Außerdem ordnet es die Absätze jeder zitierten Seite den Teilen der Antwort zu, denen sie entsprechen, mit einer Erklärung für jede Verknüpfung, und fasst zusammen, was die zitierten Seiten gemeinsam haben. Es handelt sich um eine nachträgliche Entsprechungsanalyse einer vorhandenen Antwort. Sie beweist nicht, dass eine Quelle das Modell zu einem Satz veranlasst hat, und bewertet nicht die Qualität einer Seite. Behandeln Sie sie als Beleg zur Prüfung, nicht als Urteil.
Pollen Sie GET /v1/async/task/:id oder geben Sie beim Einreichen webhook.url an; der Task meldet taskType: "CITATION_ANALYSIS". Reichen Sie diese Analyse nicht über POST /v1/async/task ein, sondern nutzen Sie den eigenen Endpunkt. Die alten Endpunkte POST /v1/geo-audit, POST /v1/source-influence und POST /v1/research, die Task-Typen GEO_AUDIT, SOURCE_INFLUENCE und CITATION_ATTRIBUTION sowie include.geoAudit, include.sourceInfluence funktionieren weiter; Antworten verwenden immer die neuen Namen.

Einen bereits ausgeführten Task analysieren

Stammt die Antwort aus dieser API, senden Sie ihre Task-id, statt Antwort und Quellen aus dem Ergebnis zu kopieren:
Der Task muss Ihnen gehören, COMPLETED sein und über GET /v1/async/task/:id noch lesbar sein. Sein Antwort-Markdown (Text, wenn die Engine kein Markdown geliefert hat) wird zu answer, und seine zitierten URLs werden in der Reihenfolge der Engine zu citations: die ersten 100, davon höchstens 10 Diskussionsthreads. Platzhalter für Produkt- und Videokarten (googleusercontent.com-Links) und Google-Suchlinks werden übersprungen, da sie keine lesbare Seite haben. prompt, country und Engine des Tasks werden verwendet, sofern Sie sie nicht mitsenden. taskId zusammen mit answer oder citations zu senden wird mit 400 abgelehnt, ebenso ein unfertiger Task oder einer ohne Antworttext oder zitierte URL. Eine unbekannte oder abgelaufene Task-id liefert 404.

Jede Antwort schon beim Erfassen analysieren

Fügen Sie einer Erfassungsanfrage include.citationAnalysis: true hinzu, und die Analyse läuft auf der Antwort, sobald sie erfasst ist. Das funktioniert mit den Antwort-Engines (CHATGPT, GEMINI, PERPLEXITY, GOOGLE_AIO, GOOGLE_AIMODE, NAVER_AI_BRIEF, NAVER_AI_TAB, BING_SEARCH, BING_COPILOT), in einzelnen Tasks, Task-Batches, Rastern und POST /v1/batches.
Die Analyse liest die Antwort und ihre zitierten URLs genauso wie taskId oben. Das Ergebnis der Antwort enthält dann response.citationAnalysis: den Analyse-Task genau so, wie GET /v1/async/task/:id ihn zurückgibt, mit task, credits und response oder error.
  • Webhook: wird einmal gesendet, nachdem die Analyse fertig ist, mit Antwort und Analyse zusammen.
  • Polling: Der Antwort-Task ist COMPLETED, sobald die Antwort bereitsteht. Fragen Sie weiter ab, bis response.citationAnalysis.task.status COMPLETED oder FAILED ist.
  • Batches sind abgeschlossen, wenn alle Antworten und ihre Analysen fertig sind.
  • Keine Analyse: Zitiert die Antwort keine lesbare URL, oder decken Ihre Credits oder das Tageslimit des Schlüssels die Reservierung der Analyse nicht, ist response.citationAnalysis gleich { "error": "…" } und die Antwort wird sofort zugestellt.
  • Abrechnung: Die Analyse wird separat nach Verbrauch berechnet, wie jeder Citation-Analysis-Task. Die Abrechnung der Antwort ändert sich nicht. Ein Schlüssel, der auf bestimmte Task-Typen beschränkt ist, muss auch CITATION_ANALYSIS erlauben.

Payload

Mit taskId oder include.citationAnalysis werden diese Felder aus den Rohdaten der Antwort befüllt. Bei CHATGPT werden die Suchen der Engine zu queries, und jede abgerufene Seite wird zu einer Quelle mit cited, position, citedText, publishedAt und query; dieselbe URL mit unterschiedlichen Tracking-Parametern wird zusammengeführt. Bei Google AI Overview sind die Quellen der Übersicht zitiert und organische Ergebnisse außerhalb davon nicht zitiert, wobei position ihren organischen Rang angibt. Andere Engines liefern nur zitierte Quellen.
Eine Anfrage mit analysis wird mit 400 abgelehnt. Jeder Ergebnisdatensatz enthält Insights.

Ergebnis

Vor v4 gespeicherte Ergebnisse behalten ihre frühere Form, ohne version-Feld.

version

Für diese Form immer 4.

answer

Die eingereichte Antwort, unverändert. answerRanges sind Offsets in genau diesem String: JavaScript-UTF-16-Codeeinheiten, start inklusive, end exklusive. Schneiden Sie ihn unverändert aus, mit answer.slice(start, end), statt den Text neu aufzuteilen. Jeder Bereich in links[] bezeichnet eine vollständige Sinneinheit Ihrer Antwort: einen Satz, einen Listenpunkt oder eine Tabellenzelle. Jeder Bereich in brands[] ist der Name genau so, wie er geschrieben steht. Die Grenzen beziehen sich auf den Originaltext.

queries[]

Die Suchen, die die Engine für diese Antwort ausgeführt hat. Jede hat eine id, ihren text und sourceIds: die Quellen, die diese Suche gefunden hat. Leer, wenn die Engine keine Suchen offengelegt und Sie keine gesendet haben.

sources[]: ein Eintrag pro Seite

  • id: undurchsichtige Kennung, eindeutig im Ergebnis.
  • url: die URL der Seite; domain: ihr Host.
  • channel: wer die Seite kontrolliert, beurteilt anhand ihres Hosts:
    • own: die eigene Website Ihrer Marke (genau dann, wenn own true ist).
    • brand: die eigene Website einer anderen im Ergebnis genannten Marke.
    • editorial: ein Herausgeber; nur der Herausgeber kann die Seite ändern. Nicht erkannte Hosts werden als editorial gemeldet.
    • retailer: ein Onlineshop oder Marktplatz.
    • review_platform: eine Bewertungsplattform für Kunden oder Unternehmen.
    • community: ein Forum oder eine Frage-und-Antwort-Website.
    • video: eine Videoplattform.
    • social: ein soziales Netzwerk.
    • blog_platform: ein gehosteter Blogdienst.
    • reference: eine Enzyklopädie oder ein Wiki; nie Ziel einer Maßnahme.
  • cited: true, wenn die Antwort die Seite zitiert, false, wenn die Engine sie nur abgerufen hat.
  • position: der eigene Rang der Engine für die Seite, oder null, wenn sie keinen angegeben hat.
  • queryIds[]: die Suchen, die die Seite gefunden haben.
  • publishedAt: das Veröffentlichungsdatum, wie von der Engine gemeldet, oder null.
  • citedText[]: Passagen, die die Engine selbst als zitiert gemeldet hat; [], wenn keine.
  • brandIds[]: Marken, die auf der lesbaren Seite, in ihrem Titel oder in citedText genannt werden.
  • own: true, wenn die Seite auf der eigenen Website Ihrer Marke liegt.
  • paragraphs[]: die im Ergebnis enthaltenen Absätze einer zitierten Seite. Jeder hat eine id (im gesamten Ergebnis eindeutig) und den text des Absatzes. Ein Absatz kann auch ohne Verknüpfung enthalten sein. Bei nicht zitierten Seiten immer leer.
  • error: nur vorhanden, wenn die Seite nicht gelesen werden konnte. paragraphs ist dann leer, und der String nennt kurz den Grund für diese Quelle.

brands[]

Jede Marke, die das Ergebnis verfolgt: Ihre brand (role: "target"), Ihre competitors ("competitor") und weitere Marken, die die Antwort nennt ("answer").
  • rank: die Reihenfolge, in der der Markenname zum ersten Mal in der Antwort vorkommt, beginnend bei 1; null, wenn die Antwort die Marke nicht nennt.
  • answerRanges[]: die genauen Stellen, an denen die Antwort die Marke oder einen ihrer Produktnamen nennt, in denselben UTF-16-Offsets; answer.slice(start, end) liefert den Namen so, wie er geschrieben steht. Der Abgleich ignoriert Groß- und Kleinschreibung und erfasst ganze Wörter (außer in Schriften ohne Leerzeichen); er umfasst Überschriften und Tabellenzellen, nie Link-URLs oder Bild-Markup. Anders als die Bereiche in links[] sind dies keine vollständigen Antworteinheiten.
  • citedSourceIds[]: zitierte Quellen, deren Seite sie nennt.
  • retrievedSourceIds[]: nicht zitierte Quellen, deren Seite sie nennt.
  • ownSourceIds[]: Quellen auf der eigenen Website der Marke; nur für die Zielmarke befüllt.
  • paragraphId: der Absatz, um den es in dieser Verknüpfung geht. Er zeigt immer auf einen Absatz, der in sources[] existiert.
  • answerRanges[]: die Teile der Antwort, denen dieser Absatz entspricht, als start/end-Paare in denselben UTF-16-Offsets. Eine Verknüpfung kann mehrere Bereiche haben; derselbe Antworttext wiederholt sich nicht zwischen ihnen. Jeder Bereich ist eine vollständige Antworteinheit (Satz, Listenpunkt oder Tabellenzelle).
  • explanation: ein kurzer Satz, der die Entsprechung beschreibt, also was der Absatz über diesen Teil der Antwort aussagt.

visibility

Wo Ihre Marke in dieser Antwort steht; null, wenn keine brand gesendet wurde.
  • brandId: Ihre Marke in brands[].
  • stage: einer der folgenden Werte:
    • mentioned: Die Antwort nennt Ihre Marke.
    • on_cited_page: Die Antwort nennt sie nicht, aber eine zitierte Seite.
    • on_retrieved_page: Nur Seiten, die die Engine abgerufen, aber nicht zitiert hat, nennen sie.
    • not_found: Keine gelesene Seite nennt sie.
  • rank: der rank Ihrer Marke in brands[].
  • answerBrands: wie viele Marken die Antwort nennt.

actions[]

Priorisierte nächste Schritte für Ihre Marke; [], wenn keine brand gesendet wurde. priority beginnt bei 1 (zuerst erledigen) und hat keine Lücken. Maßnahmen sind nach control geordnet: zuerst, was Ihre Marke kontrolliert (owned), dann Plattformen, auf denen sie posten kann (platform), dann Outreach (outreach). summary ist ein Satz, und steps[] enthält ein bis fünf konkrete Schritte, beides in der Sprache der Antwort. sourceIds, brandIds, queryIds und linkIds verweisen auf die Belege in diesem Ergebnis. brandIds nennt Ihre Marke oder die konkurrierenden Marken, die diese Seiten nennen. Maßnahmen schlagen nie gefälschte oder nicht offengelegte Bewertungen vor, kein Auftreten als unabhängiger Tester, keinen Linkkauf und keine Bearbeitung von Seiten, die Ihrer Marke nicht gehören. Drittanbieterseiten, die Ihre Marke nennen, aber nicht zitiert wurden, stehen in brands[].retrievedSourceIds und nicht unter den Maßnahmen.

insights[]

Bis zu vier kurze Zusammenfassungen dessen, was die Seiten zusammen ergeben: welche Kanäle zitiert wurden, welches Format, welche Aktualität oder welche Kriterien die zitierten Seiten teilen, wie die Reihenfolge der Marken in der Antwort zu dem passt, was die zitierten Seiten abdecken, und wo Ihre Marke steht. sourceIds nennt die Seiten und linkIds die Verknüpfungen, auf denen jede Zusammenfassung beruht; mindestens eines davon ist nicht leer, und beide nennen nur Einträge in diesem Ergebnis. Insights beschreiben Entsprechungen; sie sind keine Empfehlungen.

Das Ergebnis richtig lesen

  • Keine Verknüpfung ist kein Urteil. Ein Absatz ohne Verknüpfung hat schlicht keinem Antwortbereich entsprochen, und ein Antwortteil ohne Bereich bedeutet, dass kein Absatz mit ihm verknüpft wurde. Beides besagt nicht, dass die Seite irrelevant, ungenutzt oder unzuverlässig ist.
  • Eine ungelesene Seite bleibt ungewiss. Ist sources[].error gesetzt, wurde diese Quelle von der Analyse ausgeschlossen; werten Sie fehlende Verknüpfungen nicht als negatives Ergebnis. Versuchen Sie es erneut oder liefern Sie ihren body, wenn sie wichtig ist.
  • Entsprechung, nicht Kausalität. Das Ergebnis beschreibt, wie eine vorhandene Antwort und ein vorhandener Seitentext nachträglich zusammenpassen und welche Marken diese Seiten nennen. Es misst keinen Einfluss auf die Generierung, bewertet die Seite nicht und sagt nicht, wie die Antwort entstanden ist.
  • not_found heißt: auf keiner gelesenen Seite. Es bedeutet nicht, dass Ihre Marke im Web fehlt.
  • Abrufdaten hängen von der Engine ab. Nicht zitierte Seiten erscheinen nur, wenn die Engine sie offenlegt (ChatGPT, Google AI Overview) oder Sie Seiten mit cited: false senden. Andernfalls ist jede Quelle zitiert, und Ihre eigene Seite kann nur als zitiert erscheinen.
  • Kanäle werden anhand des Hosts beurteilt. channel wird aus dem Host der Seite abgeleitet, nicht durch Lesen, wer sie geschrieben hat.
  • Maßnahmen sind Vorschläge, keine Garantien. Sie werden anhand der in diesem Ergebnis aufgeführten Seiten priorisiert; eine umzusetzen garantiert nicht, dass sich die Antwort ändert.
  • Ids sind intern. Speichern Sie s…/q…/b…/l…/a…-Kennungen nicht als stabile Schlüssel über Läufe hinweg; sie gelten nur innerhalb eines Ergebnisses.

Ausführung und Grenzen

  • Größe ist kein Fehlergrund. Alles, was der Anfragevertrag akzeptiert, also eine answer mit bis zu 200.000 Zeichen und bis zu 100 Quellen, wird analysiert. Lange Antworten, große Quellsätze und sehr lange Seiten werden durch Aufteilen der Arbeit bewältigt, nicht durch Ablehnen des Tasks.
  • Die Tiefe richtet sich nach der Antwort, nicht nach der Seite. Eine lange Seite erzeugt nicht mehr Verknüpfungen, als die Antwort tragen kann: Die Analyse konzentriert sich auf die Passagen, die der Antwort am wahrscheinlichsten entsprechen, und jede Quelle mit einer Entsprechung ist vertreten. Bei einer großen Seite oder einer, die dieselbe Aussage in Navigation, Listen und Bewertungen wiederholt, erhalten Sie die stärksten Passagen statt jedes Vorkommens.
  • Markup ist kein Beleg. Sitemaps, Linkverzeichnisse und Bildergalerien liefern keine Verknüpfungen; eine Seite, die nur daraus besteht, wird ohne Absätze gemeldet statt mit erfundenen Entsprechungen.
  • Eine nicht lesbare Quelle wird in sources[].error gemeldet, ohne den Task scheitern zu lassen, wenn eine andere Quelle lesbar ist. Der Task scheitert, wenn keine Quelle gelesen werden konnte, bei einem Analysefehler, einem Timeout oder einem Konfigurationsfehler des Dienstes.
  • Anfragen werden wie der Rest der API nach Nutzung abgerechnet. Die Antwort beim Einreichen zeigt die vorläufige Credit-Reservierung; die endgültige Belastung wird verrechnet, wenn der Task einen Endzustand erreicht.