Письменная инструкция · Google Ads и ИИ
Создайте небольшой MCP для чтения Google Ads
Подключите один разрешённый аккаунт, прочитайте его параметры и проверьте результат до добавления отчётов.
Это учебный сервер с одним инструментом. Он не включает редактирование кампаний, облачный сервис или полный платный набор.
1 · Проверьте требования
Потребуются локальное ИИ-приложение с поддержкой stdio MCP, среда Python и разрешение на доступ к аккаунту Google Ads. Храните ключи вне сайта, чата и репозитория. Набор сайта проверен на macOS с Python 3.14; другие среды требуют отдельной проверки.
2 · Подготовьте авторизацию Google Ads
Получите developer token с доступом для вашего аккаунта. Для этого примера с OAuth пользователя следуйте инструкции Google для Python: создайте данные клиента и refresh token. Сохраните их в закрытом google-ads.yaml. Для соответствующего доступа через управляющий аккаунт укажите login_customer_id; ID аккаунта запроса задаётся отдельно.
Инструкция Google по авторизации · Требования к developer token
3 · Создайте отдельную среду
python3 -m venv .venv
.venv/bin/python -m pip install 'google-ads==31.0.0' 'mcp>=1.2,<2'
Команды используют POSIX-оболочку. Сохраните следующий код как server.py. Версия библиотеки Google Ads зафиксирована; запишите установленную версию MCP при проверке среды.
import os
from google.ads.googleads.client import GoogleAdsClient
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("google-ads-readonly")
@mcp.tool()
def account_summary() -> dict:
"""Read metadata for the single account configured by the owner."""
customer_id = os.environ["GOOGLE_ADS_CUSTOMER_ID"]
if not customer_id.isdigit():
raise ValueError("Use the customer ID without hyphens")
client = GoogleAdsClient.load_from_storage(os.environ["GOOGLE_ADS_CONFIG"])
service = client.get_service("GoogleAdsService")
response = service.search(customer_id=customer_id, query="""
SELECT customer.id, customer.currency_code, customer.time_zone
FROM customer LIMIT 1
""")
row = next(iter(response), None)
if row is None:
return {"found": False}
return {"customer_id": str(row.customer.id),
"currency": row.customer.currency_code,
"time_zone": row.customer.time_zone}
if __name__ == "__main__":
mcp.run(transport="stdio")4 · Добавьте локальный сервер в ИИ-приложение
В настройках локального MCP укажите абсолютный путь к .venv/bin/python как команду и путь к server.py как аргумент. GOOGLE_ADS_CONFIG должен указывать на закрытый YAML, а GOOGLE_ADS_CUSTOMER_ID содержать ID разрешённого аккаунта без дефисов. Используйте формат настроек своего приложения: локальный процесс stdio нельзя вставить в поле URL удалённого сервера.
Документация MCP Python SDK v1
5 · Проверьте одно чтение до расширения
Попросите ассистента вызвать account_summary. Сверьте ID, валюту и часовой пояс с аккаунтом в Google Ads. При несовпадении остановитесь. Пример не предоставляет изменение данных или произвольный запрос, но сами ключи сохраняют права, выданные Google.
Код является учебным примером. Локальные проверки не доказывают корректность ваших OAuth, токена или настроек приложения. При ошибке проверьте доступ токена, права пользователя, управляющий аккаунт и журнал приложения, не раскрывая ключи.
6 · Добавьте отчёт с понятными правилами
Начните с фиксированного отчёта для чтения, завершённого периода и явных полей. Укажите валюту, часовой пояс аккаунта и определение конверсии. Сверьте итоги с Google Ads до выводов. Не превращайте текст модели в неограниченный запрос или изменение кампаний.
Выберите следующий шаг
Попробуйте шаблон отчёта, изучите полный набор или обсудите настройку своей среды.