Authentication

Google Ads API ใช้โปรโตคอล OAuth 2.0 ในการตรวจสอบสิทธิ์และการให้สิทธิ์เช่นเดียวกับ Google API อื่นๆ 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 ของผู้ใช้ได้

คุณกำหนดค่าไลบรารี 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 ขั้นตอนดังนี้

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

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