Kanibalizacja: frazy (getKeywords)
/api/visibility_analysis/reports/cannibalization/getKeywordsZwraca frazy dotknięte kanibalizacją — czyli takie, na które rankuje więcej niż jeden adres domeny lub dla których adres rankujący zmienia się między pomiarami. Każdy wiersz zawiera frazę wraz ze statystykami (pozycja, widoczność, CPC, liczba wyszukiwań, trudność, trendy, snippety SERP) oraz parę adresów url.current / url.previous — jeśli adresy się różnią, mamy do czynienia z kanibalizacją.
| Fraza | ID frazy | KID | Domena | Liczba słów | Marka |
|---|---|---|---|---|---|
| korektor maybelline | 4663 | 000fd51efa78d65196f81fd56938c4ad | zalando.pl | 2 | — |
| trzewiki adidas | 5283 | 00120febf81775e90ad212e342df6450 | zalando.pl | 2 | — |
zalando.pl (limit: 2) — frazy z kanibalizacją (różne url.current i url.previous). Wszystkie adresowalne pola wiersza (pominięto mapę historii pozycji statistics.position.history — ma zmienne klucze-daty; jest w JSON-ie i sekcji „Struktura odpowiedzi”).
Żądanie
POST /api/visibility_analysis/reports/cannibalization/getKeywords
Nagłówki: Authorization: Bearer <token>, Content-Type: application/json.
Struktura żądania
Podstawowy
{
"domain": "zalando.pl",
"fetch_mode": "topLevelDomain",
"country_id": 1
}Parametry
| Name | Type | Default |
|---|---|---|
domain | stringWymagane. Domena, subdomena, katalog lub URL do analizy — interpretowane zgodnie z | |
fetch_mode | "topLevelDomain" | "subdomain" | "catalog" | "url"Wymagane. Sposób interpretacji
| |
country_id | numberWymagane. Id kraju (bazy danych). Polska = | |
limit | numberLiczba wierszy na stronę. | 10 |
page | numberNumer strony. | 1 |
days_compare_mode | "week_ago_monday" | "last_monday" | "yesterday"Okres odniesienia do porównania (baza wykrywania zmian kanibalizacji).
Dozwolone: | |
filtering | unknown[]Grupy filtrów. Dozwolone pola m.in.: | |
order | { prop: string; dir: "asc" | "desc"; }Sortowanie — pojedynczy obiekt |
Trzy parametry są wymagane: domain, fetch_mode oraz country_id. Nieznane country_id zwraca 418 z komunikatem Unknown country_id. Parametry page i limit są opcjonalne (domyślnie 1 / 10). Endpoint obsługuje order (obiekt { prop, dir }) oraz filtering — zweryfikowane na prod (order po statistics.searches.current realnie zmienia kolejność asc/desc). To odróżnia ten raport od raportów sekcji (sections/*), które order/filtering ignorują.
Odpowiedź
W przypadku powodzenia otrzymujesz data (tablicę wierszy z frazami dotkniętymi kanibalizacją) oraz pagination. Kluczowa jest para statistics.url.current / statistics.url.previous — różne adresy oznaczają kanibalizację.
Skrócona
{
"success": true,
"data": [
{ "keyword": "korektor maybelline", "keyword_id": 4663, "statistics": { "position": { "current": 27, "previous": 10 }, "url": { "current": "zalando.pl/maybelline-new-york-instant-concealer-korektor-mj331e00a-s16.html", "previous": "zalando.pl/maybelline-new-york-instant-anti-age-eraser-color-corrector-concealer-korektor-lila-mj331e06e-i11.html" } /* … */ } }
],
"pagination": { "page_count": 1429, "current_page": 1, "has_next_page": true, "has_prev_page": false, "count": 2857, "limit": 2 }
}Struktura odpowiedzi
| Name | Type | Default |
|---|---|---|
success | boolean
| |
data | CannibalizationKeywordRow[]Zwrócone wiersze z frazami dotkniętymi kanibalizacją | |
pagination | { page_count: number; current_page: number; has_next_page: boolean; has_prev_page: boolean; count: number; limit: number; }Metadane paginacji |
Błędy
| Name | Type | Default |
|---|---|---|
success | false | |
data | { error: { type: string; message: string; params?: Record<string, Record<string, string>>; }; } |
418 zwracany jest także dla błędów walidacji. Nieznane country_id → komunikat Unknown country_id. Pominięcie któregokolwiek wymaganego pola (domain, fetch_mode, country_id) skutkuje błędem walidacji.
Powiązane akcje
getKeywords— frazy dotknięte kanibalizacją wraz ze statystykami (ta strona)getSections— liczba skanibalizowanych fraz w podziale na sekcje URL