--- title: "AI Overviews: statystyki (`getStatistics`)" source: https://docs.senuto.com/modules/rank_tracker/rt-ai-overviews-getStatistics api: GET /api/rank_tracker/reports/ai_overviews/getStatistics --- # AI Overviews: statystyki (`getStatistics`) **`GET /api/rank_tracker/reports/ai_overviews/getStatistics`** Zwraca zbiorcze statystyki obecności domeny projektu w blokach **AI Overviews** Google dla fraz monitorowanych w projekcie Rank Tracker. Odpowiedź to obiekt z dziewięcioma metrykami (m.in. `aio_visibility`, `aio_count`, `aio_sov`), z których każda zawiera wartość bieżącą, poprzednią, różnicę, zmianę procentową oraz historię dzienną. To **inny raport** niż wycofany raport AI Overviews w Analizie widoczności — ten endpoint **nie jest** oznaczony jako deprecated. Bez paginacji. --- ## Żądanie `GET` `/api/rank_tracker/reports/ai_overviews/getStatistics` Nagłówki: `Authorization: Bearer `. Parametry przekazuj w **query stringu** (np. `?project_id=87944`). Realny `project_id` pobierzesz z `POST /api/rank_tracker/management/projects/getMyActiveProjects`. ### Struktura żądania **Podstawowy** ```jsonc filename="żądanie-podstawowe.jsonc" { "project_id": null } ``` **cURL** ```bash curl --location --request GET 'https://api.senuto.com/api/rank_tracker/reports/ai_overviews/getStatistics?project_id=87944' \ --header 'Authorization: Bearer $YOUR_TOKEN_HERE' ``` ### Parametry ```ts type AiOverviewsGetStatisticsRequest = { /** * **Wymagane**. ID projektu Rank Tracker. Użytkownik musi mieć dostęp do projektu * (reguły `ProjectAccessRules`); cudzy lub nieistniejący projekt → `418` `Unauthorized access`. * Realny `project_id` pobierzesz z `POST /api/rank_tracker/management/projects/getMyActiveProjects`. */ project_id: number; } export default AiOverviewsGetStatisticsRequest ``` > **Ostrzeżenie:** > Ten endpoint używa metody **`GET`** — parametry należy przekazywać w **query stringu** (kontroler wymusza `allowMethod('get')`; żądanie `POST` zwraca `405`). Wymagany jest wyłącznie **`project_id`**; wskazanie cudzego lub nieistniejącego projektu skutkuje `418` (`Unauthorized access`) — dostęp weryfikują reguły `ProjectAccessRules`. ## Odpowiedź Po pomyślnym żądaniu otrzymujesz `data` będące obiektem z dziewięcioma metrykami AI Overviews. Każda metryka ma pola `current`, `previous`, `diff`, `percent` oraz `history` — mapę, w której kluczem jest **uniksowy timestamp jako string**, a wartością wartość metryki w danym dniu. Metryka `aio_sov` zawiera dodatkowo `competitorsAvgSov` i `competitorsMaxSov`. Odpowiedź nie ma paginacji. `history` każdej metryki zawiera punkt na każdy dzień zakresu (w przykładach poniżej skrócono ją do 3 punktów). Projekt bez obecności w AI Overviews ma wartości metryk równe `0`; struktura pozostaje taka sama. **Skrócona** ```json filename="przykładowa-odpowiedź (skrócona)" { "success": true, "data": { "aio_visibility": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_sov": { "competitorsAvgSov": 0, "competitorsMaxSov": 0, "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_potential": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 859.5, "1775174400": 850.5, "1782950400": 0 } } } } ``` **Pełna** ```json filename="przykładowa-odpowiedź (zwalidowana, 200; history skrócone do 3 z 92 punktów)" { "success": true, "data": { "aio_visibility": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_count": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_avg_pos": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_citations": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_keywords_total": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 84, "1775174400": 83, "1782950400": 0 } }, "aio_sov": { "competitorsAvgSov": 0, "competitorsMaxSov": 0, "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_potential": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 859.5, "1775174400": 850.5, "1782950400": 0 } }, "aio_utilized_potential": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } }, "aio_unique_keywords": { "current": 0, "previous": 0, "diff": 0, "percent": 0, "history": { "1775088000": 0, "1775174400": 0, "1782950400": 0 } } } } ``` ### Struktura odpowiedzi ```ts type AiOverviewsGetStatisticsResponse = { /** `true` przy powodzeniu; przy błędzie `false` i koperta z `error` */ success: boolean; /** Zbiorcze metryki obecności domeny projektu w AI Overviews */ data: { /** Widoczność domeny w AI Overviews */ aio_visibility: AioMetric; /** Liczba wystąpień domeny w blokach AI Overviews */ aio_count: AioMetric; /** Średnia pozycja domeny w blokach AI Overviews */ aio_avg_pos: AioMetric; /** Liczba cytowań domeny jako źródła w AI Overviews */ aio_citations: AioMetric; /** Łączna liczba fraz projektu wyzwalających AI Overviews */ aio_keywords_total: AioMetric; /** Share of Voice w AI Overviews; dodatkowo wartości konkurencji */ aio_sov: AioSovMetric; /** Potencjał obecności w AI Overviews */ aio_potential: AioMetric; /** Wykorzystany potencjał obecności w AI Overviews */ aio_utilized_potential: AioMetric; /** Liczba unikalnych fraz z obecnością domeny w AI Overviews */ aio_unique_keywords: AioMetric; }; } type AioMetric = { /** Wartość bieżąca */ current: number; /** Wartość poprzednia (okres porównawczy) */ previous: number; /** Różnica current - previous */ diff: number; /** Zmiana procentowa */ percent: number; /** * Historia dzienna metryki. Kluczem jest **uniksowy timestamp jako string** * (północ UTC danego dnia), wartością — wartość metryki tego dnia. * W zwalidowanej odpowiedzi mapa liczyła 92 punkty dzienne. */ history: Record; } type AioSovMetric = AioMetric & { /** Średni Share of Voice konkurentów w AI Overviews */ competitorsAvgSov: number; /** Najwyższy Share of Voice wśród konkurentów w AI Overviews */ competitorsMaxSov: number; } export default AiOverviewsGetStatisticsResponse ``` ## Błędy ```ts type ErrorResponse = { success: false; data: { error: { /** np. invalid_data, unauthorized, unknown */ type: string; message: string; /** pole -> reguła -> komunikat (dla invalid_data) */ params?: Record>; }; }; } export default ErrorResponse ``` > **Błąd:** > Kontroler wymusza metodę `GET` (`allowMethod('get')`) — żądanie **`POST`** zwraca **`405`**. Wskazanie projektu, do którego użytkownik nie ma dostępu, lub projektu nieistniejącego zwraca **`418`** z komunikatem `Unauthorized access`. ## Powiązane akcje - `getStatistics` — zbiorcze statystyki obecności w AI Overviews (ta strona) - `getKeywords` — frazy projektu z danymi o obecności w AI Overviews - `getDistribution` — rozkład fraz wyzwalających AI Overviews po pozycjach organicznych 1–50 - `getCompetitors` — konkurenci w blokach AI Overviews - `getOpportunities` — szanse na zdobycie obecności w AI Overviews - `getAioDetails` — szczegóły bloku AI Overviews dla frazy - `getAioSources` — źródła cytowane w blokach AI Overviews