เวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้รายเดียวจะใช้ฟีเจอร์การให้สิทธิ์และการจัดการผู้ใช้ที่ UI ของ Google Ads มีให้เพื่อมอบสิทธิ์เข้าถึงบัญชีที่จำเป็นทั้งหมดให้กับแอป ซึ่งคล้ายกับเวิร์กโฟลว์บัญชีบริการ เวิร์กโฟลว์การตรวจสอบสิทธิ์นี้มี 2 ขั้นตอน ดังนี้
- คุณให้สิทธิ์เข้าถึงบัญชี Google Ads ทั้งหมด ที่แอปควรจัดการแก่ผู้ใช้รายเดียว
- ผู้ใช้ให้สิทธิ์แอปของคุณในการจัดการบัญชี Google Ads ในนามของผู้ใช้ ซึ่งจะให้สิทธิ์เข้าถึงบัญชี Google Ads ทั้งหมดแก่แอป
เนื่องจากมีผู้ใช้เพียงรายเดียว คุณจึงใช้เครื่องมือต่างๆ เช่น gcloud CLI หรือ ตัวอย่างโค้ด GenerateUserCredential แทนการสร้างเวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้ OAuth 2.0 ของคุณเองได้
กรณีการใช้งานที่เกี่ยวข้องสำหรับเวิร์กโฟลว์นี้คือเมื่อบัญชีของคุณเข้าถึงได้ ผ่านการเข้าสู่ระบบของผู้ใช้เพียงไม่กี่ราย (เช่น ผู้ใช้ 3-4 ราย) ดังนั้นความพยายามในการพัฒนา เพื่อสร้าง เวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้ OAuth แบบเต็มจึงไม่คุ้มค่าเมื่อเทียบกับความพยายามในการขอรับการให้สิทธิ์สำหรับผู้ใช้ 3-4 รายโดยใช้เครื่องมือบรรทัดคำสั่ง เช่น gcloud CLI
ข้อเสีย
เวิร์กโฟลว์นี้มีข้อเสียบางประการเมื่อเทียบกับเวิร์กโฟลว์บัญชีบริการ ดังนี้
- เวิร์กโฟลว์การตรวจสอบสิทธิ์ผู้ใช้กำหนดให้คุณต้องสร้างรหัสไคลเอ็นต์และข้อมูลลับของไคลเอ็นต์ OAuth 2.0 ในคอนโซล Google Cloud ซึ่งต้องใช้ขั้นตอนการกำหนดค่ามากกว่าการสร้างบัญชีบริการและคีย์
- แอปของคุณอาจต้องผ่านกระบวนการยืนยันแอป Google Cloud เพิ่มเติม
- หากผู้ใช้ที่ได้รับอนุญาตออกจากทีมหรือบริษัท แอปของคุณอาจหยุดทำงานหากคุณนำผู้ใช้ออกจากบัญชีหรือปิดใช้บัญชีผู้ใช้ บัญชีบริการไม่ได้เชื่อมโยงกับผู้ใช้แต่ละราย จึงหลีกเลี่ยงความเสี่ยงนี้ได้
- ผู้ใช้ที่ให้สิทธิ์บัญชี Google Ads ควรใช้ความระมัดระวังเป็นพิเศษ เช่น เปิดใช้การตรวจสอบสิทธิ์แบบ 2 ปัจจัย เพื่อป้องกันไม่ให้บัญชี Google ถูกบุกรุกเนื่องจากความปลอดภัยไม่ดี มัลแวร์ หรือฟิชชิง บัญชีบริการมีความเสี่ยงต่อปัญหานี้น้อยกว่าเนื่องจากวิธีการโจมตีบางวิธีใช้ไม่ได้กับบัญชีบริการโดยตรง
สร้างข้อมูลเข้าสู่ระบบ
ทำตามวิธีการเพื่อกำหนดค่าหน้าจอขอความยินยอม OAuth สำหรับแอปพลิเคชันและเพิ่ม
https://www.googleapis.com/auth/adwordsเป็นขอบเขต OAuth 2.0 ดูรายละเอียดได้ที่ การตั้งค่าหน้าจอขอความยินยอม OAuthสร้างรหัสไคลเอ็นต์และข้อมูลลับของไคลเอ็นต์โดยทำตาม วิธีการ เมื่อสร้างไคลเอ็นต์ OAuth 2.0 แล้ว ให้ดาวน์โหลดไฟล์ JSON ของไคลเอ็นต์โดยคลิกไอคอนดาวน์โหลดไคลเอ็นต์ OAuth ก่อน แล้วคลิกปุ่มดาวน์โหลด JSON ในหน้าจอถัดไป บันทึกไฟล์เป็น
credentials.jsonระบุบัญชีผู้ใช้ที่มีสิทธิ์เข้าถึงบัญชี Google Ads ทั้งหมดที่คุณต้องการ จัดการโดยใช้แอป หากมีบัญชีที่ไม่มีสิทธิ์เข้าถึง ให้ ทำตามวิธีการเพื่อให้สิทธิ์เข้าถึงที่จำเป็น
ดาวน์โหลดและติดตั้ง gcloud CLI เมื่อติดตั้งแล้ว ให้ตรวจสอบว่าเครื่องมือทำงานอย่างถูกต้องโดยเรียกใช้คำสั่ง
gcloud versionจากพรอมต์บรรทัดคำสั่ง เอาต์พุตอาจมีลักษณะดังนี้:~$ gcloud version Google Cloud SDK 492.0.0 alpha 2024.09.06 beta 2024.09.06 bq 2.1.8 bundled-python3-unix 3.11.9 core 2024.09.06 enterprise-certificate-proxy 0.3.2 gcloud-crc32c 1.0.0 gsutil 5.30
สร้างโทเค็นการรีเฟรช OAuth 2.0 โดยเรียกใช้เครื่องมือ gcloud CLI ดังนี้
gcloud auth application-default
login --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
--client-id-file=<path_to_credentials.json>ไฟล์
credentials.jsonมาจากขั้นตอนก่อนหน้าคำสั่ง
gcloudจะเปิดหน้าต่างเข้าสู่ระบบบัญชี Google ในหน้าต่างเบราว์เซอร์ใหม่และนำคุณผ่านขั้นตอนการตรวจสอบสิทธิ์ OAuth 2.0 ตรวจสอบว่าคุณลงชื่อเข้าใช้ในฐานะผู้ใช้ที่คุณเลือกจากขั้นตอนก่อนหน้า หากแอปของคุณ ไม่ได้รับการยืนยัน คุณอาจเห็นหน้าจอ คำเตือน ในกรณีดังกล่าว คุณสามารถคลิกแสดงขั้นสูง ลิงก์ แล้วคลิกไปที่ PROJECT_NAME (ไม่ได้รับการยืนยัน) ตัวเลือกได้อย่างปลอดภัย
หลังจากตรวจสอบขอบเขตแล้ว ให้คลิกปุ่มดำเนินการต่อ เพื่อให้สิทธิ์ เบราว์เซอร์จะไปยัง
https://cloud.google.com/sdk/auth_successซึ่งบ่งชี้ว่าการตรวจสอบสิทธิ์สำเร็จ หน้าเว็บจะแสดงข้อความต่อไปนี้Authorization code granted. Close this tab.คำสั่ง
gcloudจะพิมพ์ข้อความต่อไปนี้Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]ตอนนี้ให้เปิดไฟล์
application_default_credentials.jsonเนื้อหาของไฟล์ควรมีลักษณะคล้ายกับตัวอย่างต่อไปนี้{ "account": "", "client_id": "******.apps.googleusercontent.com", "client_secret": "******", "refresh_token": "******", "type": "authorized_user", "universe_domain": "googleapis.com" }
การกำหนดค่าไลบรารีของไคลเอ็นต์
เลือกแท็บที่ตรงกับภาษาโปรแกรมเพื่อดูวิธีการกำหนดค่าไลบรารีของไคลเอ็นต์
Java
กำหนดค่าคีย์ต่อไปนี้ในไฟล์ ads.properties
api.googleads.clientId=INSERT_CLIENT_ID_HERE api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
ดูตัวเลือกเพิ่มเติมได้ในคู่มือการกำหนดค่า
.NET
คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ในขณะรันไทม์ โดยใช้ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ที่คุณกำลังเรียกใช้ API สำหรับบัญชีของผู้ใช้
GoogleAdsConfig config = new GoogleAdsConfig() { OAuth2Mode = OAuth2Flow.APPLICATION, OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID", OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET", OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN", ... }; GoogleAdsClient client = new GoogleAdsClient(config);
ดูตัวเลือกเพิ่มเติมได้ในคู่มือการกำหนดค่า
Python
กำหนดค่าคีย์ต่อไปนี้ในไฟล์ google-ads.yaml
client_id: INSERT_OAUTH2_CLIENT_ID_HERE client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE refresh_token: INSERT_REFRESH_TOKEN_HERE login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
ดูตัวเลือกเพิ่มเติมได้ในคู่มือการกำหนดค่า
PHP
กำหนดค่าคีย์ต่อไปนี้ในไฟล์ google_ads_php.ini
[GOOGLE_ADS] loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE" [OAUTH2] clientId = "INSERT_OAUTH2_CLIENT_ID_HERE" clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE" refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"
ดูตัวเลือกเพิ่มเติมได้ในคู่มือการกำหนดค่า
Ruby
กำหนดค่าคีย์ต่อไปนี้ในไฟล์
google_ads_config.rb
Google::Ads::GoogleAds::Config.new do |c| c.client_id = 'INSERT_CLIENT_ID_HERE' c.client_secret = 'INSERT_CLIENT_SECRET_HERE' c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE' c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE' c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE' end
ดูตัวเลือกเพิ่มเติมได้ในคู่มือการกำหนดค่า
Perl
กำหนดค่าคีย์ต่อไปนี้ในไฟล์ googleads.properties
clientId=INSERT_OAUTH2_CLIENT_ID_HERE clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
ดูตัวเลือกเพิ่มเติมได้ในคู่มือการกำหนดค่า
curl
เริ่มต้นด้วยการใช้ไคลเอ็นต์ HTTP เพื่อดึงโทเค็นเพื่อการเข้าถึง OAuth 2.0 คู่มือนี้ใช้คำสั่ง curl
curl \ --data "grant_type=refresh_token" \ --data "client_id=CLIENT_ID" \ --data "client_secret=CLIENT_SECRET" \ --data "refresh_token=REFRESH_TOKEN" \ https://www.googleapis.com/oauth2/v3/token
ตอนนี้คุณสามารถใช้โทเค็นเพื่อการเข้าถึงในการเรียกใช้ API ได้แล้ว ตัวอย่างต่อไปนี้
แสดงวิธีเรียกใช้รายงานแคมเปญโดยใช้
GoogleAdsService.SearchStream เพื่อดึงข้อมูล
แคมเปญในบัญชี คู่มือนี้ไม่ได้กล่าวถึงรายละเอียดของ
การรายงาน
curl -i -X POST https://googleads.googleapis.com/v24/customers/CUSTOMER_ID/googleAds:searchStream \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "developer-token: DEVELOPER_TOKEN" \ -H "login-customer-id: LOGIN_CUSTOMER_ID" \ --data-binary "@query.json"
เนื้อหาของ query.json มีดังนี้
{ "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id" }