ในเวิร์กโฟลว์การตรวจสอบสิทธิ์แบบหลายผู้ใช้ คุณจะสร้างโฟลว์ OAuth ของคุณเองเพื่อ ตรวจสอบสิทธิ์ผู้ใช้ มีแอปหลายประเภทที่กล่าวถึงในส่วนหนึ่งของเอกสารประกอบเกี่ยวกับ Google Identity พร้อมกับการกำหนดค่าโปรเจ็กต์ Google Cloud Console ที่คุณต้องใช้เพื่อรองรับแอปแต่ละประเภท Google Ads API รองรับแอปทุกประเภทที่กล่าวมา รายละเอียดทางเทคนิคเพิ่มเติมที่ควรทราบมีดังนี้
กำหนดค่าแอปพลิเคชันเพื่อขอขอบเขต OAuth 2.0 ต่อไปนี้
https://www.googleapis.com/auth/adwordsแอปของคุณอาจต้องทำการเรียก API ในนามของผู้ใช้ขณะที่ผู้ใช้ออฟไลน์ สถานการณ์ทั่วไปคือการดาวน์โหลดเมตริกบัญชีแบบออฟไลน์เพื่อ สร้างรายงานและทำการวิเคราะห์บัญชี ด้วยเหตุนี้ เราจึง ขอแนะนำให้ขอสิทธิ์เข้าถึงแบบออฟไลน์ของ OAuth
ทำกระบวนการยืนยันแอป OAuth ให้เสร็จสมบูรณ์เพื่อรับการยืนยันแอป
ภาพรวมเวิร์กโฟลว์
การติดตั้งใช้งานเวิร์กโฟลว์การตรวจสอบสิทธิ์แบบหลายคนหนึ่งเครื่องมี 3 ขั้นตอนหลักดังนี้
- นำผู้ใช้ไปยังหน้าจอขอความยินยอม OAuth: เปลี่ยนเส้นทางผู้ใช้แต่ละรายไปยัง
ปลายทางการให้สิทธิ์ OAuth 2.0 ของ Google ซึ่งขอ
ขอบเขต
https://www.googleapis.com/auth/adwordsและสิทธิ์เข้าถึงแบบออฟไลน์ - แลกรหัสการให้สิทธิ์เป็นโทเค็น: หลังจากที่ผู้ใช้ให้สิทธิ์แล้ว ให้บันทึกรหัสการให้สิทธิ์ที่ส่งคืนมาและแลกเป็นโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช
- จัดเก็บโทเค็นและเริ่มต้นไคลเอ็นต์ที่รันไทม์: จัดเก็บโทเค็นการรีเฟรชของผู้ใช้แต่ละรายอย่างปลอดภัยใน Datastore และส่งต่อข้อมูลเข้าสู่ระบบของผู้ใช้เมื่อเริ่มต้นอินสแตนซ์
GoogleAdsClientที่รันไทม์
การกำหนดค่าไลบรารีของไคลเอ็นต์
เมื่อให้สิทธิ์ผู้ใช้และรับข้อมูลเข้าสู่ระบบ OAuth 2.0 แล้ว คุณจะกำหนดค่า ไลบรารีของไคลเอ็นต์ได้โดยทำตามวิธีการในแท็บที่สอดคล้องกับ ภาษาโปรแกรมของคุณ
Java
คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้
ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้าง
การเรียก API ไปยังบัญชีของผู้ใช้
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
.setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
.setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the OAuth credentials which provide Google Ads account
// access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
.build();
ดูตัวเลือกเพิ่มเติมได้ที่คู่มือการกำหนดค่า
.NET
คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้
ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้าง
การเรียก API ไปยังบัญชีของผู้ใช้
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};
GoogleAdsClient client = new GoogleAdsClient(config);
ดูตัวเลือกเพิ่มเติมได้ที่คู่มือการกำหนดค่า
Python
คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้
ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้าง
การเรียก API ไปยังบัญชีของผู้ใช้
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
"client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
"client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
ดูตัวเลือกเพิ่มเติมได้ที่คู่มือการกำหนดค่า
PHP
คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้
ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้าง
การเรียก API ไปยังบัญชีของผู้ใช้
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
ดูตัวเลือกเพิ่มเติมได้ที่คู่มือการกำหนดค่า
Ruby
คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้
ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้าง
การเรียก API ไปยังบัญชีของผู้ใช้
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
ดูตัวเลือกเพิ่มเติมได้ที่คู่มือการกำหนดค่า
Perl
คุณสามารถเริ่มต้นอินสแตนซ์ GoogleAdsClient ได้ที่รันไทม์โดยใช้
ข้อมูลเข้าสู่ระบบที่คุณได้รับจากผู้ใช้ซึ่งคุณกำลังสร้าง
การเรียก API ไปยังบัญชีของผู้ใช้
my $api_client = Google::Ads::GoogleAds::Client->new({
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_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://oauth2.googleapis.com/tokenคุณใช้โทเค็นเพื่อการเข้าถึงในการเรียก API ได้ ตัวอย่างต่อไปนี้
แสดงวิธีเรียกใช้รายงานแคมเปญโดยใช้เมธอด
GoogleAdsService.SearchStream เพื่อดึงข้อมูล
แคมเปญในบัญชี คู่มือนี้ไม่ได้กล่าวถึงรายละเอียดของการรายงาน
curl -i -X POST \
https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_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"
}