Quy trình xác thực nhiều người dùng

Trong quy trình xác thực nhiều người dùng, bạn sẽ tạo luồng 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 và cấu hình dự án Google Cloud Console mà bạn cần để hỗ trợ loại ứng dụng đó. Tất cả các loại ứng dụng này đều được API Google Ads hỗ trợ. Những thông tin kỹ thuật bổ sung cần lưu ý là:

  1. Để truy cập vào Google Ads API, bạn nên định cấu hình ứng dụng để xác thực cho phạm vi sau:

    https://www.googleapis.com/auth/adwords
    
  2. Ứ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 để 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 bằng OAuth.

  3. Bạn nên trải qua quy trình xác minh Ứng dụng OAuth và được chứng nhận ứng dụng của mình.

Cấu hình thư viện ứng dụng

Sau khi uỷ quyền cho người dùng và nhận 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 lệnh gọi API đến.

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId(OAUTH_CLIENT_ID)
        .setClientSecret(OAUTH_CLIENT_SECRET)
        .setRefreshToken(REFRESH_TOKEN)
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the developer token which enables API access.
        .setDeveloperToken(DEVELOPER_TOKEN)
        // Sets the OAuth credentials which provide Google Ads account access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();
``` See the [configuration guide][java-config-guide] for additional options.

.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 lệnh gọi API đến.

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

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 lệnh gọi API đến.

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "REFRESH_TOKEN",
    "client_id": "OAUTH_CLIENT_ID",
    "client_secret": "OAUTH_CLIENT_SECRET"}

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 lệnh gọi API đến.

$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->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 lệnh gọi API đến.

  client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
    config.client_id = 'INSERT_CLIENT_ID_HERE'
    config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
    config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
    config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
    config.developer_token = 'INSERT_DEVELOPER_TOKEN_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 lệnh gọi API đến.

my $api_client = Google::Ads::GoogleAds::Client->new({
  developer_token   => "INSERT_DEVELOPER_TOKEN_HERE",
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");

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://www.googleapis.com/oauth2/v3/token

Giờ đây, bạ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/v21/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"

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"
}