MCP-сервер Google Ads: подключаем Claude и закрываем доступ
Подключите официальный MCP-сервер Google, чтобы Claude читал ваш кабинет Google Ads, и войдите ролью «Только чтение»: тогда ключи не смогут менять кампании.
MCP-сервер Google Ads — это программа Google с открытым кодом, которая позволяет ИИ-ассистенту, например Claude, запрашивать ваш рекламный кабинет через Google Ads API. Текущая версия работает только на чтение и содержит три инструмента. Чтобы подключить её, нужны проект Google Cloud с доступом не ниже Explorer, учётные данные OAuth и один блок настроек в ассистенте. Сначала закройте доступ: входите через отдельный Google-аккаунт с ролью «Только чтение», потому что API использует одно и то же разрешение и для чтения, и для записи.
Ассистент, подключённый через MCP, — один из нескольких способов дать программе работать в вашем рекламном кабинете. Остальные — автоматизированные правила, скрипты и сам API. Наше руководство по автоматизации Google Ads сравнивает их. В этой статье — официальный сервер, два вида уровней доступа, которые его ограничивают, настройка в Claude Desktop и Claude Code и ограничения, с которыми вы столкнётесь в первую неделю.
Что официальный сервер умеет и чего не умеет
Model Context Protocol — это стандарт с открытым кодом для подключения ИИ-приложений к внешним системам, как сказано в документации MCP. MCP-сервер — программа на другой стороне этого соединения. Он предлагает инструменты. Когда их вызывать, решает модель, стоящая за ассистентом, а результаты попадают в контекстное окно модели.
Сервер Google стоит между ассистентом и Google Ads API. По руководству по интеграции для разработчиков это программа на Python, которая запускается на вашем компьютере или в Cloud Run как веб-сервис. Входит она через OAuth 2.0 или сервисный аккаунт. Текущая версия работает только на чтение: по описанию Google, она не может менять ставки, останавливать кампании и создавать новые объекты. Код открыт на GitHub по лицензии Apache 2.0.
| Инструмент | Что делает | Для чего использовать |
|---|---|---|
list_accessible_customers | Возвращает ID аккаунтов, к которым вошедший пользователь имеет прямой доступ | Проверить, что ассистент видит только те аккаунты, которые вы имели в виду |
get_resource_metadata | Описывает тип ресурса, например campaign: по каким полям можно делать выборку и фильтрацию | Не дать модели угадывать названия полей |
search | Собирает запрос из полей, ресурса, условий, сортировки и необязательного лимита строк, затем возвращает строки | Любой отчёт: кампании, товары, поисковые запросы, история изменений |
Инструмент search сам пишет запрос на GAQL, и запрос всегда начинается с SELECT. Сервер остаётся только читающим, потому что каждый инструмент вызывает только методы API для чтения: ни один не отправляет изменение. Кроме того, сервер предлагает четыре справочных ресурса: discovery-документ API, список метрик, список сегментов и последние заметки о выпуске.
Две строки в README сервера важны ещё до подключения. Данные вашего кабинета уходят тому ассистенту и той модели, которые вы подключаете к серверу. И сервер добавляет к вызовам API дополнительный заголовок, чтобы Google мог собирать данные об использовании.
Два вида уровней доступа определяют, до чего дотянется ассистент
Google называет «уровнем доступа» две несвязанные вещи. Одна ограничивает, что вошедший пользователь может делать в рекламном кабинете. Другая — сколько запросов может выполнять ваш проект Google Cloud. Настроить нужно обе.
Уровни доступа пользователя: что вошедший может менять
Google Ads API заимствует модель доступа у Google Ads. Согласно странице Understand the Google Ads access model, API использует одни и те же OAuth-скоупы и для операций только чтения, и для операций чтения с записью. Он следует ролям пользователей, которые поддерживает Google Ads. Об этом же говорит код самого сервера: отдельного скоупа «только чтение» Google не публикует, поэтому ограничение чтением обеспечивают инструменты, которые предлагает сервер.
Следствие: официальный сервер ничего не запишет, но учётные данные, которые вы для него создали, смогут — в любом другом инструменте, который их использует. Ограничение на изменения, которое обеспечивает сам Google, — это роль вошедшего пользователя. API различает четыре уровня доступа пользователя, то есть роли, перечисленные в справочнике AccessRole:
| Роль | Что разрешает |
|---|---|
| Администратор (Admin) | Владеет аккаунтом и управляет тем, кого ещё добавить |
| Стандартный (Standard) | Может менять кампании, но не влияет на других пользователей |
| Только чтение (Read only) | Может просматривать кампании и изменения в аккаунте, но не может ничего править |
| Только оповещения по эл. почте (Email only) | Получатель писем, а не настоящий пользователь |
Роли, выданные в управляющем аккаунте, передаются каждому связанному с ним аккаунту. Допустим, вы подключаетесь Google-аккаунтом, у которого есть доступ «Стандартный» или «Администратор» в управляющем аккаунте агентства. Тогда ассистент доберётся до каждого клиентского аккаунта под ним с этой ролью.
Уровни доступа API: сколько запросов может выполнять ваш проект Cloud
Google отказался от токенов разработчика 9 сентября 2026 года, как сказано на странице Developer token. Уровни доступа API теперь принадлежат проекту Google Cloud, которому принадлежит ваш OAuth-клиент или сервисный аккаунт. Если запрос всё ещё содержит токен разработчика, API его игнорирует.
В README репозитория шаг с токеном разработчика всё ещё описан и помечен как необязательный. В руководстве Google по интеграции сказано, что последней версии сервера токен больше не нужен.
Лимиты каждого уровня — со страницы Google Access levels and permissible use:
| Уровень доступа API | Какие аккаунты можно запрашивать | Операций в сутки |
|---|---|---|
| Test | Только тестовые аккаунты | 15 000 |
| Explorer | Тестовые и рабочие аккаунты | 2 880 на рабочих аккаунтах, 15 000 на тестовых |
| Basic | Тестовые и рабочие аккаунты | 15 000 |
| Standard | Тестовые и рабочие аккаунты | Без ограничений |
Explorer — самый низкий уровень, который может запрашивать рабочий аккаунт, то есть тот, что показывает реальную рекламу. Заявку на него подают на странице Google Ads API Overview в Google Cloud Console, а Google может повысить уровень проекта автоматически. Прежде чем подавать заявку на Basic, вашему проекту Cloud нужна верификация бренда.
Каждый запрос Search или SearchStream считается одной операцией, сколько бы строк он ни вернул (API limits and quotas). Google считает сутками последние 24 часа в любой момент. Поэтому 2 880 операций в сутки — это две в минуту круглосуточно.
Человеку, который задаёт вопросы, этого хватает с запасом. Ассистент, который делает отдельный запрос на каждую кампанию или на каждый день, может израсходовать лимит целиком.
Как подключить Claude к Google Ads: пошагово
В этих шагах замок ставится первым, чтобы учётные данные никогда не принадлежали Google-аккаунту с правами администратора.
-
Создайте Google-аккаунт, от имени которого будет действовать ассистент. Возьмите отдельный адрес, например
reports@ваш-домен. Попросите администратора кабинета выдать ему роль «Только чтение» в Google Ads (как выдать роль). Проверка: новый аккаунт принял приглашение, а в списке пользователей рядом с его адресом стоит «Только чтение». -
Настройте проект Google Cloud. Включите в нём Google Ads API, откройте страницу Google Ads API Overview и подайте заявку на Explorer, если у проекта всё ещё указан Test. Проверка: на странице указан Explorer, Basic или Standard.
-
Создайте учётные данные OAuth и войдите аккаунтом с ролью «Только чтение». Создайте OAuth-клиент для компьютера или веб-приложения, скачайте его JSON-файл и выполните команду из README. Когда откроется браузер, выберите аккаунт «Только чтение», а не свой аккаунт администратора.
gcloud auth application-default login \ --scopes https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=YOUR_CLIENT_JSON_FILEПроверка: команда печатает путь, по которому сохранила файл с учётными данными. Относитесь к этому файлу как к паролю: тот, у кого он есть, действует от имени этого пользователя.
-
Установите pipx и добавьте сервер в ассистента. Вот блок из руководства Google по интеграции:
{ "mcpServers": { "google-ads-mcp": { "command": "pipx", "args": ["run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp"], "env": { "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID", "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json" } } } }- Claude Desktop: откройте «Settings» в меню Claude, перейдите в «Developer» и выберите «Edit Config». Откроется файл
claude_desktop_config.json. Вставьте блок, сохраните, затем полностью закройте приложение и запустите снова (Connect to local MCP servers). - Claude Code: добавьте тот же сервер из командной строки (Connect Claude Code to tools via MCP). Оставьте
--transport stdioмежду переменными и именем сервера, иначе командная строка прочтёт имя как ещё одну переменную.
claude mcp add --env GOOGLE_PROJECT_ID=YOUR_PROJECT_ID GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json \ --transport stdio google-ads-mcp \ -- pipx run --spec git+https://github.com/googleads/google-ads-mcp.git google-ads-mcpЕсли вы попадаете в аккаунт через управляющий аккаунт, добавьте
GOOGLE_ADS_LOGIN_CUSTOMER_IDс ID управляющего. Согласно README, тот же блокmcpServersработает в Cursor и VS Code. - Claude Desktop: откройте «Settings» в меню Claude, перейдите в «Developer» и выберите «Edit Config». Откроется файл
-
Сделайте первую проверку. Спросите: «К каким аккаунтам у меня есть доступ?» Проверка: в ответе список ID аккаунтов. Если вы видите ошибку
CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION, у проекта пока доступ Test.
Что закрыть до первого настоящего запроса
| Замок | Зачем |
|---|---|
| Отдельный Google-аккаунт с ролью «Только чтение» | API следует ролям пользователей, и эта роль — ограничение на изменения, которое обеспечивает Google |
| Доступ к одному рекламному кабинету напрямую, а не через управляющий аккаунт | Роли в управляющем аккаунте передаются каждому связанному аккаунту |
| Учётные данные вне общей конфигурации | В Claude Code --scope project записывает сервер в .mcp.json — файл, который предназначен для общего использования через систему контроля версий. Локальная область по умолчанию хранит его в ~/.claude.json |
| Сервер как отдельный процесс, если им пользуются несколько инструментов | В README сказано, что сервер, который запускает сам ассистент, хуже изолирует учётные данные, потому что путь к ним лежит в настройках ассистента. Если вы запускаете сервер как локальный веб-сервис, пусть он слушает только локальный адрес (loopback) |
| Только нужные инструменты | tools_config.yaml включает и выключает отдельные инструменты и их группы |
| Журнал того, что спрашивали | Сервер записывает в журнал каждый запрос, который собирает инструмент search. Claude Desktop пишет вывод stderr локального сервера в mcp-server-<name>.log, на macOS — в ~/Library/Logs/Claude |
| Человек между моделью и любым изменением | Спецификация MCP требует, чтобы человек всегда мог отклонить вызов инструмента. Она также предписывает ассистенту считать метку «read-only» у инструмента недостоверной, если сервер не доверенный |
| Осторожность с чужим текстом | В данные кабинета входит текст, который написали люди вне вашей компании, например поисковые запросы. Prompt injection прячет инструкции в таком тексте. С инструментами только для чтения вред — неверный ответ. С инструментами записи это изменение в кабинете |
| Тестовый аккаунт перед любым сервером, который пишет | Тестовые аккаунты не показывают рекламу и требуют собственного тестового управляющего аккаунта. В них нет данных о результатах, поэтому для сервера только для чтения они лишь доказывают, что соединение работает |
Два из этих замков важнее всего, когда вы добавляете сторонний сервер с инструментами записи: осторожность с чужим текстом и тестовый аккаунт. Какие ограничители нужны в этом случае, описано в нашей статье ИИ-агенты, которые меняют ваш кабинет.
Ограничения, с которыми вы столкнётесь в первую неделю
Ответы, которые не помещаются. Инструмент search возвращает каждую строку, если модель не задала лимит. Claude Code предупреждает, когда вывод инструмента превышает 10 000 токенов. Выше 25 000 токенов по умолчанию он сохраняет результат в файл и передаёт Claude путь к нему.
Пример на вымышленном магазине, числа не клиентские.
У магазина посуды 3 000 товаров, и 1 200 из них получили показы в этом месяце. Отчёт с одной строкой на товар в день за 30 дней может вернуть до 36 000 строк. При лимите в 25 000 токенов на строку остаётся меньше одного токена. Просите итоги по кампаниям или 50 товаров с наибольшим расходом, а не каждую строку.
Квота. На уровне Explorer все, кто пользуется проектом Cloud, включая ассистента, делят 2 880 операций в сутки.
История изменений. Ресурс change_event охватывает только последние 30 дней, и каждому запросу нужен LIMIT не больше 10 000 строк (Change Event). По каждому изменению он показывает старые и новые значения и то, пришло ли изменение через API или через веб-интерфейс. Он также называет пользователя, если его показывает «История изменений».
Поля, которые значат не то, что кажется. Три примера из справочников полей Google для API:
- Деньги приходят в микроединицах: миллион микроединиц равен одной единице валюты аккаунта (справочник campaign_budget).
metrics.all_conversionsсчитает все конверсии, включая действия, которые вы не включили в столбец «Конверсии» (справочник metrics).- Доля потерянных из-за бюджета показов в поиске (Search budget lost impression share) доходит только до 0,9: всё, что выше, API сообщает как 0,9001.
Наша статья про ИИ для анализа Google Ads показывает, как модель неверно читает такие поля, и даёт запросы, которые не дают ей выдумывать числа. В нашем руководстве по GAQL для отчётов по товарам есть готовые запросы по товарам в Shopping и Performance Max.
Сначала чтение, каждая запись с подтверждением: правила из нашего проектного брифа MCP
В апреле 2026 года мы набросали проектный бриф для собственного MCP-сервера Google Ads. Это внутренний черновик, а не описание работающего продукта. Его правила подходят для любой схемы:
- Чтение — первым. Первый этап — только чтение, запись — отдельный более поздний этап.
- Инструмент свободных запросов принимает только
SELECT. Сырой GAQL может только читать данные. - Каждая запись требует явного подтверждения. Инструменты, которые задают лейблы товаров и ставки, ждут «да», а инструмент ставок перед применением нового значения показывает прежнее.
- Изменения структуры проходят через человека. Инструмент формирует CSV для Google Ads Editor, который человек проверяет и импортирует.
- Проект учитывает большие ответы и квоту. У каждого инструмента есть параметр лимита, постраничная выдача и режим сводки. Кэширование и пакетные запросы берегут суточную квоту.
Портал следует той части этих правил, что касается чтения, и вам не нужно запускать никакой сервер. Можно войти отдельным Google-аккаунтом с ролью «Только чтение», и тогда гарантия лежит на стороне Google (как портал читает ваш кабинет).
Портал и самодельное подключение различаются двумя вещами: поддержкой и историей. MCP-подключение вам строить и поддерживать самим, а два года истории магазина в чат не помещаются (портал в сравнении с ChatGPT). При первом подключении портал запрашивает у Google до двух лет истории по товарам. Дальше он хранит собственную копию записей об изменениях, которые API отдаёт только за 30 дней.
Хотите гарантию, а не обещание? Войдите Google-аккаунтом, у которого в вашем кабинете роль «Только чтение». Портал полностью наследует права вошедшего, поэтому изменить что-либо не сможет даже теоретически: Google отклонит попытку — у пользователя недостаточно прав.
Три первых запроса и как проверить ответы
- «К каким аккаунтам у меня есть доступ?» Сравните ID со списком аккаунтов в Google Ads. Лишний ID означает, что Google-аккаунт достаёт дальше, чем вы планировали.
- «Через get_resource_metadata покажи для shopping_performance_view поля расхода, кликов и ценности конверсий.» Собственные инструкции сервера велят модели искать поля, а не угадывать. Этот запрос показывает, делает ли она так.
- «Покажи расход, клики и ценность конверсий по кампаниям за прошлый месяц, 20 кампаний с наибольшим расходом.» Откройте в Google Ads раздел «Кампании» за те же даты и сравните итоги. Если они различаются, проверьте сначала даты, затем микроединицы, затем не использовала ли модель
all_conversions.
Используйте числа ассистента в решениях, когда все три ответа совпадают с тем, что вы видите в Google Ads.
Частые вопросы
Может ли MCP-сервер Google Ads менять мои кампании?
Нет. Google описывает текущую версию как только читающую, и её инструменты вызывают только методы API для чтения. Другие MCP-серверы для Google Ads могут включать инструменты записи. Проверяйте их список инструментов и считайте их собственные пометки «read-only» заявлениями, а не гарантиями.
Работает ли он с ассистентами, кроме Claude?
Да, с любым ассистентом, который поддерживает MCP. В README описана настройка для Antigravity от Google, Codex от OpenAI, Claude Code, Cursor и VS Code.
Нужен ли мне по-прежнему токен разработчика?
Нет. С 9 сентября 2026 года уровень доступа API принадлежит проекту Google Cloud. Если запрос всё ещё содержит токен разработчика, API его игнорирует.
Источники
- Google Ads MCP server: Developer integration guide (на английском) — текущая версия только для чтения, Python, stdio или Cloud Run, OAuth 2.0 или сервисный аккаунт, три инструмента, токен разработчика больше не нужен, блок настроек. Проверено 02.10.2026.
- googleads/google-ads-mcp on GitHub (на английском) — инструменты и ресурсы, примечания о передаче данных и заголовке использования,
tools_config.yaml, изоляция учётных данных, Claude Code и другие клиенты, командаgcloud; исходный код инструментаsearch. Проверено 02.10.2026. - Understand the Google Ads access model (на английском) — одни и те же OAuth-скоупы для чтения и для чтения с записью; API следует ролям пользователей Google Ads; роли передаются через управляющие аккаунты. Проверено 02.10.2026.
- AccessRole (на английском) — что разрешают роли Admin, Standard, Read only и Email only. Проверено 02.10.2026.
- Developer token (на английском) — токены разработчика отключены 9 сентября 2026 года; уровни доступа принадлежат проекту Cloud; верификация бренда для Basic; ошибка доступа Test. Проверено 02.10.2026.
- Access levels and permissible use (на английском) — лимиты Test, Explorer, Basic и Standard; как подать заявку на Explorer; скользящие сутки в 24 часа. Проверено 02.10.2026.
- API limits and quotas (на английском) — один запрос Search или SearchStream считается одной операцией. Проверено 02.10.2026.
- Test accounts (на английском) — тестовые аккаунты не показывают рекламу и требуют отдельной иерархии тестовых управляющих аккаунтов. Проверено 02.10.2026.
- Change Event (на английском) — окно 30 дней,
LIMITв 10 000 строк, старые и новые значения, пользователь и тип клиента. Проверено 02.10.2026. - Metrics reference и campaign_budget reference (на английском) —
all_conversions, потолок 0,9 для доли потерянных из-за бюджета показов в поиске, микроединицы. Проверено 02.10.2026. - What is the Model Context Protocol (MCP)? и Tools in the MCP specification (на английском) — определение MCP; человек в контуре; аннотации инструментов недостоверны, если сервер не доверенный. Проверено 02.10.2026.
- Connect to local MCP servers (на английском) — файл настроек Claude Desktop и файлы журналов сервера. Проверено 02.10.2026.
- Connect Claude Code to tools via MCP и Claude Code security (на английском) —
claude mcp add, области установки, лимиты вывода в 10 000 и 25 000 токенов, prompt injection. Проверено 02.10.2026. - Проектный бриф MCP-сервера GetProfit, апрель 2026 (внутренний черновик) — сначала чтение, сырые запросы только
SELECT, подтверждаемые записи, CSV для Editor по структуре, лимиты и постраничная выдача.
Ещё по теме
Автоматизация Google Ads: что отдать, а что решать самим
Какие задачи в Google Ads магазин отдаёт Smart Bidding, правилам, скриптам и ИИ-агентам, а какие решения, например цели и бюджеты, остаются за человеком.
Отчёты Google Ads: какие числа, как часто и для кого
Как собрать отчёт Google Ads, по которому магазин принимает решения: месячная страница показывает, чем изменился оборот — расходом или ROAS.
Дашборд Google Ads в Looker Studio для интернет-магазина
Соберите дашборд Looker Studio, который покажет, куда уходит бюджет Google Ads магазина по товарам, и найдите товары, которых коннектор не видит.
Аудит Google Ads для интернет-магазина: порядок проверок
Почему аудит Google Ads магазина начинается с отслеживания, что проверять дальше и как оценить в деньгах каждую находку, например расход на товары без продаж.