← กลับผลงานทั้งหมด
🤖

Google Ads MCP

DEV

MCP Server ให้ Claude คุยกับ Google Ads API โดยตรง

Node.jsMCP SDKGoogle Ads APIClaude CodeESM

// ความตั้งใจ
การวิเคราะห์ Google Ads ปกติต้องเปิด dashboard แล้วนั่งดูตารางทีละตัว — อยากถามว่า "แคมเปญนี้ช่วงนี้เป็นยังไง" แล้วได้คำตอบทันทีพร้อม insight สร้าง MCP server ที่ให้ Claude Code เชื่อมต่อ Google Ads API ได้โดยตรง — ถามด้วยภาษาธรรมชาติ ได้ข้อมูล performance, keyword, search terms และ recommendation แบบ real-time
// ปัญหาที่แก้

Google Ads Dashboard ไม่ตอบคำถาม high-level ได้ ต้องนั่งกรองตารางเองทุกครั้ง — ไม่มี conversational interface

// Architecture
architecture
Claude Code
      │  MCP Protocol (stdio)
      ▼
  google-ads-mcp/index.js
      │  Google Ads API v17
      ▼
  Google Ads Account
      ├── Campaigns
      ├── Ad Groups
      ├── Keywords
      └── Search Terms

// ฟีเจอร์หลัก
01

list_campaigns

ดึงแคมเปญทั้งหมดพร้อมสถานะ budget และ type — กรองตาม ENABLED/PAUSED/REMOVED

02

get_campaign_performance

impressions, clicks, cost, conversions, ROAS ในช่วงวันที่กำหนด — แยกตาม campaign หรือดูรวมได้

03

get_keywords

keyword performance report พร้อม Quality Score, avg CPC, และ CTR — ระบุ keyword ที่ควร pause หรือ bid เพิ่ม

04

get_search_terms

Search Terms Report — คำที่ user พิมพ์จริงๆ เพื่อหา negative keyword ที่ควรเพิ่ม

05

get_account_summary

ภาพรวมทั้ง account: total spend, clicks, impressions, conversions ในช่วงเวลาที่กำหนด

06

list_accounts

ดู Google Ads accounts ทั้งหมดใน MCC — สำหรับ agency ที่ดูแลหลาย client


// Code
index.js — MCP tool handlerjavascript
server.setRequestHandler(CallToolRequestSchema, async (req) => {
  const { name, arguments: args } = req.params;
  const customer = getCustomer(args.customer_id);

  if (name === "get_campaign_performance") {
    const report = await customer.report({
      entity: "campaign",
      attributes: ["campaign.id", "campaign.name"],
      metrics: ["metrics.impressions", "metrics.clicks",
                "metrics.cost_micros", "metrics.conversions"],
      constraints: {
        "segments.date": {
          GTE: args.start_date,
          LTE: args.end_date,
        },
      },
    });
    return { content: [{ type: "text", text: JSON.stringify(report) }] };
  }
});

// Commands
start$node index.js
claude config$claude mcp add google-ads-mcp -- node /path/to/index.js

// ผลลัพธ์

Claude Code วิเคราะห์ Google Ads campaign ได้ด้วยภาษาไทย — ถามแล้วได้ insight + คำแนะนำทันที ไม่ต้องเปิด dashboard


← ผลงานทั้งหมด