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: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 Erfassungsanfrageinclude.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.
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, bisresponse.citationAnalysis.task.statusCOMPLETEDoderFAILEDist. - 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.citationAnalysisgleich{ "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_ANALYSISerlauben.
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.
Ergebnis
Vor v4 gespeicherte Ergebnisse behalten ihre frühere Form, ohneversion-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, wennowntrueist).brand: die eigene Website einer anderen im Ergebnis genannten Marke.editorial: ein Herausgeber; nur der Herausgeber kann die Seite ändern. Nicht erkannte Hosts werden alseditorialgemeldet.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, odernull, wenn sie keinen angegeben hat.queryIds[]: die Suchen, die die Seite gefunden haben.publishedAt: das Veröffentlichungsdatum, wie von der Engine gemeldet, odernull.citedText[]: Passagen, die die Engine selbst als zitiert gemeldet hat;[], wenn keine.brandIds[]: Marken, die auf der lesbaren Seite, in ihrem Titel oder incitedTextgenannt 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 eineid(im gesamten Ergebnis eindeutig) und dentextdes 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.paragraphsist 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 inlinks[]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.
links[]: eine Beziehung pro Absatz
paragraphId: der Absatz, um den es in dieser Verknüpfung geht. Er zeigt immer auf einen Absatz, der insources[]existiert.answerRanges[]: die Teile der Antwort, denen dieser Absatz entspricht, alsstart/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 inbrands[].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: derrankIhrer Marke inbrands[].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[].errorgesetzt, wurde diese Quelle von der Analyse ausgeschlossen; werten Sie fehlende Verknüpfungen nicht als negatives Ergebnis. Versuchen Sie es erneut oder liefern Sie ihrenbody, 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_foundheiß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: falsesenden. Andernfalls ist jede Quelle zitiert, und Ihre eigene Seite kann nur als zitiert erscheinen. - Kanäle werden anhand des Hosts beurteilt.
channelwird 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
answermit 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[].errorgemeldet, 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.