← Назад в Supabase Analytics

📊 Looker Studio — пошагово

Готовые SQL + скриншот-подобная инструкция · 25.04.2026
Цель: за 15-20 минут получить рабочий дашборд с таблицей 29,775 URL × 35 полей + 5 ключевых карточек + таблица возможностей. Источник — наш Supabase.

Подготовка (5 минут) — только один раз

1. Сбросить пароль БД Supabase
Зайди сюда → раздел «Database Settings» → кнопка «Reset database password» → сохранить новый пароль в AyurTour/SECRETS.local.md.
2. Открыть Looker Studio
lookerstudio.google.com — войти под рабочим Google-аккаунтом (тем же, что GSC).
3. Создать источник данных
Кнопка «Создать» (левый верх) → «Источник данных» → в поиске вбить PostgreSQL → выбрать коннектор от Google.

Параметры подключения

ПолеЗначение
Хостdb.gdqcqoogqjasmjhovket.supabase.co
Порт5432
База данныхpostgres
Пользовательpostgres
Парольиз SECRETS.local.md (сбросил в шаге 1)
Включить SSLобязательно — Supabase требует

Нажми «Проверить подключение»«Аутентификация»«Добавить».

Для каждого виджета — готовый SQL

В Looker Studio при создании источника выбери «Произвольный запрос» (не «Таблица»), вставь SQL ниже. Создай отдельный источник на каждый виджет — удобнее фильтровать.

🟢 Виджет 1: «Сводка сайта» (5 Scorecard-карточек)

Источник: «AyurTour — Сводка». В Looker Studio: + Добавить графикСводка.

SELECT
  urls_total,
  gsc_clicks_365d,
  gsc_impressions_365d,
  ym_visits_365d,
  ahrefs_backlinks,
  ahrefs_refdomains,
  yandex_sqi_latest
FROM public.v_dashboard_summary;

Создай 5-7 Scorecard-виджетов, каждый показывает одну метрику.

🔵 Виджет 2: «Главная таблица URL» (29,775 строк)

Это **главный** стол — вся информация о каждой странице. Фильтры добавишь в Looker (по стране, категории, HTTP-коду).

SELECT
  url,
  level1 AS "Уровень",
  category AS "Категория",
  country AS "Страна",
  http_code AS "HTTP",
  title AS "Title факт",
  title_len AS "Длина title",
  gsc_clicks_365d AS "Google клики",
  gsc_impressions_365d AS "Google показы",
  gsc_position AS "Google позиция",
  ym_visits_365d AS "Яндекс визиты",
  ym_bounce_rate AS "Отказы %",
  total_keywords AS "Ключей Keys.so",
  total_ws_sum AS "WS суммарный",
  ahrefs_traffic AS "Ahrefs трафик",
  ahrefs_refdomains AS "Ahrefs ссылок"
FROM public.v_url_matrix
WHERE gsc_clicks_365d > 0 OR ym_visits_365d > 0 OR total_ws_sum > 0
ORDER BY gsc_clicks_365d DESC NULLS LAST;

🟡 Виджет 3: «Быстрые возможности» (позиции 11-20)

1,550 URL которые стоят на позициях 11-20 с большими показами — их проще всего подтянуть в ТОП-10.

SELECT
  url,
  h1_mindmap AS "H1 задуманный",
  gsc_position AS "Позиция Google",
  gsc_impressions AS "Показов/год",
  gsc_clicks AS "Кликов/год",
  lost_potential AS "Упущенный потенциал"
FROM public.v_opportunities
ORDER BY gsc_impressions DESC
LIMIT 500;

🔴 Виджет 4: «Битые URL с трафиком» (RESTORE-кандидаты)

SELECT
  m.url,
  m.h1_mindmap AS "H1",
  m.total_ws_sum AS "WS потенциал",
  m.gsc_clicks_365d AS "Было кликов",
  m.ym_visits_365d AS "Было визитов"
FROM public.v_url_matrix m
WHERE m.http_code = 404
  AND (m.total_ws_sum > 0 OR m.gsc_clicks_365d > 0 OR m.ym_visits_365d > 0)
ORDER BY m.total_ws_sum DESC NULLS LAST;

📈 Виджет 5: «SQI-тренд Яндекса» (график)

В Looker: Временной ряд.

SELECT
  snapshot_date AS "Дата",
  sqi AS "SQI"
FROM public.analytics_yandex_sqi_history
ORDER BY snapshot_date ASC;

🌍 Виджет 6: «Трафик Google по странам»

В Looker: Географическая карта (столбец country нужно преобразовать к «Страна, ISO-3»).

SELECT
  country AS "Код страны",
  clicks AS "Кликов",
  impressions AS "Показов",
  ROUND((clicks::numeric / NULLIF(impressions, 0) * 100), 2) AS "CTR %",
  position AS "Средняя позиция"
FROM public.analytics_gsc_country
WHERE clicks > 0
ORDER BY clicks DESC;

🟠 Виджет 7: «Топ-20 конкурентов Ahrefs»

SELECT
  competitor_domain AS "Домен",
  domain_rating AS "DR",
  common_kw AS "Общих ключей",
  competitor_kw AS "Всего у него ключей",
  competitor_traffic AS "Трафик (оценка)",
  share AS "Доля пересечения %"
FROM public.seo_ahrefs_competitors
WHERE snapshot_date = (SELECT MAX(snapshot_date) FROM public.seo_ahrefs_competitors)
ORDER BY common_kw DESC;

⭐ Виджет 8: «Keys.so по регионам» (pivot)

SELECT
  region_slug AS "Регион",
  COUNT(*) AS "Ключей всего",
  COUNT(*) FILTER (WHERE position <= 3) AS "ТОП-3",
  COUNT(*) FILTER (WHERE position BETWEEN 4 AND 10) AS "ТОП-4-10",
  COUNT(*) FILTER (WHERE position BETWEEN 11 AND 50) AS "ТОП-11-50",
  SUM(ws_broad) AS "Суммарный WS"
FROM public.seo_keysso_positions
WHERE snapshot_date = (SELECT MAX(snapshot_date) FROM public.seo_keysso_positions)
GROUP BY region_slug
ORDER BY SUM(ws_broad) DESC;

📱 Виджет 9: «Устройства» (donut chart)

SELECT
  device AS "Устройство",
  clicks AS "Кликов",
  impressions AS "Показов",
  position AS "Позиция"
FROM public.analytics_gsc_device
ORDER BY clicks DESC;

🔎 Виджет 10: «Топ-100 запросов Google + Яндекс»

SELECT
  source AS "Источник",
  query AS "Запрос",
  clicks AS "Кликов",
  impressions AS "Показов",
  position AS "Позиция"
FROM public.v_top_queries
WHERE (source = 'google' AND clicks > 10)
   OR (source = 'yandex' AND impressions > 50)
ORDER BY impressions DESC
LIMIT 200;

Сборка дашборда (15 минут)

После подключения источника Looker покажет «Создать отчёт». Структура страницы:

СекцияВиджеты
Header (шапка)Заголовок «AyurTour Analytics — сводка» + дата обновления
Ключевые цифрыВиджет 1 — 5-7 Scorecard карточек в ряд
SQI-трендВиджет 5 — временной ряд
Главная таблицаВиджет 2 — URL × метрики с фильтрами
ВозможностиВиджет 3 (таблица)
RESTOREВиджет 4 (таблица, красный цвет)
ГеографияВиджет 6 (карта) + Виджет 9 (донат устройств)
КонкурентыВиджет 7 (таблица)
Регионы Keys.soВиджет 8 (pivot)
Топ запросовВиджет 10

Совет по фильтрам

В Looker можно добавить «Фильтр-контроль» наверху:

Фильтр применится ко всем виджетам одновременно.

Расшарить программисту

  1. Кнопка «Поделиться» (правый верх)
  2. Ввести email программиста (нужного человека)
  3. Права: «Может просматривать»
  4. Опционально — включить «Доступен по ссылке для всех в организации»
⚠️ Внимание: Если шарим по ссылке публично — SEO-данные утекут конкурентам. Лучше только конкретным email.

Обновление данных

По умолчанию Looker кэширует данные на 12 часов. Можно изменить:

Источник данных«Обновлять поля» → настроить интервал 1 час / 15 минут.

Когда в Phase 2 подключим daily cron для GSC/Яндекса — Looker будет автоматом показывать свежие данные.

🎯 Готово! У тебя дашборд с 10 виджетами, онлайн, обновляется сам. Время: 15-20 минут + один раз пароль сбросил.