การตรวจสอบสิทธิ์และการให้สิทธิ์

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

คู่มือนี้ครอบคลุมวิธีกำหนดค่าไลบรารีของไคลเอ็นต์ Java สำหรับการตรวจสอบสิทธิ์ Google Ads API โดยใช้โฟลว์ OAuth 2.0 ที่พบบ่อยที่สุด 3 รายการ พร้อมทั้ง อธิบายข้อมูลเข้าสู่ระบบที่จำเป็น

ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลการเข้าถึง Google Ads API ได้ที่คู่มือโมเดลการเข้าถึง Google Ads

ข้อมูลเข้าสู่ระบบ

การเข้าถึง Google Ads API ต้องใช้ข้อมูลเข้าสู่ระบบ OAuth 2.0 และในบางกรณีต้องใช้รหัสลูกค้าสำหรับเข้าสู่ระบบ

ข้อมูลเข้าสู่ระบบ OAuth 2.0

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

ไลบรารีรองรับโฟลว์ 3 แบบ ได้แก่

  • โฟลว์บัญชีบริการ
  • ขั้นตอนการตรวจสอบสิทธิ์ผู้ใช้รายเดียว
  • ขั้นตอนการตรวจสอบสิทธิ์ผู้ใช้หลายคนหนึ่งเครื่อง

ดูรายละเอียดเกี่ยวกับขั้นตอน OAuth ของ Google Ads API ได้ที่ภาพรวมของ OAuth และทําตามวิธีการสําหรับขั้นตอนที่ตรงกับความต้องการของคุณมากที่สุดเพื่อ รับข้อมูลเข้าสู่ระบบที่จําเป็น

รหัสลูกค้าสำหรับการเข้าสู่ระบบ

ระบุรหัสลูกค้าของบัญชีดูแลจัดการที่ให้สิทธิ์เข้าถึง บัญชีที่ใช้แสดงโฆษณา (ไม่บังคับ) คุณต้องระบุข้อมูลนี้หากเข้าถึงบัญชีลูกค้าผ่านบัญชีดูแลจัดการ คุณไม่จำเป็นต้องระบุบัญชีดูแลจัดการทั้งหมดในเส้นทางไปยังรหัสลูกค้า เพียงระบุรหัสบัญชีดูแลจัดการระดับบนสุดที่คุณใช้สำหรับสิทธิ์เข้าถึง ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบที่เกี่ยวข้อง

ในไลบรารีของไคลเอ็นต์ รหัสลูกค้าสำหรับเข้าสู่ระบบจะระบุโดยคีย์ api.googleads.loginCustomerId ในไฟล์ ads.properties

การกำหนดค่า

คุณกำหนดค่าไลบรารีของไคลเอ็นต์ได้ด้วยไฟล์ ads.properties ตัวแปรสภาพแวดล้อม หรือแบบเป็นโปรแกรม คู่มือนี้มุ่งเน้นที่การใช้ads.properties ไฟล์ ดูรายละเอียดเกี่ยวกับตัวเลือกทั้งหมดได้ที่คู่มือการกำหนดค่า

หากใช้ไฟล์ ads.properties ให้วางไว้ในไดเรกทอรีหน้าแรก ~/ads.properties

เวิร์กโฟลว์ OAuth

เวิร์กโฟลว์ทั่วไป 3 อย่างที่ใช้เมื่อทำงานกับ Google Ads API

โฟลว์บัญชีบริการ

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

เมื่อมีไฟล์ JSON ของคีย์ส่วนตัวแล้ว ให้เพิ่มข้อมูลต่อไปนี้ลงในไฟล์ ads.properties

api.googleads.serviceAccountSecretsPath=INSERT_PATH_TO_JSON_HERE
# Only add this key if you are using Google Workspace domain-wide delegation
# to impersonate a user who has access to the Google Ads account.
# api.googleads.serviceAccountUser=USER_EMAIL_TO_IMPERSONATE

ดูข้อมูลเพิ่มเติมได้ที่คู่มือเวิร์กโฟลว์ของบัญชีบริการ

ขั้นตอนการตรวจสอบสิทธิ์ผู้ใช้รายเดียว

คุณอาจใช้เวิร์กโฟลว์นี้ได้หากใช้บัญชีบริการไม่ได้ เวิร์กโฟลว์นี้ ต้องมีขั้นตอนการกำหนดค่า 2 ขั้นตอนดังนี้

  1. ให้สิทธิ์เข้าถึงบัญชีทั้งหมดที่จะจัดการโดยใช้ Google Ads API แก่ผู้ใช้รายเดียว แนวทางที่ใช้กันโดยทั่วไปคือการให้สิทธิ์เข้าถึงบัญชีดูแลจัดการ Google Ads API แก่ผู้ใช้ และลิงก์บัญชี Google Ads เป้าหมายทั้งหมดภายใต้บัญชีดูแลจัดการนั้น
  2. ผู้ใช้เรียกใช้เครื่องมือบรรทัดคำสั่ง เช่น gcloud CLI หรือGenerateUserCredentials ตัวอย่างโค้ด เพื่อ ให้สิทธิ์แอปของคุณในการจัดการบัญชี Google Ads ทั้งหมดในนามของผู้ใช้

เมื่อมีข้อมูลเข้าสู่ระบบเหล่านี้แล้ว ให้เพิ่มข้อมูลต่อไปนี้ลงในไฟล์ ads.properties

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE

ดูข้อมูลเพิ่มเติมได้ที่คู่มือเวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้รายเดียว

ขั้นตอนการตรวจสอบสิทธิ์ผู้ใช้หลายคนหนึ่งเครื่อง

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

สำหรับแอปพลิเคชันแบบหลายคนหนึ่งเครื่อง ให้จัดเก็บรหัสไคลเอ็นต์ OAuth 2.0 และรหัสลับไคลเอ็นต์ของแอปพลิเคชันใน ads.properties (หรือที่เก็บการกำหนดค่าอื่น) ขณะเดียวกันก็จัดเก็บโทเค็นการรีเฟรชของผู้ใช้ปลายทางแต่ละรายอย่างปลอดภัยในฐานข้อมูลของแอปพลิเคชัน และส่งผ่านโทเค็นดังกล่าวแบบเป็นโปรแกรมในขณะรันไทม์เมื่อสร้าง UserCredentials และ GoogleAdsClient

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE

ดูข้อมูลเพิ่มเติมได้ที่คู่มือเวิร์กโฟลว์การตรวจสอบสิทธิ์แบบหลายคนหนึ่งเครื่อง

จัดการบัญชีหลายบัญชี

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

  1. ตัวอย่างโค้ด GetAccountHierarchy แสดงวิธี ดึงรายการบัญชีทั้งหมดภายใต้บัญชีดูแลจัดการ Google Ads
  2. ตัวอย่างโค้ด ListAccessibleCustomers แสดงวิธีดึงรายการบัญชีทั้งหมดที่ผู้ใช้มีสิทธิ์เข้าถึงโดยตรง จากนั้นจะใช้บัญชีเหล่านี้เป็นค่าที่ถูกต้องสำหรับloginCustomerIdได้

ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน

ไลบรารีของไคลเอ็นต์ Java ยังรองรับการตรวจสอบสิทธิ์ด้วยข้อมูลรับรองเริ่มต้นของแอปพลิเคชันด้วย

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

สำหรับ Google Ads API โปรดตรวจสอบว่าข้อมูลรับรองเริ่มต้นของแอปพลิเคชันเข้าถึงhttps://www.googleapis.com/auth/adwordsขอบเขต OAuth 2.0 ได้

หากต้องการใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน ให้ตั้งค่าตัวเลือก api.googleads.useApplicationDefaultCredentialsเป็น true ในไฟล์ ads.properties (หรือเรียกใช้ .enableApplicationDefaultCredentials() ใน GoogleAdsClient.newBuilder()) เมื่อใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน ไม่ควรตั้งค่ารหัสไคลเอ็นต์ รหัสลับไคลเอ็นต์ และโทเค็นการรีเฟรช