คู่มือนี้จะอธิบายวิธีเข้าถึง Google Ads API ด้วยบัญชีบริการ
บัญชีบริการเป็นบัญชี ที่เป็นของแอปของคุณ ไม่ใช่ผู้ใช้ปลายทางแต่ละราย บัญชีบริการใช้ขั้นตอน OAuth 2.0 ที่ไม่จำเป็นต้องมีการให้สิทธิ์จากบุคคล แต่จะใช้ไฟล์คีย์ที่แอปของคุณเท่านั้นที่เข้าถึงได้แทน
การใช้บัญชีบริการมีข้อดีหลักๆ 2 ประการ ดังนี้
การให้สิทธิ์เข้าถึง Google Ads API สำหรับบัญชี Google Ads จะทำเป็นขั้นตอนการกำหนดค่า โดยใช้ประโยชน์จากฟีเจอร์การให้สิทธิ์และการจัดการบัญชีที่ UI ของ Google Ads มีให้ ซึ่งช่วยลดความพยายามของนักพัฒนาแอปที่ไม่ต้องสร้างโฟลว์ OAuth 2.0 และจัดการกับความซับซ้อนที่เกี่ยวข้องกับการโต้ตอบกับผู้ใช้ การจัดเก็บข้อมูลเข้าสู่ระบบของผู้ใช้ เป็นต้น
การให้สิทธิ์เข้าถึงบัญชี Google Ads ไม่ได้ผูกกับข้อมูลเข้าสู่ระบบของผู้ใช้แต่ละราย ซึ่งอาจมีประโยชน์ในกรณีที่คาดว่าจะมีการให้สิทธิ์ต่อไปแม้ว่าพนักงานที่ให้สิทธิ์เข้าถึงในตอนแรกจะออกจากทีมหรือบริษัทไปแล้วก็ตาม
การตั้งค่าการเข้าถึงบัญชี
เริ่มต้นด้วยการสร้างบัญชีบริการและข้อมูลเข้าสู่ระบบ
ดาวน์โหลดคีย์บัญชีบริการในรูปแบบ JSON และจดรหัสและอีเมลของบัญชีบริการ
ลงชื่อเข้าใช้บัญชี Google Ads ในฐานะผู้ดูแลระบบ ไปที่ผู้ดูแลระบบ > การเข้าถึงและความปลอดภัย
คลิกปุ่ม + ในแท็บผู้ใช้

พิมพ์อีเมลของบัญชีบริการลงในกล่องรับข้อมูลอีเมล เลือกระดับการเข้าถึงบัญชีที่เหมาะสม แล้วคลิกปุ่มเพิ่มบัญชี

ระบบจะให้สิทธิ์เข้าถึงแก่บัญชีบริการ

[ไม่บังคับ] โดยค่าเริ่มต้น คุณไม่สามารถให้สิทธิ์เข้าถึงระดับผู้ดูแลระบบแก่บัญชีบริการได้ หากการเรียก API ต้องใช้สิทธิ์เข้าถึงระดับผู้ดูแลระบบ คุณสามารถอัปเกรดสิทธิ์เข้าถึงได้โดยทำดังนี้
- คลิกลูกศรแบบเลื่อนลงข้างระดับการเข้าถึงของบัญชีบริการในคอลัมน์ระดับการเข้าถึง
- เลือกผู้ดูแลระบบ จากรายการแบบเลื่อนลง
การกำหนดค่าไลบรารีของไคลเอ็นต์
เลือกแท็บที่ตรงกับภาษาโปรแกรมเพื่อดูวิธีการกำหนดค่าไลบรารีของไคลเอ็นต์
Java
ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัวในการกำหนดค่า หากใช้ไฟล์ ads.properties ให้เพิ่มข้อมูลต่อไปนี้
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
ดูรายละเอียดเพิ่มเติมได้ในคู่มือการกำหนดค่าสำหรับ
.NET
ตั้งค่า OAuth2Mode และ OAuth2SecretsJsonPath ในอินสแตนซ์ GoogleAdsConfig แล้วใช้เพื่อเริ่มต้นออบเจ็กต์ GoogleAdsClient
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_JSON_SECRETS_PATH",
...
};
GoogleAdsClient client = new GoogleAdsClient(config);
ดูรายละเอียดเพิ่มเติมได้ในคู่มือการกำหนดค่าสำหรับ
Python
ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัวในการกำหนดค่า หากใช้
google-ads.yaml file สตริง YAML หรือ dict ให้เพิ่มข้อมูลต่อไปนี้
json_key_file_path: JSON_KEY_FILE_PATH
หากใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มข้อมูลต่อไปนี้ในการกำหนดค่าหรือสภาพแวดล้อม Bash
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
PHP
กำหนดค่าคีย์ต่อไปนี้ใน google_ads_php.ini ดูรายละเอียดเพิ่มเติมได้ใน
คู่มือการกำหนดค่า
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
Ruby
กำหนดค่าคีย์ต่อไปนี้ใน google_ads_config.rb
c.keyfile = 'JSON_KEY_FILE_PATH'
Perl
ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัวและรหัสบัญชีผู้รับมอบสิทธิ์ในการกำหนดค่า
หากใช้ไฟล์ googleads.properties ให้เพิ่มข้อมูลต่อไปนี้
jsonKeyFilePath=JSON_KEY_FILE_PATH
หากใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มข้อมูลต่อไปนี้ในการกำหนดค่าหรือสภาพแวดล้อม Bash
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
curl
เริ่มต้นด้วยการตั้งค่าบัญชีบริการเป็นข้อมูลเข้าสู่ระบบที่ใช้งานอยู่ใน gcloud CLI
gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSONจากนั้นดึงโทเค็นเพื่อการเข้าถึง OAuth 2.0 สำหรับ Google Ads API
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'ตอนนี้คุณใช้โทเค็นเพื่อการเข้าถึงในการเรียก API ได้แล้ว ตัวอย่างต่อไปนี้
แสดงวิธีเรียกใช้รายงานแคมเปญโดยใช้
GoogleAdsService.SearchStream เพื่อดึง
แคมเปญในบัญชี คู่มือนี้ไม่ได้กล่าวถึงรายละเอียดของ
การรายงาน
curl -i -X POST https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "developer-token: DEVELOPER_TOKEN" \
-H "login-customer-id: LOGIN_CUSTOMER_ID" \
--data-binary "@query.json"เนื้อหาของ query.json มีดังนี้
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}