Trong quy trình xác thực nhiều người dùng, bạn sẽ tạo quy trình OAuth của riêng mình để xác thực người dùng. Có nhiều loại ứng dụng được đề cập trong tài liệu về Google Identity, cùng với cấu hình dự án Google Cloud Console mà bạn cần để hỗ trợ từng loại ứng dụng. Google Ads API hỗ trợ tất cả các loại ứng dụng này. Những thông tin kỹ thuật bổ sung cần lưu ý là:
Định cấu hình ứng dụng của bạn để yêu cầu phạm vi OAuth 2.0 sau:
https://www.googleapis.com/auth/adwordsỨng dụng của bạn có thể phải thực hiện các lệnh gọi API thay cho người dùng khi họ không kết nối mạng. Một trường hợp phổ biến là tải các chỉ số tài khoản xuống khi không có mạng để tạo báo cáo và thực hiện phân tích tài khoản. Vì lý do này, bạn nên yêu cầu quyền truy cập ngoại tuyến OAuth.
Hoàn tất quy trình xác minh Ứng dụng OAuth để ứng dụng của bạn được xác minh.
Tổng quan về quy trình công việc
Việc triển khai quy trình xác thực nhiều người dùng bao gồm 3 bước chính:
- Chuyển người dùng đến màn hình xin phép OAuth: Chuyển hướng từng người dùng đến điểm cuối uỷ quyền OAuth 2.0 của Google để yêu cầu phạm vi
https://www.googleapis.com/auth/adwordsvà quyền truy cập ngoại tuyến. - Trao đổi mã uỷ quyền để lấy mã thông báo: Sau khi người dùng cấp quyền, hãy thu thập mã uỷ quyền được trả về và trao đổi mã đó để lấy mã truy cập và mã làm mới.
- Lưu trữ mã thông báo và khởi chạy ứng dụng khách trong thời gian chạy: Lưu trữ an toàn mã làm mới của mỗi người dùng trong kho dữ liệu và truyền thông tin đăng nhập của người dùng khi khởi chạy phiên bản
GoogleAdsClienttrong thời gian chạy.
Cấu hình thư viện ứng dụng
Sau khi uỷ quyền cho người dùng và nhận được thông tin xác thực OAuth 2.0, bạn có thể định cấu hình thư viện ứng dụng bằng cách làm theo hướng dẫn trên thẻ tương ứng với ngôn ngữ lập trình của bạn.
Java
Bạn có thể khởi chạy phiên bản GoogleAdsClient của mình trong thời gian chạy, bằng cách sử dụng thông tin đăng nhập mà bạn đã nhận được từ người dùng có tài khoản mà bạn đang thực hiện các lệnh gọi 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();
Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn.
.NET
Bạn có thể khởi chạy phiên bản GoogleAdsClient của mình trong thời gian chạy, bằng cách sử dụng thông tin đăng nhập mà bạn đã nhận được từ người dùng có tài khoản mà bạn đang thực hiện các lệnh gọi 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);
Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn.
Python
Bạn có thể khởi chạy phiên bản GoogleAdsClient của mình trong thời gian chạy, bằng cách sử dụng thông tin đăng nhập mà bạn đã nhận được từ người dùng có tài khoản mà bạn đang thực hiện các lệnh gọi 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)
Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn.
PHP
Bạn có thể khởi chạy phiên bản GoogleAdsClient của mình trong thời gian chạy, bằng cách sử dụng thông tin đăng nhập mà bạn đã nhận được từ người dùng có tài khoản mà bạn đang thực hiện các lệnh gọi 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();
Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn.
Ruby
Bạn có thể khởi chạy phiên bản GoogleAdsClient của mình trong thời gian chạy, bằng cách sử dụng thông tin đăng nhập mà bạn đã nhận được từ người dùng có tài khoản mà bạn đang thực hiện các lệnh gọi 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
Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn.
Perl
Bạn có thể khởi chạy phiên bản GoogleAdsClient của mình trong thời gian chạy, bằng cách sử dụng thông tin đăng nhập mà bạn đã nhận được từ người dùng có tài khoản mà bạn đang thực hiện các lệnh gọi 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");
Hãy xem hướng dẫn định cấu hình để biết thêm các lựa chọn.
curl
Bắt đầu bằng cách sử dụng một ứng dụng HTTP để tìm nạp mã truy cập OAuth 2.0. Hướng dẫn này sử dụng lệnh 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/tokenBạn có thể sử dụng mã truy cập trong các lệnh gọi API. Ví dụ sau đây cho thấy cách chạy báo cáo chiến dịch bằng phương thức GoogleAdsService.SearchStream để truy xuất các chiến dịch trong tài khoản của bạn. Hướng dẫn này không đề cập đến thông tin chi tiết về báo cáo.
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"Nội dung của query.json như sau:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}