บัญชีบริการ

คู่มือนี้จะอธิบายวิธีเข้าถึง Google Ads API ด้วยบัญชีบริการ

บัญชีบริการคือบัญชีที่เป็นของแอปคุณ ไม่ใช่ของผู้ใช้ปลายทางแต่ละราย บัญชีบริการจะเปิดใช้การโต้ตอบระหว่างเซิร์ฟเวอร์ระหว่างเว็บแอปกับบริการของ Google แอปของคุณเรียกใช้ Google APIs ในนามบัญชีบริการ ผู้ใช้จึงไม่มีส่วนเกี่ยวข้องโดยตรง

บัญชีบริการใช้ขั้นตอน OAuth 2.0 ที่ไม่จําเป็นต้องให้ผู้ใช้ให้สิทธิ์ แต่จะใช้ไฟล์คีย์ที่มีเพียงแอปของคุณเท่านั้นที่เข้าถึงได้

การใช้บัญชีบริการมีข้อดีหลักๆ 2 ข้อดังนี้

  • การให้สิทธิ์เข้าถึง Google API จะเป็นขั้นตอนในการกําหนดค่า ซึ่งจะช่วยหลีกเลี่ยงความซับซ้อนที่เกี่ยวข้องกับขั้นตอนอื่นๆ ของ OAuth 2.0 ที่จําเป็นต้องโต้ตอบกับผู้ใช้

  • โฟลว์การยืนยัน OAuth 2.0 ช่วยให้แอปแอบอ้างเป็นผู้ใช้รายอื่นได้หากจำเป็น

การให้สิทธิ์ด้วยบัญชีบริการทำได้ 2 วิธี ได้แก่ โดยตรงหรือด้วยการแอบอ้างเป็นบุคคลอื่น

การให้สิทธิ์เข้าถึงบัญชีโดยตรง

ในตัวเลือกนี้ คุณให้สิทธิ์เข้าถึงบัญชี Google Ads โดยตรงแก่บัญชีบริการ

การตั้งค่าการเข้าถึงบัญชี

  1. เริ่มต้นด้วยการสร้างบัญชีบริการและข้อมูลเข้าสู่ระบบ

    ดาวน์โหลดคีย์บัญชีบริการในรูปแบบ JSON และจดรหัสและอีเมลของบัญชีบริการไว้

  2. ลงชื่อเข้าใช้บัญชี Google Ads ในฐานะผู้ดูแลระบบ ไปที่ผู้ดูแลระบบ > การเข้าถึงและความปลอดภัย

  3. คลิกปุ่ม + ใต้แท็บผู้ใช้

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

  5. บัญชีบริการได้รับสิทธิ์เข้าถึง

การกำหนดค่าไลบรารีของไคลเอ็นต์

เลือกแท็บที่สอดคล้องกับภาษาโปรแกรมของคุณเพื่อดูวิธีการกำหนดค่าไลบรารีไคลเอ็นต์

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 จากนั้นแอปและผู้ใช้ของแอปจะแอบอ้างเป็นผู้ใช้รายใดก็ได้ในโดเมน

  1. เริ่มต้นด้วยการสร้างบัญชีบริการและข้อมูลเข้าสู่ระบบ

    ดาวน์โหลดคีย์บัญชีบริการในรูปแบบ JSON และจดรหัสบัญชีบริการไว้

  2. แชร์รหัสบัญชีบริการและขอบเขต Google Ads API (https://www.googleapis.com/auth/adwords) กับผู้ดูแลระบบโดเมน

    ขอให้ผู้ดูแลระบบโดเมนมอบสิทธิ์ทั่วทั้งโดเมนให้กับบัญชีบริการของคุณ

  3. หากคุณเป็นผู้ดูแลระบบโดเมน ให้ทำตามวิธีการในศูนย์ช่วยเหลือ

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