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

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

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

ภาพรวมทางเทคนิค

การใช้เซิร์ฟเวอร์ 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 สังเคราะห์ข้อมูลเป็นคำตอบที่มนุษย์อ่านได้

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

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

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

ก่อนกำหนดค่า โปรดตรวจสอบว่าคุณมีข้อมูลเข้าสู่ระบบต่อไปนี้จากคอนโซล 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"
      }
    }
  }
}

ไม่บังคับ: เพิ่มทักษะและผู้ช่วยนักพัฒนาซอฟต์แวร์ให้กับ Agent

เซิร์ฟเวอร์ MCP ของ Google Ads ให้สิทธิ์เข้าถึงข้อมูลบัญชีแบบเรียลไทม์ในระดับอ่านอย่างเดียวแก่ไคลเอ็นต์ AI หากต้องการช่วยให้ Agent สร้างคำค้นหา Google Ads Query Language (GAQL) ที่ถูกต้อง วิเคราะห์การเปลี่ยนแปลงด้านประสิทธิภาพของบัญชี และสร้างโค้ดไลบรารีของไคลเอ็นต์ ให้จับคู่เซิร์ฟเวอร์ MCP กับเครื่องมือที่ใช้ร่วมกันต่อไปนี้

  • ทักษะของ Agent สำหรับ Google Ads API: โมดูลแบบพกพาของวิธีการและเวิร์กโฟลว์เฉพาะสำหรับ Google Ads API ซึ่งรวมถึง google-ads-api-mcp-setup, google-ads-api-account-diagnostics และ google-ads-api-quickstart ที่จะสอน Agent ของคุณถึงวิธีใช้เซิร์ฟเวอร์ MCP ของ Google Ads อย่างมีประสิทธิภาพโดยใช้โอเวอร์เฮดของโทเค็นน้อยลง ติดตั้งด้วยคำสั่งเดียว (ต้องใช้ Node.js) หรือดูคู่มือทักษะของ Agent สำหรับ Google Ads API สำหรับตัวเลือก Antigravity, Claude Code, Codex และ Cursor

    npx skills add google/skills/skills/ads
    
  • ผู้ช่วยนักพัฒนาซอฟต์แวร์ Google Ads API: ปลั๊กอินแบบโมดูลสำหรับ Google Antigravity และ Claude Code ที่ให้การตรวจสอบสคีมา Protobuf ในเครื่อง, การตรวจสอบ GAQL แบบเป็นโปรแกรม, การสร้างโค้ดไลบรารีของไคลเอ็นต์ (รวมถึงสคริปต์การเปลี่ยนแปลง) และการแก้ปัญหา Conversion ออฟไลน์ ดูวิธีการทำงานได้ในผู้ช่วยนักพัฒนาซอฟต์แวร์ Google Ads API คืออะไร หรือทำตามคู่มือการติดตั้ง

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

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

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

  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 ซึ่งมีระดับการเข้าถึง 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 เป็นผู้ใช้ทดสอบในส่วน APIs & Services > OAuth consent screen > Audience (Test users > + Add users)
  • 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 ของผู้ใช้ปลายทางแทนโทเค็นข้อมูลประจำตัว Cloud IAM ของ Google Cloud การเชื่อมต่อโดยตรงจากแพลตฟอร์มเหล่านี้จึงต้องใช้ --allow-unauthenticated กับ OAuth ระดับแอปพลิเคชัน

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

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

  • ไคลเอ็นต์ที่เปิดใช้ OAuth: สำหรับไคลเอ็นต์ที่รองรับการค้นพบ MCP OAuth (เช่น 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 Callback ของไคลเอ็นต์ลงใน URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตของไคลเอ็นต์ OAuth แล้ว (ผู้เข้าร่วมที่อยู่ในรายการที่อนุญาตของโปรแกรมนำร่องปลายทางที่โฮสต์สามารถดูคู่มือการตั้งค่า MCP ที่โฮสต์ได้ด้วย)
  • ไคลเอ็นต์ที่ไม่มีการรองรับ OAuth: ไคลเอ็นต์ที่ไม่รองรับโฟลว์ HTTP OAuth จะได้รับการตอบกลับ 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: ดำเนินการตามคำขอ 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

ขั้นตอนถัดไป