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

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

ทําความเข้าใจรูปแบบการเข้าถึง Google Ads

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

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

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

โฟลว์บัญชีบริการ

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

กำหนดค่าคลังดังนี้

// Initialize a GoogleAdsConfig instance.
GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};

// Initialize a GoogleAdsClient instance.
GoogleAdsClient client = new GoogleAdsClient(config);

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

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

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

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

เริ่มต้นไลบรารีโดยใช้ข้อมูลเข้าสู่ระบบ OAuth 2.0 ของผู้ใช้ดังนี้

GoogleAdsConfig config = new GoogleAdsConfig()
{
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
    OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = "INSERT_REFRESH_TOKEN_HERE"
};

GoogleAdsClient client = new GoogleAdsClient(config);

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

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

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

GoogleAdsConfig config = new GoogleAdsConfig()
{
    LoginCustomerId = userSession.LoginCustomerId,
    OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = userSession.RefreshToken
};

GoogleAdsClient client = new GoogleAdsClient(config);

ตั้งแต่ Google.Ads.GoogleAds v27.0.0 เป็นต้นไป คุณยังสามารถแทรกออบเจ็กต์ ICredential หรือ GoogleCredential ที่กำหนดค่าไว้ล่วงหน้าลงใน GoogleAdsConfig ได้โดยตรงโดยใช้พร็อพเพอร์ตี้ Credentials

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

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

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

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

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

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

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

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

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

หากต้องการใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน ให้ตั้งค่าตัวเลือก UseApplicationDefaultCredentialsเป็น true ใน GoogleAdsConfig (หรือตั้งค่าตัวแปรสภาพแวดล้อม USE_APPLICATION_DEFAULT_CREDENTIALS=true เมื่อ โหลดการกำหนดค่าด้วย config.LoadFromEnvironmentVariables()) ดังนี้

GoogleAdsConfig config = new GoogleAdsConfig()
{
    UseApplicationDefaultCredentials = true,
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);

ดูรายละเอียดเพิ่มเติมเกี่ยวกับ ตัวเลือกที่มีให้เพื่อกำหนดค่าไลบรารีของไคลเอ็นต์ .NET ได้ที่หน้าการกำหนดค่า