Dalam alur kerja autentikasi multi-pengguna, Anda membuat alur OAuth sendiri untuk mengautentikasi pengguna. Ada beberapa jenis aplikasi yang dibahas sebagai bagian dari dokumentasi Google Identity, dan konfigurasi project Google Cloud Console yang Anda perlukan untuk mendukung jenis aplikasi tersebut. Semua jenis aplikasi ini didukung oleh Google Ads API. Detail teknis tambahan yang perlu diingat adalah:
Untuk mengakses Google Ads API, Anda harus mengonfigurasi aplikasi untuk mengautentikasi cakupan berikut:
https://www.googleapis.com/auth/adwordsAplikasi Anda mungkin harus melakukan panggilan API atas nama pengguna saat mereka offline. Skenario umumnya adalah mendownload metrik akun secara offline untuk membuat laporan dan melakukan analisis akun. Oleh karena itu, sebaiknya minta [akses offline OAuth][oauth-offline-access].
Anda harus melalui [proses verifikasi Aplikasi OAuth][app-verification] dan mendapatkan sertifikasi aplikasi.
Konfigurasi library klien
Setelah Anda mengotorisasi pengguna dan mendapatkan kredensial OAuth 2.0, Anda dapat mengonfigurasi library klien dengan mengikuti petunjuk di tab yang sesuai dengan bahasa pemrograman Anda.
Java
Anda dapat menginisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan API.
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
Anda dapat menginisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan API.
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);
Lihat [panduan konfigurasi][dotnet-config-guide] untuk opsi tambahan.
Python
Anda dapat menginisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan API.
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)
Lihat [panduan konfigurasi][python-config-guide] untuk opsi tambahan.
PHP
Anda dapat menginisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan API.
$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();
Lihat [panduan konfigurasi][php-config-guide] untuk opsi tambahan.
Ruby
Anda dapat menginisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan API.
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
Lihat [panduan konfigurasi][ruby-config-guide] untuk opsi tambahan.
Perl
Anda dapat menginisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan API.
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");
Lihat [panduan konfigurasi][perl-config-guide] untuk opsi tambahan.
curl
Mulai dengan menggunakan klien HTTP untuk mengambil token akses OAuth 2.0. Panduan ini menggunakan perintah 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/tokenSekarang Anda dapat menggunakan token akses dalam panggilan API. Contoh berikut
menunjukkan cara menjalankan laporan kampanye menggunakan metode
GoogleAdsService.SearchStream untuk mengambil kampanye di akun Anda. Panduan ini tidak membahas detail
pelaporan.
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"Konten query.json adalah sebagai berikut:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}
[oauth-offline-access]: /identity/protocols/oauth2/web-server#offline [app-verification]: //support.google.com/cloud/answer/13461325 [dotnet-config-guide]: /google-ads/api/docs/client-libs/dotnet/configuration [java-config-guide]: /google-ads/api/docs/client-libs/java/config-file [python-config-guide]: /google-ads/api/docs/client-libs/python/configuration [php-config-guide]: /google-ads/api/docs/client-libs/php/configuration [ruby-config-guide]: /google-ads/api/docs/client-libs/ruby/configuration [perl-config-guide]: /google-ads/api/docs/client-libs/perl/configuration