คู่มือนี้จะอธิบายรายละเอียดกระบวนการเริ่มต้นใช้งาน การตรวจสอบสิทธิ์ และการเรียก Google Ads API ครั้งแรกแบบครบวงจร
1. ข้อกำหนดเบื้องต้นและลำดับชั้นบัญชี
ก่อนที่จะโต้ตอบกับ Google Ads API คุณต้องทำความเข้าใจลำดับชั้นบัญชีและมีโครงสร้างบัญชีระดับบนสุดที่ถูกต้อง
- บัญชีดูแลจัดการ (MCC): บัญชีดูแลจัดการ Google Ads (เดิมคือศูนย์ลูกค้าของฉัน) เป็นบัญชีหลักที่ใช้ดูและจัดการบัญชีลูกค้าหลายบัญชี คุณต้องมีบัญชีดูแลจัดการเพื่อสมัครรับโทเค็นของนักพัฒนา Google Ads API
- บัญชีลูกค้า: บัญชีมาตรฐานที่สร้างแคมเปญ กลุ่มโฆษณา และโฆษณา รวมถึงกำหนดค่าการเรียกเก็บเงิน
สิ่งที่ต้องทำ: หากไม่มีบัญชีดูแลจัดการ ให้สร้างบัญชีที่ บัญชีดูแลจัดการ Google Ads
2. รับโทเค็นของนักพัฒนา
โทเค็นของนักพัฒนาจะระบุแอปพลิเคชันของคุณต่อ Google Ads API ได้อย่างไม่ซ้ำกัน และควบคุมระดับการเข้าถึงปริมาณการเรียกของคุณ
ขั้นตอนการสมัคร
- ลงชื่อเข้าใช้บัญชีดูแลจัดการ Google Ads
- ไปที่เครื่องมือและการตั้งค่า > การตั้งค่า > ศูนย์ API (หรือผู้ดูแลระบบ > ศูนย์ API)
- กรอกแบบฟอร์มรายละเอียดนักพัฒนาและยอมรับข้อกำหนดในการให้บริการของ API
- ส่งใบสมัคร
ระดับการเข้าถึง
- รอการอนุมัติ: โทเค็นที่สร้างใหม่จะได้รับสถานะ "รอดำเนินการ" ทันที คุณสามารถใช้โทเค็นที่รอดำเนินการเพื่อเชื่อมต่อกับบัญชีทดสอบ ได้ทันที แต่จะใช้กับบัญชีที่ใช้งานจริงไม่ได้
- สิทธิ์เข้าถึงระดับพื้นฐาน: อนุญาตการดำเนินการ API สูงสุด 15,000 รายการต่อวันเมื่อได้รับอนุมัติ
- สิทธิ์เข้าถึงระดับมาตรฐาน: การดำเนินการ API รายวันไม่จำกัดสำหรับแอปพลิเคชันที่เป็นไปตามฟังก์ชันขั้นต่ำที่จำเป็น (RMF)
3. ตั้งค่าบัญชีทดสอบ
การพัฒนาและทดสอบกับบัญชีที่ใช้งานจริงอาจทำให้เกิดค่าโฆษณาที่ไม่ต้องการและการแก้ไขแคมเปญ เราขอแนะนำอย่างยิ่งให้ทำการพัฒนาที่ใช้งานอยู่ทั้งหมดกับบัญชีทดสอบ
สร้างบัญชีดูแลจัดการทดสอบ
- ไปที่หน้าสำหรับสร้างบัญชีดูแลจัดการทดสอบ Google Ads
- ลงชื่อเข้าใช้ด้วยบัญชี Google ที่ยังไม่ได้ ลิงก์กับบัญชีดูแลจัดการ Google Ads ที่ใช้งานจริง
- ป้อนชื่อบัญชีที่สื่อความหมาย (เช่น
MyCompany Test MCC) - เลือกการใช้งานหลักเป็นจัดการบัญชีของผู้อื่น
- เลือกประเทศสำหรับการเรียกเก็บเงิน เขตเวลา และสกุลเงิน คลิกบันทึกและดำเนินการต่อ
สร้างบัญชีลูกค้าทดสอบ
เมื่อสร้างบัญชีดูแลจัดการทดสอบแล้ว คุณต้องสร้างบัญชีลูกค้าลูกอย่างน้อย 1 บัญชีเพื่อเรียกใช้แคมเปญทดสอบ
- ลงชื่อเข้าใช้บัญชีดูแลจัดการทดสอบ ที่สร้างขึ้นใหม่
- คลิกบัญชีจากเมนูการนำทางด้านซ้าย แล้วเลือก การตั้งค่าบัญชีย่อย (หรือประสิทธิภาพ)
- คลิกปุ่ม + (บวก) สีน้ำเงิน แล้วเลือกสร้างบัญชีใหม่
- เลือกบัญชี Google Ads
- ป้อนชื่อบัญชี (เช่น
Test Client Account A) - เลือกเขตเวลาและสกุลเงิน แล้วคลิกบันทึกและดำเนินการต่อ
- จดรหัสลูกค้า 10 หลัก (เช่น
1234567890โดยไม่มีขีดกลาง) ของบัญชีลูกค้าใหม่นี้
กฎสำคัญสำหรับบัญชีทดสอบ
- การใช้โทเค็นของนักพัฒนา: อย่า สมัครรับโทเค็นของนักพัฒนาจากบัญชีดูแลจัดการทดสอบ ให้ใช้โทเค็นของนักพัฒนาที่รอดำเนินการหรือได้รับอนุมัติจากบัญชีดูแลจัดการที่ใช้งานจริง เสมอ
- การเรียกเก็บเงิน: บัญชีทดสอบจะไม่แสดงโฆษณาจริง ดังนั้นคุณจึงไม่จำเป็นต้องป้อนข้อมูลสำหรับการเรียกเก็บเงินจริง
4. การตั้งค่าโปรเจ็กต์ Google Cloud
คำขอ API ทั้งหมดต้องได้รับการตรวจสอบสิทธิ์โดยใช้โปรเจ็กต์ Google Cloud ที่เปิดใช้ Google Ads API
ขั้นตอนในการเปิดใช้ API
- ไปที่ คอนโซล Google Cloud
- สร้างโปรเจ็กต์ใหม่หรือเลือกโปรเจ็กต์ที่มีอยู่
- ไปที่API และบริการ > ไลบรารี
- ค้นหา Google Ads API แล้วคลิกเปิดใช้
การกำหนดราคาและการเรียกเก็บเงิน
- ไม่มีค่าธรรมเนียม API: การสร้างโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google, การเปิดใช้ Google Ads API และการสร้างข้อมูลเข้าสู่ระบบ OAuth 2.0 ไม่มีค่าใช้จ่าย Google จะไม่คิดค่าธรรมเนียมใดๆ สำหรับการเรียกหรือใช้ Google Ads API เอง
- ทรัพยากรระบบคลาวด์อื่นๆ: คุณจะเสียค่าธรรมเนียม Google Cloud ก็ต่อเมื่อใช้บริการ Google Cloud ที่เรียกเก็บเงินอื่นๆ (เช่น Compute Engine, Cloud Run หรือ BigQuery) เกินขีดจำกัดของรุ่นฟรีเพื่อโฮสต์แอปพลิเคชันหรือจัดเก็บข้อมูลโฆษณา
5. การกำหนดค่าการตรวจสอบสิทธิ์ OAuth 2.0
Google Ads API ใช้ OAuth 2.0 เพื่อตรวจสอบสิทธิ์และให้สิทธิ์คำขอ
ขั้นตอนสำหรับโฟลว์แอปพลิเคชันบนเดสก์ท็อป
- ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google ให้ไปที่API และบริการ > หน้าจอขอความยินยอม OAuth แล้วกำหนดค่าหน้าจอขอความยินยอม เพิ่มอีเมลลงในส่วนผู้ใช้ทดสอบ ขณะที่แอปอยู่ในสถานะการทดสอบเพื่อป้องกันข้อผิดพลาดในการเข้าถึงระหว่างการให้สิทธิ์
- ไปที่API และบริการ > ข้อมูลเข้าสู่ระบบ
- คลิกสร้างข้อมูลเข้าสู่ระบบ > รหัสไคลเอ็นต์ OAuth
- เลือกประเภทแอปพลิเคชันเป็นแอปบนเดสก์ท็อป
- คลิกสร้าง แล้วดาวน์โหลดไฟล์ข้อมูลเข้าสู่ระบบ OAuth เป็น
client_secret.json(หรือคัดลอกClient IDและClient Secret)
สร้างโทเค็นการรีเฟรช
เมื่อมีรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์แล้ว คุณต้องสร้างโทเค็นเพื่อการรีเฟรช คุณสามารถทำได้โดยใช้ Google OAuth 2.0 Playground หรือสคริปต์ไลบรารีของไคลเอ็นต์
วิธีที่ 1: ใช้ Google OAuth 2.0 Playground
- ไปที่ Google OAuth 2.0 Playground
- คลิกไอคอนรูปเฟือง (การกำหนดค่า OAuth 2.0) ที่มุมขวาบน
- เลือกช่องใช้ข้อมูลเข้าสู่ระบบ OAuth ของคุณเอง
- ป้อน
Client IDและClient SecretOAuth2 แล้วคลิกปิด - ในขั้นตอนที่ 1 (เลือกและให้สิทธิ์ API) ทางด้านซ้าย ให้ป้อนขอบเขต Google Ads API ในช่อง "ป้อนขอบเขตของคุณเอง" ดังนี้
https://www.googleapis.com/auth/adwords - คลิกให้สิทธิ์ API เมื่อได้รับข้อความแจ้ง ให้ลงชื่อเข้าใช้ด้วยบัญชี Google ที่มีสิทธิ์เข้าถึงบัญชีดูแลจัดการ Google Ads (หรือบัญชีทดสอบ)
- คลิกดำเนินการต่อ ในหน้าจอขอความยินยอม
- ในขั้นตอนที่ 2 (เปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็น) ให้คลิกปุ่มสีน้ำเงิน เปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็น
Refresh tokenและAccess tokenของคุณจะแสดงในแผงการตอบกลับ คัดลอกและบันทึกRefresh token
วิธีที่ 2: ใช้สคริปต์ไลบรารีของไคลเอ็นต์ (ตัวอย่าง Python)
ไลบรารีของไคลเอ็นต์ Python อย่างเป็นทางการมีสคริปต์ตัวช่วยในตัวเพื่อสร้างข้อมูลเข้าสู่ระบบ หรือคุณจะดาวน์โหลด client_secret.json จากคอนโซล Google Cloud แล้วเรียกใช้สคริปต์ Python แบบสแตนด์อโลนต่อไปนี้ก็ได้
- ติดตั้งไลบรารี OAuth ที่จำเป็น
pip install google-auth-oauthlib
- สร้างสคริปต์ชื่อ
generate_refresh_token.pyในไดเรกทอรีเดียวกับclient_secret.jsonแล้วดำเนินการ
from google_auth_oauthlib.flow import InstalledAppFlow
CLIENT_SECRETS_FILE = "client_secret.json"
SCOPES = ["https://www.googleapis.com/auth/adwords"]
def main():
flow = InstalledAppFlow.from_client_secrets_file(
CLIENT_SECRETS_FILE, SCOPES
)
credentials = flow.run_local_server(port=0)
print("\nAuthorization Successful!\n")
print(f"Refresh Token: {credentials.refresh_token}")
if __name__ == "__main__":
main()
6. การตั้งค่าไลบรารีของไคลเอ็นต์และข้อมูลเข้าสู่ระบบ
Google มีไลบรารีของไคลเอ็นต์ที่รองรับอย่างเป็นทางการซึ่งจัดการการตรวจสอบสิทธิ์ การซีเรียลไลซ์ และการสื่อสารกับปลายทาง gRPC
ภาษาที่รองรับ
- Python:
pip install google-ads - Java: ใช้งานได้ผ่าน Maven หรือ Gradle
- PHP:
composer require googleads/google-ads-php - .NET:
Install-Package Google.Ads.GoogleAds - Ruby:
gem install google-ads-googleads - Perl:
cpanm Google::Ads::GoogleAds::Client
ไฟล์การกำหนดค่า (google-ads.yaml)
สร้างไฟล์การกำหนดค่าที่มีข้อมูลเข้าสู่ระบบ โดยค่าเริ่มต้น เมธอดการเริ่มต้นของไลบรารีของไคลเอ็นต์ (เช่น GoogleAdsClient.load_from_storage()) จะค้นหา google-ads.yaml ใน 2 ตำแหน่งโดยอัตโนมัติ
- ไดเรกทอรีที่ใช้งานในปัจจุบัน ซึ่งเรียกใช้สคริปต์
- ไดเรกทอรีแรก ของผู้ใช้ (
~ใน Linux/macOS หรือ%HOMEPATH%ใน Windows)
หากจัดเก็บไฟล์ไว้ในตำแหน่งที่กำหนดเอง คุณสามารถส่งเส้นทางไปยัง
เมธอดการเริ่มต้นอย่างชัดเจน (เช่น
load_from_storage("path/to/google-ads.yaml"))
developer_token: "INSERT_YOUR_DEVELOPER_TOKEN_HERE"
client_id: "INSERT_YOUR_OAUTH2_CLIENT_ID_HERE"
client_secret: "INSERT_YOUR_OAUTH2_CLIENT_SECRET_HERE"
refresh_token: "INSERT_YOUR_OAUTH2_REFRESH_TOKEN_HERE"
login_customer_id: "INSERT_YOUR_MANAGER_ACCOUNT_ID_HERE"
7. เรียก API ครั้งแรก
หากต้องการยืนยันการตั้งค่าการเริ่มต้นใช้งาน ให้เรียกใช้สคริปต์เริ่มต้นอย่างรวดเร็วเพื่อดึงแคมเปญที่มีอยู่ออกจากบัญชีทดสอบ
ตัวอย่างสคริปต์ Python (quickstart.py)
import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException
def main(client, customer_id):
ga_service = client.get_service("GoogleAdsService")
query = """
SELECT
campaign.id,
campaign.name
FROM campaign
ORDER BY campaign.id
"""
# Issues a search request
stream = ga_service.search_stream(customer_id=customer_id, query=query)
for batch in stream:
for row in batch.results:
print(
f"Campaign with ID {row.campaign.id} and name "
f"'{row.campaign.name}' was found."
)
if __name__ == "__main__":
# Initialize client from google-ads.yaml
# By default, load_from_storage() searches for 'google-ads.yaml' in the
# current working directory or the user's home directory (~). You can
# also pass an explicit path: load_from_storage("path/to/google-ads.yaml")
try:
googleads_client = GoogleAdsClient.load_from_storage()
# Replace with your test client account ID (without hyphens) from
# Section 3, NOT your manager account ID (which belongs in
# google-ads.yaml).
test_customer_id = "1234567890"
main(googleads_client, test_customer_id)
except GoogleAdsException as ex:
print(
f"Request failed with status {ex.error.code().name} and "
f"includes the following errors:"
)
for error in ex.failure.errors:
print(f"\tError with message '{error.message}'.")
if error.location:
for field_path_element in error.location.field_path_elements:
print(f"\t\tOn field: {field_path_element.field_name}")
sys.exit(1)
8. แนวทางปฏิบัติแนะนำและแหล่งข้อมูล
- การบันทึก: เปิดใช้การบันทึกโดยละเอียดในไลบรารีของไคลเอ็นต์เพื่อบันทึกรหัสคำขอและการตอบกลับ (
request-id) ซึ่งจำเป็นเมื่อขอรับการสนับสนุนจาก Google - การจัดการข้อผิดพลาด: ใช้การจัดการข้อผิดพลาดที่มีประสิทธิภาพสำหรับ
GoogleAdsExceptionโดยเฉพาะอย่างยิ่งการจัดการขีดจำกัดอัตรา (RESOURCE_TEMPORARILY_EXHAUSTED) - เอกสารอย่างเป็นทางการ: เอกสารประกอบสำหรับนักพัฒนาแอป Google Ads API
- ไลบรารีของไคลเอ็นต์และตัวอย่างโค้ด: ที่เก็บ Google Ads ใน GitHub