คู่มือนี้จะอธิบายวิธีเข้าถึง 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 OAuth 2.0 จึงกำหนดให้คุณต้องมีโดเมนของตนเองที่ลงทะเบียนกับ Google Workspace จากนั้นแอปและผู้ใช้จะ แอบอ้างเป็นผู้ใช้ใดก็ได้ในโดเมน
เริ่มต้นด้วยการสร้างบัญชีบริการและข้อมูลเข้าสู่ระบบ
ดาวน์โหลดคีย์บัญชีบริการในรูปแบบ 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 ที่จำเป็นขั้นต่ำ ซึ่งเป็นมาตรการป้องกันเพื่อจำกัดปริมาณข้อมูลที่ผู้โจมตีเข้าถึงได้หากไฟล์คีย์ของบัญชีบริการถูกบุกรุก