คู่มือนี้จะอธิบายวิธีเข้าถึง Google Ads API ด้วยบัญชีบริการ
บัญชีบริการคือบัญชีที่เป็นของแอปคุณ ไม่ใช่ของผู้ใช้ปลายทางแต่ละราย บัญชีบริการจะเปิดใช้การโต้ตอบระหว่างเซิร์ฟเวอร์ระหว่างเว็บแอปกับบริการของ Google แอปของคุณเรียกใช้ Google APIs ในนามบัญชีบริการ ผู้ใช้จึงไม่มีส่วนเกี่ยวข้องโดยตรง
บัญชีบริการใช้ขั้นตอน OAuth 2.0 ที่ไม่จําเป็นต้องให้ผู้ใช้ให้สิทธิ์ แต่จะใช้ไฟล์คีย์ที่มีเพียงแอปของคุณเท่านั้นที่เข้าถึงได้
การใช้บัญชีบริการมีข้อดีหลักๆ 2 ข้อดังนี้
การให้สิทธิ์เข้าถึง Google API จะเป็นขั้นตอนในการกําหนดค่า ซึ่งจะช่วยหลีกเลี่ยงความซับซ้อนที่เกี่ยวข้องกับขั้นตอนอื่นๆ ของ OAuth 2.0 ที่จําเป็นต้องโต้ตอบกับผู้ใช้
โฟลว์การยืนยัน OAuth 2.0 ช่วยให้แอปแอบอ้างเป็นผู้ใช้รายอื่นได้หากจำเป็น
การให้สิทธิ์ด้วยบัญชีบริการทำได้ 2 วิธี ได้แก่ โดยตรงหรือด้วยการแอบอ้างเป็นบุคคลอื่น
การให้สิทธิ์เข้าถึงบัญชีโดยตรง
ในตัวเลือกนี้ คุณให้สิทธิ์เข้าถึงบัญชี Google Ads โดยตรงแก่บัญชีบริการ
การตั้งค่าการเข้าถึงบัญชี
เริ่มต้นด้วยการสร้างบัญชีบริการและข้อมูลเข้าสู่ระบบ
ดาวน์โหลดคีย์บัญชีบริการในรูปแบบ JSON และจดรหัสและอีเมลของบัญชีบริการไว้
ลงชื่อเข้าใช้บัญชี Google Ads ในฐานะผู้ดูแลระบบ ไปที่ผู้ดูแลระบบ > การเข้าถึงและความปลอดภัย
คลิกปุ่ม + ใต้แท็บผู้ใช้
พิมพ์อีเมลบัญชีบริการในกล่องป้อนข้อมูลอีเมล เลือกระดับการเข้าถึงบัญชีที่เหมาะสม แล้วคลิกปุ่มเพิ่มบัญชี โปรดทราบว่าบัญชีบริการไม่รองรับระดับการเข้าถึงระดับอีเมลและผู้ดูแลระบบ
บัญชีบริการได้รับสิทธิ์เข้าถึง
การกำหนดค่าไลบรารีของไคลเอ็นต์
เลือกแท็บที่สอดคล้องกับภาษาโปรแกรมของคุณเพื่อดูวิธีการกำหนดค่าไลบรารีไคลเอ็นต์
Java
ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัวในการกําหนดค่า หากคุณใช้ไฟล์ ads.properties
ให้เพิ่มข้อมูลต่อไปนี้
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
ดูรายละเอียดเพิ่มเติมได้ในคู่มือการกําหนดค่า
.NET
กําหนดค่าคีย์ต่อไปนี้ใน App.config / Web.config
ดูรายละเอียดเพิ่มเติมได้ในคู่มือการกําหนดค่า
<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />
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
การให้สิทธิ์โดยใช้การสวมบทบาท
ในตัวเลือกนี้ คุณจะแอบอ้างเป็นผู้ใช้ที่มีสิทธิ์เข้าถึงบัญชี Google Ads โดยใช้บัญชีบริการ วิธีนี้ใช้ได้กับลูกค้า Google Workspace เท่านั้น บัญชีบริการสามารถแอบอ้างเป็นผู้ใช้ (อีเมล) ใน Google Workspace เดียวกันเท่านั้น
ข้อกำหนดเบื้องต้น
โดเมน Google Workspace ที่คุณเป็นเจ้าของ เช่น
mydomain.com
หรือmybusiness.com
โทเค็นนักพัฒนา Google Ads API และบัญชีทดสอบ (ไม่บังคับ)
ไลบรารีของไคลเอ็นต์สำหรับภาษาที่คุณใช้
โปรเจ็กต์คอนโซล Google API ที่กําหนดค่าสําหรับ Google Ads API แล้ว
ผู้ใช้ Google Ads ที่มีสิทธิ์ในบัญชี Google Ads ที่ต้องการเข้าถึง Google Ads ไม่รองรับการใช้บัญชีบริการโดยไม่แอบอ้างเป็นบุคคลอื่น
การตั้งค่าการเข้าถึงบัญชีบริการ
เนื่องจากการควบคุมการแอบอ้างเป็นผู้ใช้ทำได้ที่ระดับโดเมนเท่านั้น คุณจึงต้องใช้โดเมนของคุณเองที่ลงทะเบียนกับ Google Workspace เพื่อใช้บัญชีบริการและขั้นตอนการยืนยันด้วย Google OAuth 2.0 จากนั้นแอปและผู้ใช้ของแอปจะแอบอ้างเป็นผู้ใช้รายใดก็ได้ในโดเมน
เริ่มต้นด้วยการสร้างบัญชีบริการและข้อมูลเข้าสู่ระบบ
ดาวน์โหลดคีย์บัญชีบริการในรูปแบบ JSON และจดรหัสบัญชีบริการไว้
แชร์รหัสบัญชีบริการและขอบเขต Google Ads API (
https://www.googleapis.com/auth/adwords
) กับผู้ดูแลระบบโดเมนขอให้ผู้ดูแลระบบโดเมนมอบสิทธิ์ทั่วทั้งโดเมนให้กับบัญชีบริการของคุณ
หากคุณเป็นผู้ดูแลระบบโดเมน ให้ทำตามวิธีการในศูนย์ช่วยเหลือ
ตอนนี้คุณใช้บัญชีบริการเพื่อเข้าถึงบัญชี Google Ads ได้ด้วยขั้นตอนการยืนยัน OAuth 2.0
การกำหนดค่าไลบรารีของไคลเอ็นต์
เลือกแท็บที่สอดคล้องกับภาษาโปรแกรมของคุณเพื่อดูวิธีการกำหนดค่าไลบรารีไคลเอ็นต์
Java
ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัวและมอบสิทธิ์รหัสบัญชีในการกําหนดค่า
หากคุณใช้ไฟล์ ads.properties
ให้เพิ่มข้อมูลต่อไปนี้
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL
ดูรายละเอียดเพิ่มเติมได้ในคู่มือการกําหนดค่า
.NET
กําหนดค่าคีย์ต่อไปนี้ใน App.config / Web.config
ดูรายละเอียดเพิ่มเติมได้ในคู่มือการกําหนดค่า
<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />
<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />
Python
ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัวและอีเมลที่ใช้แอบอ้างในการกําหนดค่า
หากคุณใช้ google-ads.yaml file
, สตริง YAML หรือ dict
ให้เพิ่มข้อมูลต่อไปนี้
json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL
หากคุณใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มข้อมูลต่อไปนี้ลงในการกำหนดค่าหรือสภาพแวดล้อม Bash
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL
PHP
กําหนดค่าคีย์ต่อไปนี้ใน google_ads_php.ini
ดูรายละเอียดเพิ่มเติมได้ในคู่มือการกําหนดค่า
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
impersonatedEmail = "IMPERSONATED_EMAIL"
Ruby
กําหนดค่าคีย์ต่อไปนี้ใน google_ads_config.rb
c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'
Perl
ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัวและมอบสิทธิ์รหัสบัญชีในการกําหนดค่า หากคุณใช้ไฟล์ googleads.properties
ให้เพิ่มข้อมูลต่อไปนี้
jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL
หากคุณใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มข้อมูลต่อไปนี้ลงในการกำหนดค่าหรือสภาพแวดล้อม Bash
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL
ข้อกังวลด้านความปลอดภัย
เนื่องจากบัญชีบริการมีการควบคุมการมอบสิทธิ์ระดับโดเมนสำหรับโดเมน Google Workspace คุณจึงควรปกป้องไฟล์คีย์ที่อนุญาตให้บัญชีบริการเข้าถึงบริการของ Google ที่ได้รับอนุญาต กรณีนี้มีความเป็นไปได้สูงเนื่องจากบัญชีบริการดังกล่าวสามารถแอบอ้างเป็นผู้ใช้รายใดก็ได้ในโดเมน
แนวทางปฏิบัติแนะนำอีกอย่างหนึ่งคือการอนุญาตให้บัญชีบริการเข้าถึงเฉพาะชุด API ที่จําเป็นขั้นต่ำ การดำเนินการนี้เป็นมาตรการป้องกันล่วงหน้าเพื่อจำกัดปริมาณข้อมูลที่ผู้โจมตีเข้าถึงได้หากไฟล์คีย์ของบัญชีบริการถูกบุกรุก