เซิร์ฟเวอร์ MCP ของ Google Ads: คู่มือการผสานรวมสำหรับนักพัฒนาซอฟต์แวร์

Model Context Protocol (MCP) เป็นมาตรฐานแบบเปิดที่ช่วยให้ Large Language Model (LLM) โต้ตอบกับข้อมูลและแอปพลิเคชันภายนอกได้อย่างปลอดภัย เซิร์ฟเวอร์ Google Ads MCP เป็นสะพานเชื่อมมาตรฐานกับ Google Ads API ซึ่งช่วยให้ AI Agent วิเคราะห์และดึงข้อมูลแคมเปญโดยใช้ภาษาธรรมชาติได้

แหล่งข้อมูลและการสนับสนุนจากชุมชน

  • ที่เก็บ GitHub: ค้นหาการสาธิต ตัวอย่าง และรายงานข้อบกพร่องหรือแนะนำ ฟีเจอร์ในที่เก็บ google-ads-mcp

    ใช้แท็บ Issues เพื่อรายงานข้อบกพร่อง และส่งคำขอฟีเจอร์

  • ชุมชน: เข้าร่วมแชแนล #ads-api-ai-tools ใน Google Advertising Community Discord

ภาพรวมด้านเทคนิค

การติดตั้งใช้งานเซิร์ฟเวอร์ MCP นี้จะช่วยให้คุณไม่ต้องเขียน "โค้ดกาว" ที่กำหนดเองสำหรับการตรวจสอบสิทธิ์ Google Ads API, การดึงข้อมูลทรัพยากร และการแยกวิเคราะห์ข้อมูล เซิร์ฟเวอร์จะแสดงเครื่องมือ เฉพาะที่ LLM ค้นพบและเรียกใช้ได้โดยอัตโนมัติ

ข้อกำหนดที่สำคัญ

  • โปรโตคอล: MCP (Model Context Protocol)
  • โหมด: อ่านอย่างเดียว (เวอร์ชันปัจจุบัน)
  • ภาษา: Python
  • การรับส่ง: อินพุต/เอาต์พุตมาตรฐาน (stdio) หรือ HTTP ที่สตรีมได้ (streamable-http / Cloud Run)
  • การตรวจสอบสิทธิ์: OAuth 2.0 หรือบัญชีบริการ

วิธีการทำงานของลูปการโต้ตอบ

  1. คำขอ: ผู้ใช้ส่งคำค้นหา เช่น "ประสิทธิภาพของแคมเปญของฉัน ในสัปดาห์นี้เป็นอย่างไรบ้าง"
  2. การค้นพบ: LLM จะตรวจสอบเครื่องมือที่พร้อมใช้งานและระบุความสามารถในการค้นหา google-ads-mcp
  3. การดำเนินการ: เซิร์ฟเวอร์ MCP จะเรียกใช้ตรรกะ Python ที่อยู่เบื้องหลังเพื่อค้นหา Google Ads API
  4. การแทรกบริบท: ระบบจะส่งคืนผลลัพธ์ที่มีโครงสร้างไปยังหน้าต่างบริบทของ LLM
  5. คำตอบ: LLM จะสังเคราะห์ข้อมูลเป็นคำตอบที่มนุษย์อ่านได้

เริ่มต้นใช้งาน

ทำตามขั้นตอนต่อไปนี้เพื่อกำหนดค่าและใช้เซิร์ฟเวอร์ Google Ads MCP

ข้อกำหนดเบื้องต้น

ก่อนการกำหนดค่า โปรดตรวจสอบว่าคุณมีข้อมูลเข้าสู่ระบบต่อไปนี้จาก Google คอนโซล Cloud:

การกำหนดค่า

หากต้องการผสานรวมเซิร์ฟเวอร์เข้ากับโฮสต์ที่เข้ากันได้กับ MCP ให้เพิ่มรายการต่อไปนี้ลงในไฟล์การกำหนดค่า MCP ของโฮสต์ เช่น settings.json และชี้ GOOGLE_APPLICATION_CREDENTIALS ไปยังไฟล์ JSON ของ ADC (หรือกำหนดค่า ADC เริ่มต้นด้วย gcloud auth application-default login) หากคุณเข้าถึงบัญชีผ่านบัญชีดูแลจัดการ คุณยังตั้งค่า GOOGLE_ADS_LOGIN_CUSTOMER_ID ได้ด้วย โปรดดูตำแหน่งและชื่อไฟล์ที่แน่นอนของการกำหนดค่านี้ในเอกสารประกอบของโฮสต์

{
  "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"
      }
    }
  }
}

การติดตั้งใช้งานบน Google Cloud

คุณสามารถโฮสต์เซิร์ฟเวอร์ MCP นี้บน Google Cloud Run หรือโครงสร้างพื้นฐานระบบคลาวด์อื่นๆ แทนการโฮสต์ในเครื่อง ซึ่งจะเป็นประโยชน์หากคุณต้องการแชร์เซิร์ฟเวอร์ระหว่าง Agent ต่างๆ หรือเรียกใช้เป็นบริการเว็บ

ข้อกำหนดเบื้องต้น

  1. โปรเจ็กต์ Google Cloud
  2. ติดตั้งและตรวจสอบสิทธิ์เครื่องมือบรรทัดคำสั่ง gcloud แล้ว และกำหนดค่าโปรเจ็กต์ที่ใช้งานอยู่ ดังนี้

    gcloud config set project YOUR_PROJECT_ID
    

สร้างและพุชอิมเมจ Docker

คุณสามารถใช้ Cloud Build เพื่อสร้างและพุชอิมเมจไปยัง Artifact Registry โดยไม่ต้องติดตั้ง Docker ในเครื่อง

  1. สร้างที่เก็บใน Artifact Registry โดยทำดังนี้

    gcloud artifacts repositories create mcp-servers \
      --repository-format=docker --location=us-central1
    
  2. ไปที่ไดเรกทอรีโปรเจ็กต์

    cd <full path>/google-ads-mcp
    
  3. สร้างและส่งอิมเมจโดยทำดังนี้

    gcloud builds submit \
      --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/mcp-servers/google-ads-mcp:latest .
    

    โปรดทราบว่าคุณต้องทำตามขั้นตอนนี้ทุกครั้งที่ต้องการอัปเดตเซิร์ฟเวอร์ที่ติดตั้งใช้งานเป็นเวอร์ชันล่าสุด

ทำให้ใช้งานได้กับ Google Cloud Run

อย่าลืมตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็น ดังนี้

  • GOOGLE_PROJECT_ID: รหัสโปรเจ็กต์ Google Cloud ซึ่งมีระดับการเข้าถึง API ที่เหมาะสม
  • GOOGLE_ADS_MCP_OAUTH_CLIENT_ID: รหัสไคลเอ็นต์ OAuth 2.0 (กำหนดค่าเป็นเว็บแอปพลิเคชัน ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google) สำหรับการตรวจสอบสิทธิ์ OAuth ระดับแอปพลิเคชัน ตรวจสอบว่าคุณได้ดำเนินการต่อไปนี้
    • เพิ่ม URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตที่เหมาะสมสำหรับไคลเอ็นต์ AI ที่คุณวางแผนจะเชื่อมต่อ (เช่น https://claude.ai/api/mcp/auth_callback, https://chatgpt.com/connector_platform_oauth_redirect หรือ https://antigravity.google/oauth-callback)
    • เพิ่มขอบเขต https://www.googleapis.com/auth/adwords ลงในหน้าจอขอความยินยอม OAuth ในส่วนAPI และบริการ > หน้าจอขอความยินยอม OAuth > การเข้าถึงข้อมูล (เพิ่มหรือนำขอบเขตออก)
    • หากสถานะการเผยแพร่หน้าจอขอความยินยอม OAuth ตั้งค่าเป็นการทดสอบ (ค่าเริ่มต้น) คุณได้เพิ่มบัญชี Google ที่เชื่อมต่อกับเซิร์ฟเวอร์ MCP เป็นผู้ใช้ทดสอบ ในส่วนAPI และบริการ > หน้าจอขอความยินยอม OAuth > กลุ่มเป้าหมาย (ผู้ใช้ทดสอบ > + เพิ่มผู้ใช้)
  • GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET: รหัสลับไคลเอ็นต์ OAuth ที่สอดคล้องกับรหัสไคลเอ็นต์ OAuth
  • GOOGLE_ADS_MCP_BASE_URL: URL ฐานสาธารณะที่เข้าถึงเซิร์ฟเวอร์ MCP ได้ (เช่น https://google-ads-mcp-xyz-uc.a.run.app) เนื่องจาก Google Cloud Run จะสร้าง URL นี้ระหว่างการติดตั้งใช้งานครั้งแรก ให้ติดตั้งใช้งานโดยไม่มีตัวแปรนี้ก่อน แล้วอัปเดตบริการหลังการติดตั้งใช้งาน
  • FASTMCP_HOST: ตั้งค่าเป็น 0.0.0.0 เพื่ออนุญาตให้ FastMCP ยอมรับการเชื่อมต่อจากที่อยู่ IP ทั้งหมด

ติดตั้งใช้งานบริการกับ Google Cloud Run โดยทำดังนี้

gcloud run deploy google-ads-mcp \
  --image us-central1-docker.pkg.dev/YOUR_PROJECT_ID/mcp-servers/google-ads-mcp:latest \
  --platform managed \
  --region us-central1 \
  --allow-unauthenticated \
  --set-env-vars="GOOGLE_PROJECT_ID=YOUR_PROJECT_ID,GOOGLE_ADS_MCP_OAUTH_CLIENT_ID=YOUR_CLIENT_ID,GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET=YOUR_CLIENT_SECRET,FASTMCP_HOST=0.0.0.0"

หลังจาก Cloud Run ติดตั้งใช้งานเสร็จแล้ว ให้ดึงข้อมูล URL ของบริการที่กำหนดและอัปเดตบริการด้วยตัวแปรสภาพแวดล้อม GOOGLE_ADS_MCP_BASE_URL โดยทำดังนี้

gcloud run services update google-ads-mcp \
  --region us-central1 \
  --update-env-vars="GOOGLE_ADS_MCP_BASE_URL=https://your-cloud-run-url.a.run.app"

โมเดลการตรวจสอบสิทธิ์และความปลอดภัย

การติดตั้งใช้งานด้วย --allow-unauthenticated จะปิดใช้การตรวจสอบ IAM ระดับโครงสร้างพื้นฐานของ Cloud Run (roles/run.invoker) เพื่อให้ไคลเอ็นต์ AI ภายนอกเชื่อมต่อได้โดยไม่ต้องใช้โทเค็นบัญชีบริการ Google Cloud ระบบจะมอบสิทธิ์การตรวจสอบสิทธิ์ให้กับเลเยอร์ของแอปพลิเคชัน แทน โดยทำดังนี้

  • เมื่อมีการระบุ GOOGLE_ADS_MCP_OAUTH_CLIENT_ID และ GOOGLE_ADS_MCP_OAUTH_CLIENT_SECRET เซิร์ฟเวอร์ MCP จะบังคับใช้ Google OAuth 2.0 กับคำขอขาเข้าทั้งหมด โดยจะแจ้งให้ผู้โทรที่ไม่ได้รับการตรวจสอบสิทธิ์ทราบด้วยการตอบกลับ HTTP 401 คำขอเครื่องมือทั้งหมดจะดำเนินการภายใต้ข้อมูลประจำตัว OAuth ของผู้โทรที่ได้รับการตรวจสอบสิทธิ์เท่านั้น
  • การละเว้น --allow-unauthenticated จะบังคับใช้ IAM โครงสร้างพื้นฐานของ Cloud Run ซึ่งกำหนดให้ผู้โทรต้องส่งโทเค็นข้อมูลประจำตัว OIDC ของ Google Cloud ไปกับคำขอแต่ละรายการ เนื่องจากไคลเอ็นต์ AI มาตรฐาน (เช่น Claude และ ChatGPT) จะตรวจสอบสิทธิ์โดยใช้ OAuth ของผู้ใช้ปลายทางแทนโทเค็นข้อมูลประจำตัว IAM ของ Google Cloud การเชื่อมต่อโดยตรงจากแพลตฟอร์มเหล่านี้จึงต้องใช้ --allow-unauthenticated กับ OAuth ระดับแอปพลิเคชัน

กำหนดค่าไคลเอ็นต์ MCP

หลังจากติดตั้งใช้งานแล้ว ให้กำหนดค่าไคลเอ็นต์ MCP ด้วย URL ของ Cloud Run เนื่องจากเซิร์ฟเวอร์ต้องใช้การตรวจสอบสิทธิ์ OAuth 2.0 ไคลเอ็นต์จึงต้องรองรับโฟลว์ OAuth ของ MCP หรือระบุโทเค็นสำหรับผู้ถือที่ได้รับอนุญาต

  • ไคลเอ็นต์ที่เปิดใช้ OAuth: สำหรับไคลเอ็นต์ที่รองรับการค้นพบ OAuth ของ MCP (เช่น Antigravity) การเชื่อมต่อกับปลายทางจะทริกเกอร์ข้อความแจ้งการตรวจสอบสิทธิ์ให้ลงชื่อเข้าใช้ด้วย Google และให้สิทธิ์ขอบเขต https://www.googleapis.com/auth/adwords (แสดงเป็น .../auth/adwords ในคอนโซล Google Cloud)
  • แพลตฟอร์ม AI ของบุคคลที่สาม (Claude, ChatGPT): ในการตั้งค่าตัวเชื่อมต่อ หรือการผสานรวมของไคลเอ็นต์ ให้เพิ่มตัวเชื่อมต่อที่กำหนดเองซึ่งชี้ไปยัง URL ของ Cloud Run ที่มีเส้นทาง /mcp (เช่น https://your-cloud-run-url.a.run.app/mcp) เลือกการตรวจสอบสิทธิ์ OAuth 2.0 (โดยใช้รหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ OAuth ของคุณเอง) และตรวจสอบว่าได้เพิ่ม URI การเรียกกลับของไคลเอ็นต์ลงใน URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตของไคลเอ็นต์ OAuth แล้ว (ผู้เข้าร่วมที่ได้รับอนุญาตของโปรแกรมนำร่องปลายทางที่โฮสต์ยังดู คู่มือการตั้งค่า MCP ที่โฮสต์ได้ด้วย)
  • ไคลเอ็นต์ที่ไม่รองรับ OAuth: ไคลเอ็นต์ที่ไม่รองรับโฟลว์ OAuth ของ HTTP จะได้รับการตอบกลับ HTTP 401 Unauthorized สำหรับเครื่องมือเหล่านี้ ให้ใช้ การกำหนดค่า stdio ในเครื่องแทน

ตัวอย่างการกำหนดค่าสำหรับไคลเอ็นต์ที่รองรับ OAuth (เช่น ~/.gemini/settings.json)

{
  "mcpServers": {
    "google-ads-mcp": {
      "httpUrl": "https://your-cloud-run-url.a.run.app/mcp"
    }
  }
}

ความสามารถหลัก (เครื่องมือ)

เซิร์ฟเวอร์จะแสดงเครื่องมือที่ออกแบบมาสำหรับการค้นพบบัญชีและการรายงานประสิทธิภาพ ดังนี้

  • list_accessible_customers: แสดงรายการรหัสลูกค้า Google Ads และชื่อบัญชีที่ผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์เข้าถึงได้
  • search: เรียกใช้คำขอ Google Ads Query Language (GAQL) เพื่อดึงข้อมูลเมตริกทรัพยากร งบประมาณ และสถานะ
  • get_resource_metadata: ดึงข้อมูลเมตาเกี่ยวกับประเภททรัพยากร Google Ads API เช่น "campaign"

    ซึ่งจะเป็นประโยชน์ในการทำความเข้าใจโครงสร้างของข้อมูลและฟิลด์ที่ใช้ได้สำหรับการค้นหา

ตัวอย่างพรอมต์เพื่อเริ่มต้นใช้งาน

ถามสิ่งที่เซิร์ฟเวอร์ทำได้:

What can the google-ads-mcp server do?

ถามเกี่ยวกับลูกค้า:

What customers do I have access to?

ถามเกี่ยวกับแคมเปญ:

How many active campaigns do I have?
How is my campaign performance this week?
Give me a report of the top spending campaigns split by device category over the
last 7 days for account 1234567890