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