auto-geo

ทางการ

เครื่องมือเผยแพร่เนื้อหาที่ปรับแต่งตามภูมิศาสตร์เพื่อเพิ่มการมองเห็นสำหรับ AI

GitHub
23
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย Auto Geo MCP?

  • ตรวจสอบความพร้อมของการอ้างอิง — รัน doctor บน URL ใดก็ได้เพื่อให้คะแนนสถานะ GEO ผ่านการตรวจสอบ 8 รายการ เช่น JSON-LD ความหนาแน่นของเอนทิตี และ H2 ในรูปแบบคำถาม
  • สร้างเพจที่ปรับแต่งแล้ว — ใช้ write พร้อมคิวรีเป้าหมายเพื่อสร้างเพจ JSON ที่ผ่านการตรวจสอบและพร้อมเผยแพร่ ซึ่งเป็นไปตามสถาปัตยกรรม GEO อย่างครบถ้วน
  • เขียนเนื้อหาที่มีอยู่ใหม่ — ใช้ fix กับเพจใดก็ได้เพื่อรับการเขียนใหม่ที่ปรับแต่งตาม GEO ซึ่งผ่านการตรวจสอบทั้ง 8 รายการ
  • ติดตามความครอบคลุมของการอ้างอิง — รัน check กับเอ็นจิน AI จริง (Perplexity, OpenAI, Gemini ฯลฯ) เพื่อดูว่าโดเมนของคุณถูกอ้างอิงจริงสำหรับพรอมป์ที่ติดตามหรือไม่
  • ติดตามแนวโน้มเมื่อเวลาผ่านไป — ใช้ history เพื่อดูการเปลี่ยนแปลงความครอบคลุมในแต่ละรอบ รวมถึงพรอมป์ที่ถูกอ้างอิงใหม่หรือสูญหายต่อเอ็นจิน
  • จัดการพรอมป์ที่ติดตาม — เพิ่ม ดูรายการ หรือลบพรอมป์ด้วย prompts หรือใช้ prompts discover เพื่อให้ LLM เสนอคิวรีที่มีความตั้งใจสูงเพื่อแข่งขัน

เอกสาร

auto-geo

CI npm version License: MIT Built by Shadow Downloads TypeScript Node Docs llms.txt

เอ็นจิน GEO แบบโอเพนซอร์สที่ทำให้แบรนด์ของคุณถูกกล่าวถึงใน ChatGPT, Claude, Gemini, Perplexity และ Grok

ตรวจสอบ สร้าง แก้ไข และติดตามหน้าที่โมเดลภาษาขนาดใหญ่อ้างอิง — เครื่องมือ CLI เดียว ใช้ไฟล์เป็นฐาน อยู่ภายใต้สัญญาอนุญาต MIT

เมื่อมีคนถามคำถามกับ ChatGPT, Perplexity, Claude, Gemini หรือ Google AI Overviews ที่ธุรกิจของคุณควรเป็นผู้ตอบ เอ็นจินเหล่านั้นอ้างอิง โดเมน ของคุณหรือไม่? auto-geo คือวงจรครบวงจรที่ทำให้สิ่งนั้นเกิดขึ้นและพิสูจน์ว่ามันกำลังเกิดขึ้น:

auto-geo init      # set up the system once
auto-geo doctor    # audit any page for citation readiness
auto-geo write     # generate publish-ready pages from target queries
auto-geo fix       # rewrite an existing page so it passes the audit
auto-geo check     # measure: do AI engines actually cite you?
auto-geo history   # track citation coverage over time

auto-geo demo — tracked prompts, live citation check across AI engines, and coverage history

ทุกอย่างใช้ไฟล์เป็นฐานและสามารถ commit ได้ — โปรแกรมติดตามที่ถูกติดตาม ประวัติการตรวจสอบ การตั้งค่า ไม่มีเซิร์ฟเวอร์ ไม่มีบัญชี ไม่มีฐานข้อมูล ห่างแค่การติดตั้งครั้งเดียว:

npm i -g auto-geo

สร้างโดย Shadow — ห้องปฏิบัติการวิจัยสื่อที่กำลังสร้างสื่ออัจฉริยะและเทคโนโลยีการสื่อสารยุคถัดไป ร่วมกับทีมที่ทำให้ OpenAI, TikTok, Meta, Amazon และ Lovable เป็นที่รู้จัก Shadow ใช้ auto-geo เพื่อเผยแพร่ที่ shadow.inc/resources


สารบัญ


เริ่มต้นอย่างรวดเร็ว

# 0. Install once (or run any command one-shot via \`npx auto-geo@latest\`)
npm i -g auto-geo

# 1. Set up — config, .env.local key slots, and the .auto-geo workspace
auto-geo init

# 2. Add an API key to .env.local (auto-loaded by every command)

# 3. Audit any page — yours or a competitor's
auto-geo doctor https://example.com/some-page

# 4. Track the prompts you want AI engines to cite you for
auto-geo prompts add "best media monitoring tools" "what is GEO"

# 5. Measure — every run is saved to history automatically
auto-geo check

# 6. Watch coverage move over time
auto-geo history

ต้องใช้ Node >=18.17 การอัปเกรดในภายหลังคือ npm i -g auto-geo@latest วิธีอื่นในการเริ่ม:

brew install shadowresearch/tap/auto-geo   # Homebrew (macOS / Linux)
mise use -g npm:auto-geo                   # mise

ไฟล์ปฏิบัติการแบบสแตนด์อโลน (ไม่ต้องใช้ Node) สำหรับ macOS, Linux และ Windows มาพร้อมกับทุก release


GEO คืออะไร?

Generative Engine Optimization คือศาสตร์แห่งการทำให้หน้าของคุณเป็นหน้าที่เอ็นจินค้นหา AI อ้างอิงเมื่อพวกเขาตอบคำถาม มันคือผู้สืบทอดของ SEO: แทนที่จะจัดอันดับในรายการลิงก์ คุณกำลังแข่งขันเพื่อ ถูกอ้างอิงภายในคำตอบ

หน้าที่ชนะไม่ใช่บทความบล็อก งานวิจัยเชิงประจักษ์เชื่อมโยงความน่าจะเป็นในการถูกอ้างอิงกับรูปแบบเฉพาะ:

  1. สถาปัตยกรรม ไม่ใช่ร้อยแก้ว บล็อกที่มีชื่อและผ่านการตรวจสอบ — TL;DR, บทนำ, ส่วน H2 ในรูปแบบคำถาม, คู่มือที่เกี่ยวข้อง, ประเด็นสำคัญ, FAQ, การเปิดเผยข้อมูล เอ็นจิน AI แยกส่วนที่มีโครงสร้าง โครงสร้างที่เข้มงวดช่วยเพิ่มประสิทธิภาพการแยกข้อมูล
  2. ตอบก่อน ทุกส่วนเปิดด้วย "แคปซูลคำตอบ" ความยาว 40–60 คำที่ตอบคำถามของส่วนนั้นอย่างสมบูรณ์ก่อนย่อหน้าสนับสนุนใดๆ
  3. หัวข้อในรูปแบบคำถาม H2 เขียนเป็นคำถามที่ผู้ใช้ถามเอ็นจิน AI จริงๆ
  4. หนาแน่นด้วยเอนทิตี เอนทิตีที่มีชื่อ (บริษัท บุคคล ผลิตภัณฑ์) ที่ความหนาแน่นสูง — เชื่อมโยงกับความน่าจะเป็นในการถูกอ้างอิงที่สูงขึ้น ~4.8 เท่า
  5. มาจาก schema Article + FAQPage JSON-LD ที่สร้างจากโครงสร้าง ไม่ได้เขียนด้วยมือ

auto-geo เข้ารหัสรูปแบบนี้ใน schema ที่เข้มงวด (ดู docs/sop.md — ขั้นตอนการปฏิบัติงานมาตรฐานฉบับเต็ม) ตรวจสอบ URL ใดๆ กับมัน สร้างหน้าใหม่ที่สอดคล้องกับมัน จากนั้นปิดวงจรด้วยการวัดว่าเอ็นจินอ้างอิงคุณจริงหรือไม่


ขั้นตอนการทำงาน

┌──────────────────────────────────────────────────────┐
       │                    auto-geo init                     │
       │   config · .env.local · .auto-geo/ workspace         │
       └──────────────────────────────────────────────────────┘
             │
  ┌──────────┼──────────────┬─────────────────┐
  ▼          ▼              ▼                 ▼
doctor     write           fix             prompts
audit a    generate        rewrite an      track the queries
page       new pages       existing page   that matter to you
  │          │              │                 │
  └──────────┴──────────────┴────────┬────────┘
                                     ▼
                                   check ──── saves every run ────┐
                               measure actual                     ▼
                               citations                       history
                                                           coverage over time,
                                                           newly cited / lost

doctor วัด ความพร้อม (หน้านี้มีรูปแบบที่เหมาะกับการถูกอ้างอิงหรือไม่?) check วัด ผลลัพธ์ (มันถูกอ้างอิงจริงหรือไม่?) history เปลี่ยนผลลัพธ์ให้เป็นเส้นแนวโน้ม


auto-geo init — ติดตั้งระบบ

auto-geo init        # interactive (a handful of questions)
auto-geo init --yes  # non-interactive template

คำสั่งเดียวสร้างทุกอย่าง:

ไฟล์มันคืออะไร
auto-geo.config.jsonค่าเริ่มต้นของคุณ — โดเมน ผู้ให้บริการ โมเดล ผู้เขียน Commit ได้ ไม่เก็บความลับ
.env.localช่องคีย์ API โหลดอัตโนมัติโดยทุกคำสั่ง ใส่ใน gitignore
.auto-geo/prompts.txtโปรแกรมติดตามของคุณ — หนึ่งบรรทัดต่อหนึ่งรายการ อนุญาตคอมเมนต์ด้วย #
.auto-geo/checks/ทุกการรันของ check บันทึกเป็น JSON ข้อมูลเบื้องหลัง history

ขั้นตอนแบบโต้ตอบจบลงด้วยการถามหาโปรแกรมติดตามที่คุณต้องการ ดังนั้นโปรเจกต์ใหม่จะไปจากศูนย์สู่เส้นฐานการอ้างอิงที่วัดได้ในการนั่งครั้งเดียว init ไม่เขียนทับ .env.local ที่มีอยู่และปฏิเสธที่จะเขียนทับการตั้งค่าที่มีอยู่โดยไม่มี --force


auto-geo doctor — ตรวจสอบหน้าใดก็ได้เพื่อความพร้อมในการถูกอ้างอิง

รันบน URL ใดก็ได้ — ของคุณ ของคู่แข่ง ทุกหน้าใน sitemap ของคุณ — และรับรายงานที่มีโครงสร้างเกี่ยวกับสัญญาณการอ้างอิงที่เอ็นจิน AI มองหา

auto-geo doctor https://example.com/some-page
✓ TL;DR present (52 words, in range)
✗ Question-format H2 headings (2 of 6 are question-format; SOP §3 targets all)
✓ Article JSON-LD present
✗ FAQPage JSON-LD present (No FAQPage JSON-LD block detected)
✓ Entity density (12.3/1k words)
✗ Image cadence (0 images for 1247 words)
✓ Answer-first first paragraph
✓ No self-link in related guides

Score: 5 / 8 checks pass — moderate GEO posture

Top 3 fixes (ranked by citation lift):
  1. Add a FAQPage JSON-LD block. Each Q is a citable extraction target.
  2. Convert 4 statement-form H2 headings to question form.
  3. Add 2 images with descriptive alt text (entity + context).
# Whole sitemap — mean score, lowest-scoring pages, most common failures
auto-geo doctor --site https://example.com/sitemap.xml --max-pages 50

# JSON for CI / dashboards
auto-geo doctor https://example.com/page --json

รหัสออก 0 ถ้าคะแนน ≥ 75%, 1 ในกรณีอื่น — ใช้เป็นเกณฑ์ในการ deploy ดู docs/doctor.md สำหรับข้อมูลอ้างอิงการตรวจสอบฉบับเต็ม


auto-geo write — สร้างหน้าจากคำค้นหา

ให้โดเมนและคำค้นหาที่คุณต้องการถูกอ้างอิง แล้วรับไฟล์ JSON ที่ผ่านการตรวจสอบและพร้อมเผยแพร่ — หนึ่งหน้าต่อหนึ่งคำค้นหา สอดคล้องกับสถาปัตยกรรม GEO ฉบับเต็ม

auto-geo write \
  --query "what is GEO" \
  --query "GEO vs SEO" \
  --out ./resources
✓ "what is GEO"        → ./resources/geo.json (validated, ~$0.06)
✓ "GEO vs SEO"         → ./resources/geo-vs-seo.json (validated, ~$0.06)

Total: 2 pages · 2 ok · ~$0.12 spent · 31s elapsed

system prompt เข้ารหัส GEO SOP — ความยาว TL;DR, กรอบแคปซูลคำตอบ, คำคุณศัพท์เกินจริงที่ห้ามใช้, โครงสร้าง FAQ — และผลลัพธ์ถูกจำกัดให้อยู่ใน schema ในระดับระบบประเภทผ่าน generateObject ของ Vercel AI SDK พร้อมวงจรแก้ไขตัวเองแบบมีขอบเขตเมื่อการตรวจสอบล้มเหลว ค่าเริ่มต้น: gpt-5.4 (OpenAI) หรือ claude-sonnet-4-6 (Anthropic) ตรวจจับอัตโนมัติจากคีย์ API ที่คุณตั้งไว้

# Dry-run — plan + cost estimate, no LLM calls
auto-geo write --query "what is X" --dry-run

# Batch from a file, anthropic, 4 pages at a time
auto-geo write --queries-file queries.txt --provider anthropic --concurrency 4

ด้วยไฟล์ตั้งค่า (auto-geo init), --domain, ฟิลด์ผู้เขียน และผู้ให้บริการมาจากการตั้งค่า — แค่ --query เปล่าๆ ก็เพียงพอ ดู docs/write.md


auto-geo fix — เขียนหน้าใหม่เพื่อความพร้อมในการถูกอ้างอิง

ที่ doctor บอกว่าอะไรผิด fix สร้างการเขียนใหม่ที่ปรับให้เหมาะกับ GEO ที่ผ่านการตรวจสอบทั้ง 8 ข้อ — ดึงข้อมูล ตรวจสอบ สร้างใหม่ และตรวจสอบกับ schema เดียวกับที่ write ใช้

auto-geo fix https://www.example.com/some-blog-post --out ./fixed.json
Score (before):    3 / 8
Generating rewrite via openai gpt-5.4...
Score (projected): 8 / 8 — strong GEO posture
→ ./fixed.json (validated)
auto-geo fix https://example.com/page --provider anthropic   # Claude instead
auto-geo fix https://example.com/page --dry-run              # audit + cost estimate only

ดู docs/fix.md


auto-geo prompts — จัดการโปรแกรมติดตามของคุณ

โปรแกรมติดตามของคุณคือคำถามที่คุณต้องการให้เอ็นจิน AI ตอบโดยอ้างอิงโดเมนของคุณ พวกมันอยู่ใน .auto-geo/prompts.txt (ข้อความธรรมดา commit ได้) และเป็นสิ่งที่ check รันโดยค่าเริ่มต้น

auto-geo prompts add "best media monitoring tools" "what is GEO"
auto-geo prompts            # numbered list
auto-geo prompts rm 2       # by index — or by exact text

ไม่รู้จะติดตามอะไร? ให้เอ็นจินเสนอชุดโปรแกรมติดตามของคุณdiscover ดึงหน้าแรกของคุณ ดูสิ่งที่คุณติดตามอยู่แล้ว และให้ LLM สร้างคำค้นหาที่มีความตั้งใจสูงที่คุณควรแข่งขัน:

auto-geo prompts discover --dry-run    # preview the proposals
auto-geo prompts discover --count 15   # append 15 (never overwrites, never duplicates)

prompts add (และ discover) เตรียมพื้นที่ทำงานในการใช้งานครั้งแรก ดังนั้นคุณไม่จำเป็นต้องมี init เพื่อเริ่มติดตาม


auto-geo check — วัดความครอบคลุมการอ้างอิงจริง

สำหรับแต่ละโปรแกรมติดตาม ถามเอ็นจินค้นหา AI จริงและรายงานว่าโดเมนของคุณอยู่ในรายการอ้างอิงหรือไม่ นี่คือความจริงภาคพื้นดินที่ doctor ทำนาย

auto-geo check        # tracked prompts, domain from config
using 3 tracked prompts from .auto-geo/prompts.txt
  [1/3] ✗ "what is GEO" — not cited (5 sources)
  [2/3] ✓ "how do I get cited by ChatGPT" — cited (2 sources)
  [3/3] ✓ "open source GEO tools" — cited (1 source)

Coverage: 2/3 queries (67%) · 3 page citations total · ~$0.012 spent
  saved → .auto-geo/checks/2026-06-10T13-22-05--perplexity.json (auto-geo history)

เอ็นจิน: perplexity (ค่าเริ่มต้น), openai, anthropic, gemini, xai (นามแฝง grok) หรือ --engine all — ซึ่งรันทุกเอ็นจินที่ตั้งคีย์ API ไว้และรายงานความครอบคลุมต่อเอ็นจินพร้อมการรวมผลรวม

# Explicit queries instead of the tracked set
auto-geo check --domain shadow.inc --query "what is GEO"

# Every engine you have keys for, union coverage
auto-geo check --engine all

# CI: fail the deploy when critical queries don't cite you
auto-geo check --queries-file geo/critical-queries.txt && deploy

# Streaming JSON for agents / dashboards
auto-geo check --ndjson

ทุกการรันถูกบันทึกไปยัง .auto-geo/checks/ โดยอัตโนมัติ (เลือกไม่ใช้ด้วย --no-save) รหัสออก 0 ถ้าความครอบคลุม > 0%, 1 ถ้า 0% ดู docs/check.md สำหรับรูปแบบผลลัพธ์ การจับคำค้นหาแบบ fan-out กฎการจับคู่โดเมน และโหมด interop ของ --format geo-audit


auto-geo history — ความครอบคลุมการอ้างอิงเมื่อเวลาผ่านไป

ผลตอบแทนจากการบันทึกทุกการรัน: เส้นแนวโน้ม ความครอบคลุมรายการรันพร้อมความแตกต่างต่อเอ็นจิน รวมถึงโปรแกรมติดตามที่คุณเริ่มหรือหยุดถูกอ้างอิง

auto-geo history
2026-06-01 08:30  perplexity   33% ·   1/3 cited  $0.01
2026-06-08 09:15  perplexity   67% ↑34  2/3 cited  $0.01

Since last run (perplexity · 2026-06-01 08:30 ▸ 2026-06-08 09:15)
  ✓ newly cited  open source GEO tools
  ✗ lost         (none)

2 runs · .auto-geo/checks

แนวโน้มเปรียบเทียบสิ่งที่เหมือนกัน — แต่ละการรันถูกวัดเทียบกับการรันก่อนหน้าของ ตัวเลือกเอ็นจินเดียวกัน --engine all กรองเฉพาะการรันหลายเอ็นจิน --limit N ควบคุมความลึก --json ส่งออกแถว + ความแตกต่างในรูปแบบที่เครื่องอ่านได้ ดู docs/history.md


การตั้งค่า

ตั้งครั้งเดียวด้วย auto-geo init แทนที่ได้ทุกที่ ลำดับความสำคัญ สูงสุดก่อน:

  1. แฟล็ก CLI
  2. ตัวแปรสภาพแวดล้อม (ผู้ให้บริการตรวจจับอัตโนมัติจากคีย์ API ที่ตั้งไว้)
  3. auto-geo.config.json (ค้นหาขึ้นจาก cwd — เป็นมิตรกับ monorepo)
  4. ค่าเริ่มต้นในตัว
// auto-geo.config.json — committable, no secrets
{
  "domain": "https://www.example.com",
  "basePath": "/resources",
  "provider": "openai",
  "model": "gpt-5.4",
  "engine": "perplexity",
  "concurrency": 4,
  "author": {
    "name": "Jane Doe",
    "jobTitle": "Head of Content",
    "bio": "Jane writes about generative engine optimization…",
  },
}

คีย์ API อยู่ใน .env.local (หรือ .env) โหลดอัตโนมัติโดยทุกคำสั่ง — ตัวแปรสภาพแวดล้อมที่ตั้งไว้แล้วชนะเสมอ:

เอ็นจิน / ผู้ให้บริการตัวแปรสภาพแวดล้อม
OpenAI (write, fix, check)OPENAI_API_KEY
Anthropic (write, fix, check)ANTHROPIC_API_KEY
Perplexity (check)PERPLEXITY_API_KEY
Gemini (check)GOOGLE_API_KEY หรือ GEMINI_API_KEY
xAI / Grok (check)XAI_API_KEY

สถาปัตยกรรมของหน้า

ทุกอย่างที่ write และ fix สร้าง — และทุกอย่างที่ doctor ตรวจสอบ — เป็นไปตามสถาปัตยกรรมเจ็ดบล็อกที่เข้มงวด:

  1. TL;DR — แคปซูลคำตอบความยาว 40–60 คำ
  2. บทนำ — บล็อกที่กำหนดบริบท
  3. ส่วนต่างๆ — H2 ในรูปแบบคำถาม แต่ละส่วนเปิดด้วยแคปซูลคำตอบความยาว 40–60 คำ
  4. คู่มือที่เกี่ยวข้อง — 4–8 รายการ
  5. ประเด็นสำคัญ — 4–6 ข้อความประกาศ
  6. FAQ — 3–10 คำถาม-คำตอบพร้อมคำตอบความยาว 40–60 คำ
  7. การเปิดเผยข้อมูล — หมายเหตุแหล่งที่มา ประทับเวลา บรรทัดผู้เผยแพร่

การละเมิดโครงสร้างเป็นข้อผิดพลาดร้ายแรง (payload ที่สร้างถูกปฏิเสธและสร้างใหม่); การประมาณความหนาแน่นและจังหวะเป็นคำเตือนแบบอ่อน ข้อมูลจำเพาะฉบับเต็ม: docs/architecture.md, docs/validation.md และ SOP ที่อยู่เบื้องหลังทุกข้อจำกัด: docs/sop.md

JSON ผลลัพธ์ไม่ขึ้นกับ renderer — POST ไปยัง CMS ของคุณ เติมเทมเพลต หรือ render ด้วยคอมโพเนนต์ของคุณเอง โครงสร้าง คือ สัญญา


ผลลัพธ์ที่เหมาะกับเอเจนต์

ทุกคำสั่งถูกสร้างให้ขับเคลื่อนโดยเอเจนต์ได้เท่ากับมนุษย์:

  • --json — หนึ่งออบเจกต์ที่เสถียรและเครื่องอ่านได้บน stdout
  • --ndjson (check) — หนึ่งบรรทัด JSON ต่อคำค้นหาเมื่อผลลัพธ์ไหลเข้ามา พร้อมบรรทัด _summary
  • ความคืบหน้าไปที่ stderr ผลลัพธ์ไปที่ stdout — ท่อส่งข้อมูลสะอาด
  • รหัสออกที่เสถียร — doctor และ check เป็นเกณฑ์ CI ทันที
  • --no-color / NO_COLOR / การตรวจจับ non-TTY สำหรับผลลัพธ์ที่เหมาะกับล็อก
auto-geo check --ndjson | jq 'select(.cited) | .query'

เป็นมิตรกับ LLM

auto-geo เป็นเครื่องมือที่ผลลัพธ์คือเนื้อหาที่ตั้งใจให้ LLM อ้างอิง — ดังนั้น repo นี้กินอาหารที่ตัวเองทำ:

  • llms.txt — ดัชนีที่จัดระเบียบตามธรรมเนียม llmstxt.org
  • llms-full.txt — README + เอกสารสำคัญทุกฉบับรวมในไฟล์เดียวเพื่อการดึงข้อมูลครั้งเดียว
  • เว็บไซต์ GitHub Pages ที่ shadowresearch.github.io/auto-geo — ประกาศทั้งสองผ่าน <link rel="alternate"> ส่งออก Article JSON-LD
  • AGENT.md — ข้อมูลจำเพาะการทำงานขนาดกะทัดรัดสำหรับเอเจนต์เขียนโค้ดที่ขับเคลื่อน CLI

การมีส่วนร่วม

ดู CONTRIBUTING.md ยินดีรับรายงานบั๊ก การปรับปรุงการตรวจสอบ เอ็นจินใหม่ และการปรับปรุงเอกสาร


สัญญาอนุญาต

MIT


เกี่ยวกับ Shadow

Shadow เป็นห้องปฏิบัติการวิจัยสื่อที่สร้างเทคโนโลยีปัญญาประดิษฐ์และสื่อสารรุ่นถัดไป โดยร่วมมือกับทีมที่สร้าง OpenAI, TikTok, Meta, Amazon และ Lovable ให้เป็นที่รู้จัก Shadow ดำเนินการ auto-geo แบบครบวงจรตามกำหนดเวลา สำหรับทีมวิจัยสื่อ ประชาสัมพันธ์ และการสื่อสาร

เรียนรู้เพิ่มเติมได้ที่ shadow.inc