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

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 ของผู้ใช้ได้

วิธีตั้งค่า OAuth2 สำหรับการเข้าถึง API โดยใช้ข้อมูลเข้าสู่ระบบของคุณเองกับบัญชีบริการในไลบรารีของไคลเอ็นต์ Perl มีดังนี้

  1. สร้างข้อมูลเข้าสู่ระบบ OAuth2

    ทำตามวิธีการเพื่อสร้างบัญชีบริการและไฟล์คีย์ JSON

  2. ตั้งค่าไลบรารีของไคลเอ็นต์

    ตั้งค่าเส้นทาง JSON ของคีย์ส่วนตัว (และ impersonatedEmail ที่ไม่บังคับ หากใช้การมอบสิทธิ์ทั่วทั้งโดเมนของ Google Workspace) ในการกำหนดค่า หากคุณใช้ไฟล์ googleads.properties ให้เพิ่มข้อมูลต่อไปนี้

    jsonKeyFilePath=PRIVATE_KEY_FILE_PATH
    # Optional unless using Google Workspace domain-wide delegation:
    impersonatedEmail=IMPERSONATED_EMAIL
    loginCustomerId=LOGIN_CUSTOMER_ID
    

    หากคุณใช้ตัวแปรสภาพแวดล้อม ให้เพิ่มรายการต่อไปนี้ลงในการกำหนดค่าหรือสภาพแวดล้อม Bash

    export GOOGLE_ADS_JSON_KEY_FILE_PATH=KEY_FILE_PATH
    export GOOGLE_ADS_IMPERSONATED_EMAIL=\
    IMPERSONATED_EMAIL
    export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID
    

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

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

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

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

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

  1. ในเทอร์มินัล ให้เรียกใช้ตัวอย่าง generate_user_credentials.pl ในไดเรกทอรี examples คุณสามารถแก้ไขค่า INSERT_XXX_HERE ในตัวอย่างก่อนเรียกใช้ หรือใช้อาร์กิวเมนต์บรรทัดคำสั่ง -client_id สำหรับรหัสไคลเอ็นต์และ -client_secret สำหรับรหัสลับไคลเอ็นต์

    perl generate_user_credentials.pl \
      -client_id OAUTH_CLIENT_ID \
      -client_secret OAUTH_CLIENT_SECRET
    
  2. ตัวอย่างโค้ดนี้จะแจ้งให้คุณไปที่ URL ซึ่งคุณต้องให้สิทธิ์แอปเข้าถึงบัญชี Google Ads ในนามของคุณ

    Paste this url in your browser:
    https://accounts.google.com/o/oauth2/v2/auth?response_type=code&access_type=offline...
    

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

    หน้าจอขอความยินยอม OAuth 2.0

    ระบบจะเปลี่ยนเส้นทางคุณไปยังหน้าที่มีข้อความระบุว่าการให้สิทธิ์สําเร็จ

    Authorization code was successfully retrieved.
    
  3. กลับไปที่คอนโซลที่คุณเรียกใช้ตัวอย่างโค้ด คุณจะเห็นว่าตัวอย่างโค้ดเสร็จสมบูรณ์แล้วและแสดงโทเค็นการรีเฟรชและวิธีการบางอย่าง ตามด้วยวิธีการที่คุณจะต้องปฏิบัติตามเพื่อกำหนดค่าไลบรารีของไคลเอ็นต์ ดังนี้

    Replace the following keys and values in your googleads.properties
    configuration file:
    
    clientId=***********************apps.googleusercontent.com
    clientSecret=****
    refreshToken=****
    
  4. กด Ctrl + C เพื่อสิ้นสุดกระบวนการ จากนั้นคัดลอกโทเค็นการรีเฟรชที่สร้างขึ้นพร้อมกับรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ลงในไฟล์ googleads.properties หรือบันทึกไว้ที่อื่นเพื่อใช้หากสร้างอินสแตนซ์ไลบรารีที่รันไทม์

คุณสามารถเริ่มต้นไลบรารีได้โดยใช้ข้อมูลเข้าสู่ระบบ OAuth 2.0 ของผู้ใช้โดยตั้งค่าต่อไปนี้ใน googleads.properties

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

หรือใช้ตัวแปรสภาพแวดล้อมดังนี้

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

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

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

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

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

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

clientId=OAUTH_CLIENT_ID
clientSecret=OAUTH_CLIENT_SECRET
refreshToken=REFRESH_TOKEN
loginCustomerId=LOGIN_CUSTOMER_ID

หรือใช้ตัวแปรสภาพแวดล้อมดังนี้

export GOOGLE_ADS_CLIENT_ID=OAUTH_CLIENT_ID
export GOOGLE_ADS_CLIENT_SECRET=OAUTH_CLIENT_SECRET
export GOOGLE_ADS_REFRESH_TOKEN=REFRESH_TOKEN
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=LOGIN_CUSTOMER_ID

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

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

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

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