Google Ads API ใช้โปรโตคอล OAuth 2.0 สำหรับการตรวจสอบสิทธิ์และการให้สิทธิ์เช่นเดียวกับ Google APIs อื่นๆ OAuth 2.0 ช่วยให้แอปพลิเคชันไคลเอ็นต์ Google Ads API ของคุณ เข้าถึงบัญชี Google Ads ของผู้ใช้ได้โดยไม่ต้องจัดการหรือ จัดเก็บข้อมูลการเข้าสู่ระบบของผู้ใช้
ทําความเข้าใจรูปแบบการเข้าถึง Google Ads
หากต้องการทํางานกับ Google Ads API อย่างมีประสิทธิภาพ คุณควรทําความเข้าใจวิธีการทํางานของโมเดลการเข้าถึง Google Ads เราขอแนะนำให้อ่านคู่มือรูปแบบการเข้าถึง Google Ads
เวิร์กโฟลว์ OAuth
เวิร์กโฟลว์ทั่วไป 3 รายการที่ใช้เมื่อทำงานกับ Google Ads API
ขั้นตอนการทำงานของบัญชีบริการ
นี่คือเวิร์กโฟลว์ที่แนะนำหากเวิร์กโฟลว์ของคุณไม่จำเป็นต้องมีการโต้ตอบจากบุคคล เวิร์กโฟลว์นี้ต้องมีขั้นตอนการกำหนดค่า ซึ่งผู้ใช้จะเพิ่มบัญชีบริการลงในบัญชี Google Ads จากนั้นแอปจะใช้ข้อมูลเข้าสู่ระบบของบัญชีบริการเพื่อจัดการบัญชี Google Ads ของผู้ใช้ได้ กำหนดค่าไลบรารี Python ดังนี้
หากใช้ไฟล์
google-ads.yamlหรือสตริง YAML ให้เพิ่มข้อมูลต่อไปนี้ลงในการกำหนดค่าเพื่อตั้งค่าเส้นทางไปยังไฟล์ JSON ของคีย์ส่วนตัวในสภาพแวดล้อมในเครื่องjson_key_file_path: JSON_KEY_FILE_PATHจากนั้นเรียกใช้เมธอด
load_from_storageหรือload_from_stringfrom google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_storage()หากใช้
dictเพื่อกำหนดค่าไลบรารี ให้ใส่คู่คีย์-ค่าต่อไปนี้และเรียกใช้เมธอดload_from_dictโดยส่งการกำหนดค่าdictเข้าไปfrom google.ads.googleads.client import GoogleAdsClient configuration = { # ... "json_key_file_path": JSON_KEY_FILE_PATH # ... } client = GoogleAdsClient.load_from_dict(configuration)หากใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มรายการต่อไปนี้ลงใน
bashการกำหนดค่าหรือสภาพแวดล้อมexport GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATHจากนั้นเรียกใช้เมธอด
load_from_envดังนี้from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_env() ```
หากมีตัวเลือกการกำหนดค่า json_key_file_path ในวิธีการกำหนดค่าเหล่านี้ และตัวเลือก use_application_default_credentials เป็น False หรือไม่ได้ตั้งค่า ไลบรารีจะให้สิทธิ์โดยอัตโนมัติโดยใช้ขั้นตอนบัญชีบริการ
ดูข้อมูลเพิ่มเติมได้ที่คู่มือเวิร์กโฟลว์บัญชีบริการ
โฟลว์การตรวจสอบสิทธิ์ผู้ใช้รายเดียว
คุณอาจใช้เวิร์กโฟลว์นี้ได้หากใช้บัญชีบริการไม่ได้ เวิร์กโฟลว์นี้ ต้องมีขั้นตอนการกำหนดค่า 2 ขั้นตอนดังนี้
ให้สิทธิ์ผู้ใช้รายเดียวเข้าถึงบัญชีทั้งหมดที่จะจัดการโดยใช้ Google Ads API แนวทางที่ใช้กันโดยทั่วไปคือการให้สิทธิ์เข้าถึงบัญชีดูแลจัดการ Google Ads API แก่ผู้ใช้ และลิงก์บัญชี Google Ads ทั้งหมดภายใต้บัญชีดูแลจัดการนั้น
ผู้ใช้เรียกใช้เครื่องมือ เช่น gcloud CLI หรือ
generate_user_credentialsตัวอย่างโค้ด เพื่อให้สิทธิ์แอปของคุณในการจัดการบัญชี Google Ads ทั้งหมดในนามของผู้ใช้
คุณเริ่มต้นใช้งานไลบรารีได้โดยใช้ข้อมูลเข้าสู่ระบบ OAuth 2.0 ของผู้ใช้ดังนี้
หากใช้เครื่องมือ gcloud CLI (แนะนำ)
ทำตามเอกสารประกอบสร้างข้อมูลเข้าสู่ระบบเพื่อตั้งค่า ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) ในสภาพแวดล้อมในเครื่อง
เพิ่มการกำหนดค่าต่อไปนี้ในสตริง
google-ads.yamlหรือ YAMLuse_application_default_credentials: trueจากนั้นเรียกใช้เมธอด
load_from_storageหรือload_from_stringfrom google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_storage()หากใช้
dictเพื่อกำหนดค่าไลบรารี ให้ใส่คู่คีย์-ค่าต่อไปนี้ และเรียกใช้เมธอดload_from_dictfrom google.ads.googleads.client import GoogleAdsClient configuration = { # ... "use_account_default_credentials": True # ... } client = GoogleAdsClient.load_from_dict(configuration)หากใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มรายการต่อไปนี้ลงใน
bashการกำหนดค่าหรือสภาพแวดล้อมexport GOOGLE_ADS_USE_ACCOUNT_DEFAULT_CREDENTIALS=trueจากนั้นเรียกใช้เมธอด
load_from_envดังนี้from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_env()
หากจัดการโทเค็น OAuth โดยตรง
ทําตามขั้นตอนเพื่อตั้งค่าโปรเจ็กต์คอนโซล และดาวน์โหลดไฟล์ JSON ที่มีรหัสไคลเอ็นต์และ รหัสลับไคลเอ็นต์ของโปรเจ็กต์
โคลนไลบรารีของไคลเอ็นต์ Python ไปยังเครื่องของคุณ แล้วเปลี่ยนเป็นไดเรกทอรีของไลบรารีโดยทำดังนี้
$ git clone https://github.com/googleads/google-ads-python.git $ cd google-ads-pythonเรียกใช้ตัวอย่างโดยระบุเส้นทางแบบเต็มไปยังไฟล์ JSON ที่ดาวน์โหลด ในขั้นตอนที่ 1
$ python examples/authentication/generate_user_credentials.py -c PATH_TO_CREDENTIALS_JSONเมื่อดำเนินการเสร็จแล้ว ระบบจะพิมพ์โทเค็นการรีเฟรชไปยังคอนโซล คัดลอกและ บันทึกไว้สำหรับขั้นตอนถัดไป
กำหนดค่าไลบรารีโดยเพิ่มการตั้งค่าต่อไปนี้ลงในการกำหนดค่าที่คุณเลือก
เพิ่มการกำหนดค่าต่อไปนี้ในสตริง
google-ads.yamlหรือ YAMLclient_id: INSERT_OAUTH2_CLIENT_ID_HERE client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE refresh_token: INSERT_REFRESH_TOKEN_HEREจากนั้นเรียกใช้เมธอด
load_from_storageหรือload_from_stringfrom google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_storage()หากคุณใช้
dictเพื่อกำหนดค่าไลบรารี ให้ใส่คู่คีย์-ค่าต่อไปนี้และเรียกใช้เมธอดload_from_dictfrom google.ads.googleads.client import GoogleAdsClient configuration = { # ... "client_id": INSERT_OAUTH2_CLIENT_ID_HERE "client_secret": INSERT_OAUTH2_CLIENT_SECRET_HERE "refresh_token": INSERT_REFRESH_TOKEN_HERE # ... } client = GoogleAdsClient.load_from_dict(configuration)หากใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มรายการต่อไปนี้ลงใน
bashการกำหนดค่าหรือสภาพแวดล้อมexport GOOGLE_ADS_CLIENT_ID=INSERT_OAUTH2_CLIENT_ID_HERE export GOOGLE_ADS_CLIENT_SECRET=INSERT_OAUTH2_CLIENT_SECRET_HERE export GOOGLE_ADS_REFRESH_TOKEN=INSERT_REFRESH_TOKEN_HEREจากนั้นเรียกใช้เมธอด
load_from_envดังนี้from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_env()
ดูข้อมูลเพิ่มเติมได้ที่ คู่มือเวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้รายเดียว
ขั้นตอนการตรวจสอบสิทธิ์แบบหลายผู้ใช้
นี่คือเวิร์กโฟลว์ที่แนะนําหากแอปของคุณอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้และ ให้สิทธิ์แอปของคุณในการจัดการบัญชี Google Ads ในนามของผู้ใช้ แอปของคุณ สร้างและจัดการข้อมูลเข้าสู่ระบบของผู้ใช้ OAuth 2.0 คุณเริ่มต้นใช้งานไลบรารีได้โดยใช้ข้อมูลเข้าสู่ระบบของผู้ใช้ดังนี้ ซึ่งถือว่าแอปพลิเคชันของคุณได้รับข้อมูลเข้าสู่ระบบในขณะรันไทม์ ไม่ว่าจะโดยการเรียกใช้โฟลว์การให้สิทธิ์หรือโดยการโหลดจากที่เก็บข้อมูล
dict เป็นกลไกการกำหนดค่าที่ง่ายที่สุดในการใช้เมื่อได้รับข้อมูลเข้าสู่ระบบขณะรันไทม์
from google.ads.googleads.client import GoogleAdsClient
configuration = {
# ...
"client_id": client_id
"client_secret": client_secret
"refresh_token": refresh_token
# ...
}
client = GoogleAdsClient.load_from_dict(configuration)
ดูข้อมูลเพิ่มเติมได้ที่ คู่มือเวิร์กโฟลว์การตรวจสอบสิทธิ์แบบหลายผู้ใช้
การตรวจสอบสิทธิ์ด้วยตนเอง
คุณสร้างข้อมูลเข้าสู่ระบบการให้สิทธิ์ได้ด้วยวิธีใดก็ได้และระบุข้อมูลดังกล่าวให้ GoogleAdsClient ด้วยตนเองโดยการสร้างอินสแตนซ์ของคลาสไคลเอ็นต์โดยตรง สมมติว่าออบเจ็กต์ข้อมูลเข้าสู่ระบบที่คุณสร้างเป็นอินสแตนซ์ของ
google.auth.credentials.Credentials คุณจะส่งผ่านออบเจ็กต์ดังกล่าวได้ดังนี้
from google.ads.googleads.client import GoogleAdsClient
from google.auth import default
# This line retrieves ADCs from the environment. You can use any authentication
# approach as long as the `credentials` variable is an instance of
# `google.auth.credentials.Credentials`
credentials = default(scopes=["https://www.googleapis.com/auth/adwords"])
client = GoogleAdsClient(
credentials=credentials,
# ... insert remaining parameters
)
จะเกิดอะไรขึ้นหากผู้ใช้ของฉันจัดการหลายบัญชี
ผู้ใช้มักจะจัดการบัญชี Google Ads มากกว่า 1 บัญชี ไม่ว่าจะผ่านการเข้าถึงบัญชีโดยตรงหรือผ่านบัญชีดูแลจัดการ Google Ads ไลบรารีไคลเอ็นต์ Python มีตัวอย่างโค้ดต่อไปนี้ที่แสดงวิธี จัดการกรณีดังกล่าว
- ตัวอย่างโค้ด
get_account_hierarchyแสดงวิธี ดึงรายการบัญชีทั้งหมดภายใต้บัญชีดูแลจัดการ Google Ads - ตัวอย่างโค้ด
list_accessible_customersแสดงวิธีดึงรายการบัญชีทั้งหมดที่ผู้ใช้มีสิทธิ์เข้าถึงโดยตรง จากนั้นจะใช้บัญชีเหล่านี้เป็นค่าที่ถูกต้องสำหรับ การตั้งค่าlogin_customer_idได้