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
เวิร์กโฟลว์ที่ใช้กันทั่วไปเมื่อทำงานกับ Google Ads API มีอยู่ 3 แบบ
โฟลว์บัญชีบริการ
เราขอแนะนำให้ใช้เวิร์กโฟลว์นี้หากเวิร์กโฟลว์ของคุณไม่จำเป็นต้องมีการโต้ตอบกับมนุษย์ เวิร์กโฟลว์นี้ต้องมีขั้นตอนการกำหนดค่า ซึ่งผู้ใช้จะเพิ่มบัญชีบริการลงในบัญชี Google Ads จากนั้นแอปจะใช้ข้อมูลเข้าสู่ระบบของบัญชีบริการเพื่อจัดการบัญชี Google Ads ของผู้ใช้ได้
คุณกำหนดค่าไลบรารี PHP ได้ดังนี้
$oAuth2Credential = (new OAuth2TokenBuilder())
->withJsonKeyFilePath('INSERT_PATH_TO_JSON_KEY_FILE_HERE')
// Optional in v32.1.0 and later (defaults to
// 'https://www.googleapis.com/auth/adwords').
->withScopes('https://www.googleapis.com/auth/adwords')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->build();
ดูข้อมูลเพิ่มเติมได้ที่คู่มือเวิร์กโฟลว์บัญชีบริการ
ขั้นตอนการตรวจสอบสิทธิ์ผู้ใช้รายเดียว
คุณสามารถใช้เวิร์กโฟลว์นี้ได้หากใช้บัญชีบริการไม่ได้ เวิร์กโฟลว์นี้ต้องมีการกำหนดค่า 2 ขั้นตอนดังนี้
- ให้สิทธิ์ผู้ใช้รายเดียวเข้าถึงบัญชีทั้งหมดที่จะจัดการโดยใช้ Google Ads API แนวทางที่พบบ่อยคือการให้สิทธิ์ผู้ใช้เข้าถึงบัญชีดูแลจัดการ Google Ads API และลิงก์บัญชี Google Ads ทั้งหมดภายใต้บัญชีดูแลจัดการนั้น
- จากนั้นผู้ใช้รายนั้นจะเรียกใช้เครื่องมือบรรทัดคำสั่ง เช่น
GenerateUserCredentialsเพื่อให้สิทธิ์แอปของคุณจัดการบัญชี Google Ads ทั้งหมดในนามของผู้ใช้
คุณสามารถเริ่มต้นไลบรารีได้โดยใช้ข้อมูลเข้าสู่ระบบ OAuth 2.0 ของผู้ใช้ดังนี้
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
ดูข้อมูลเพิ่มเติมได้ที่คู่มือเวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้รายเดียว
ขั้นตอนการตรวจสอบสิทธิ์ผู้ใช้หลายคนหนึ่งเครื่อง
เราขอแนะนำให้ใช้เวิร์กโฟลว์นี้หากแอปของคุณอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้และให้สิทธิ์แอปในการจัดการบัญชี Google Ads ในนามของผู้ใช้ แอปของคุณจะสร้างและจัดการข้อมูลเข้าสู่ระบบของผู้ใช้ OAuth 2.0 สำหรับเซสชันของผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์แต่ละเซสชันแบบไดนามิก คุณสามารถเริ่มต้นไลบรารีโดยใช้ข้อมูลเข้าสู่ระบบของผู้ใช้ที่ลงชื่อเข้าใช้ได้ดังนี้
// Construct credentials dynamically per authenticated user session.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken($userRefreshToken)
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId($userLoginCustomerId)
->build();
ดูข้อมูลเพิ่มเติมได้ที่คู่มือเวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้หลายคนหนึ่งเครื่อง
ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน
ไลบรารีของไคลเอ็นต์ PHP ยังรองรับการตรวจสอบสิทธิ์ด้วยข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน (ADC) ด้วย เมื่อไม่ได้ตั้งค่าข้อมูลรับรองของโหมดแอปพลิเคชัน (clientId, clientSecret, refreshToken) หรือโหมดบัญชีบริการ (jsonKeyFilePath) ใน OAuth2TokenBuilder การเรียกใช้ build() จะเปลี่ยนกลับไปใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชันโดยอัตโนมัติ ดังนี้
$oAuth2Credential = (new OAuth2TokenBuilder())->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
จัดการบัญชีหลายบัญชี
เป็นเรื่องปกติที่ผู้ใช้จะจัดการบัญชี Google Ads มากกว่า 1 บัญชี ไม่ว่าจะผ่านการเข้าถึงบัญชีโดยตรงหรือผ่านบัญชีดูแลจัดการ Google Ads ไลบรารีของไคลเอ็นต์ PHP มีตัวอย่างโค้ดต่อไปนี้ซึ่งแสดงวิธีจัดการกับกรณีดังกล่าว
- ตัวอย่างโค้ด
GetAccountHierarchyแสดงวิธีดึงข้อมูลรายการบัญชีทั้งหมดในบัญชีดูแลจัดการ Google Ads - ตัวอย่างโค้ด
ListAccessibleCustomersแสดงวิธีดึงข้อมูลรายการบัญชีทั้งหมดที่ผู้ใช้มีสิทธิ์เข้าถึงโดยตรง จากนั้นคุณจะใช้บัญชีเหล่านี้เป็นค่าที่ถูกต้องสำหรับการตั้งค่าloginCustomerIdได้