Dalam alur kerja autentikasi multi-pengguna, Anda membangun alur OAuth sendiri untuk mengautentikasi pengguna. Ada beberapa jenis aplikasi yang dibahas sebagai bagian dari dokumentasi Google Identity, beserta konfigurasi project Konsol API Google yang Anda perlukan untuk mendukung setiap jenis aplikasi. Semua jenis aplikasi ini didukung oleh Google Ads API. Detail teknis tambahan yang perlu diingat adalah:
Konfigurasikan aplikasi Anda untuk meminta cakupan OAuth 2.0 berikut:
https://www.googleapis.com/auth/adwordsAplikasi Anda mungkin harus melakukan panggilan API atas nama pengguna saat mereka offline. Skenario yang umum adalah mendownload metrik akun secara offline untuk membuat laporan dan melakukan analisis akun. Oleh karena itu, sebaiknya minta akses offline OAuth.
Selesaikan proses verifikasi Aplikasi OAuth agar aplikasi Anda diverifikasi.
Ringkasan alur kerja
Penerapan alur kerja autentikasi multi-pengguna melibatkan tiga langkah utama:
- Arahkan pengguna ke layar izin OAuth: Alihkan setiap pengguna ke endpoint otorisasi OAuth 2.0 Google yang meminta cakupan
https://www.googleapis.com/auth/adwordsdan akses offline. Pengguna harus melakukan autentikasi dengan kunci sandi untuk menyelesaikan alur otorisasi dan membuat token refresh. - Tukarkan kode otorisasi dengan token: Setelah pengguna memberikan izin, ambil kode otorisasi yang ditampilkan dan tukarkan dengan token akses dan token refresh.
- Simpan token dan lakukan inisialisasi klien saat runtime: Simpan token refresh setiap pengguna dengan aman di datastore Anda dan teruskan kredensial pengguna saat melakukan inisialisasi instance
GoogleAdsClientsaat runtime.
Konfigurasi library klien
Setelah mengizinkan 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 melakukan inisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang telah Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan 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();
Lihat panduan konfigurasi untuk opsi tambahan.
.NET
Anda dapat melakukan inisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang telah Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan 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);
Lihat panduan konfigurasi untuk opsi tambahan.
Python
Anda dapat melakukan inisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang telah Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan 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)
Lihat panduan konfigurasi untuk opsi tambahan.
PHP
Anda dapat melakukan inisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang telah Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan 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();
Lihat panduan konfigurasi untuk opsi tambahan.
Ruby
Anda dapat melakukan inisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang telah Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan 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
Lihat panduan konfigurasi untuk opsi tambahan.
Perl
Anda dapat melakukan inisialisasi instance GoogleAdsClient saat runtime, menggunakan kredensial yang telah Anda peroleh dari pengguna yang akunnya Anda gunakan untuk melakukan panggilan 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");
Lihat panduan konfigurasi untuk opsi tambahan.
curl
Mulailah 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://oauth2.googleapis.com/tokenAnda 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/v26/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"Isi query.json adalah sebagai berikut:
{
"query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}