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

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

วิธีตั้งค่า 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