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

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 และในบางกรณี รหัสลูกค้าสำหรับเข้าสู่ระบบ

โทเค็นของนักพัฒนา

โทเค็นของนักพัฒนาซอฟต์แวร์จะลิงก์กับบัญชีดูแลจัดการ และดูได้ในอินเทอร์เฟซเว็บของ Google Ads

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

ในไลบรารีของไคลเอ็นต์ คุณระบุโทเค็นของนักพัฒนาซอฟต์แวร์ได้โดยใช้คีย์ api.googleads.developerToken ในไฟล์ ads.properties

ข้อมูลเข้าสู่ระบบ 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 ดูรายละเอียดเกี่ยวกับตัวเลือกทั้งหมดได้ในคู่มือการกำหนดค่าConfiguration guide

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

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

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

ขั้นตอนบัญชีบริการ

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

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

api.googleads.serviceAccountSecretsPath=PRIVATE_KEY_JSON_FILE_PATH
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE
# Only add this key if you are using impersonation to access an account
# other than the service account itself.
# api.googleads.serviceAccountUser=USER_EMAIL_TO_IMPERSONATE

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

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

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

  1. ให้สิทธิ์ผู้ใช้รายเดียวเข้าถึงบัญชีทั้งหมดที่จะจัดการโดยใช้ Google Ads API วิธีที่ใช้กันโดยทั่วไปคือให้สิทธิ์ผู้ใช้เข้าถึงบัญชีดูแลจัดการ Google Ads API และลิงก์บัญชี Google Ads ทั้งหมดภายใต้บัญชีดูแลจัดการนั้น
  2. ผู้ใช้เรียกใช้เครื่องมือบรรทัดคำสั่ง เช่น gcloud หรือตัวอย่างโค้ด 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
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE

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

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

เวิร์กโฟลว์นี้เป็นเวิร์กโฟลว์ที่แนะนำหากแอปของคุณอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้และให้สิทธิ์แอปของคุณในการจัดการบัญชี Google Ads ในนามของผู้ใช้ The 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
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE

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

จะเกิดอะไรขึ้นหากผู้ใช้ของฉันจัดการหลายบัญชี

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

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

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

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

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

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

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