AI Overviews: konkurenci (getCompetitors)
/api/rank_tracker/reports/ai_overviews/getCompetitorsPorównuje obecność w blokach AI Overviews (AIO) domeny projektu Rank Tracker i jego konkurentów. Dla każdego konkurenta (lista pochodzi z GET /api/rank_tracker/management/competitors/list) zwracane są liczby fraz wspólnych i unikalnych oraz komplet dziewięciu metryk aio_* w ujęciu current / previous / diff / percent. Wynik jest stronicowany — paginacja liczona jest po konkurentach. Ten raport — w odróżnieniu od modułu AI Overviews w Analizie widoczności — nie jest przestarzały.
| Domena | ID konkurenta | Frazy wspólne | Frazy unikalne (projekt) | Frazy unikalne (konkurent) | Widoczność AIO (bieżąco) |
|---|---|---|---|---|---|
| fajnyzwierzak.pl | 55578 | 0 | 0 | 0 | 0 |
| psy.pl | 4741 | 0 | 0 | 0 | 0 |
Konkurenci w AI Overviews (limit 2). Projekt bez obecności w AIO ma zera w metrykach. Wszystkie adresowalne pola wiersza (obiekt statistics ma stałe klucze aio_*).
Żądanie
POST /api/rank_tracker/reports/ai_overviews/getCompetitors
Nagłówki: Authorization: Bearer <token>, Content-Type: application/json.
Struktura żądania
Podstawowy
{
"project_id": null
}Parametry
| Name | Type | Default |
|---|---|---|
project_id | numberWymagane. ID projektu Rank Tracker ( | |
filtering | { filters: { key: string; match?: "gt" | "gte" | "lt" | "lte" | "eq"; value: string | number | (string | number)[]; complement?: boolean; }[]; conjunction?: "and" | "or"; }[]Filtrowanie listy konkurentów. Nieznany | |
page | numberNumer strony paginacji. Paginacja liczona jest po konkurentach projektu. | 1 |
limit | numberRozmiar strony paginacji (liczba konkurentów na stronę). Odbija się w | 10 |
Pułapki typów i struktury: pola competitor_id, shared_keywords, unique_keywords oraz unique_for_competitor są zwracane jako stringi (np. "0"), a nie liczby. Obiekt statistics zawiera te same dziewięć metryk aio_* co akcja getStatistics, ale każda metryka ma wyłącznie {current, previous, diff, percent} — bez pola history; dodatkowo aio_sov niesie jeszcze competitorsAvgSov i competitorsMaxSov. Paginacja liczona jest po konkurentach (w projekcie testowym count: 3). project_id jest wymagane (ProjectAccessRules) — cudzy lub nieistniejący projekt zwraca 418 z Unauthorized access. Projekt testowy 87944 (pies.pl) nie ma bieżącej obecności w AIO, stąd zera w metrykach — struktura odpowiedzi jest pewna, wartości są przykładowe.
Odpowiedź
Po pomyślnym żądaniu otrzymujesz data (tablicę konkurentów) oraz pagination. Każdy element data opisuje jednego konkurenta: jego identyfikator i domenę, liczby fraz wspólnych i unikalnych (jako stringi) oraz obiekt statistics z dziewięcioma metrykami aio_*. count w pagination to łączna liczba konkurentów w projekcie.
Skrócona
{
"success": true,
"data": [
{
"competitor_id": "55578",
"competitor_domain": "fajnyzwierzak.pl",
"shared_keywords": "0",
"unique_keywords": "0",
"unique_for_competitor": "0",
"statistics": {
"aio_visibility": { "current": 0, "previous": 0, "diff": 0, "percent": 0 },
"aio_sov": { "competitorsAvgSov": 0, "competitorsMaxSov": 0, "current": 0, "previous": 0, "diff": 0, "percent": 0 }
}
}
],
"pagination": { "page_count": 2, "current_page": 1, "has_next_page": true, "has_prev_page": false, "count": 3, "limit": 2 }
}Struktura odpowiedzi
| Name | Type | Default |
|---|---|---|
success | boolean
| |
data | AioCompetitor[]Konkurenci projektu wraz z metrykami AI Overviews | |
pagination | { page_count: number; current_page: number; has_next_page: boolean; has_prev_page: boolean; count: number; limit: number | null; }Metadane paginacji — liczone po konkurentach ( |
Błędy
| Name | Type | Default |
|---|---|---|
success | false | |
data | { error: { type: string; message: string; params?: Record<string, Record<string, string>>; }; } |
418 jest zwracane również przy błędach walidacji i dostępu. Brak project_id skutkuje invalid_data, a cudzy lub nieistniejący project_id zwraca Unauthorized access (418), a nie 404 — dostęp weryfikuje ProjectAccessRules.
Powiązane akcje
getStatistics— zbiorcze metrykiaio_*domeny projektu (z historią)getKeywords— frazy projektu z obecnością w AI OverviewsgetDistribution— rozkład obecności w blokach AIOgetCompetitors— porównanie z konkurentami (ta strona)getOpportunities— frazy z szansą na obecność w AIOgetAioDetails— surowa treść bloku AIO dla pojedynczej frazygetAioSources— źródła cytowane w blokach AIO