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 โปรดตรวจสอบว่าข้อมูลรับรองเริ่มต้นของแอปพลิเคชันเข้าถึงขอบเขต OAuth 2.0 https://www.googleapis.com/auth/adwords ได้
หากต้องการใช้ข้อมูลรับรองเริ่มต้นของแอปพลิเคชัน ให้ตั้งค่าตัวเลือก
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 ได้ในหน้าการกำหนดค่า