บัญชีบริการ

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

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