Seperti Google API lainnya, Google Ads API menggunakan protokol OAuth 2.0 untuk autentikasi dan otorisasi. OAuth 2.0 memungkinkan aplikasi klien .NET Google Ads API Anda mengakses akun Google Ads pengguna tanpa harus menangani atau menyimpan info login pengguna.
Memahami model akses Google Ads
Untuk menggunakan Google Ads API secara efektif, pahami cara kerja model akses Google Ads. Lihat panduan model akses Google Ads.
Alur kerja OAuth
Ada tiga alur kerja umum yang digunakan saat bekerja dengan Google Ads API.
Alur akun layanan
Ini adalah alur kerja yang direkomendasikan jika aplikasi Anda tidak memerlukan interaksi manusia. Alur kerja ini memerlukan langkah konfigurasi, di mana pengguna menambahkan akun layanan ke akun Google Ads-nya. Aplikasi kemudian dapat menggunakan kredensial akun layanan untuk mengelola akun Google Ads pengguna.
Konfigurasi library sebagai berikut:
// Initialize a GoogleAdsConfig instance.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
// Initialize a GoogleAdsClient instance.
GoogleAdsClient client = new GoogleAdsClient(config);
Lihat panduan alur kerja akun layanan untuk mempelajari lebih lanjut.
Alur autentikasi pengguna tunggal
Alur kerja ini dapat digunakan jika Anda tidak dapat menggunakan akun layanan. Alur kerja ini memerlukan dua langkah konfigurasi:
- Memberi satu pengguna akses ke semua akun yang akan dikelola menggunakan Google Ads API. Pendekatan umum adalah memberi pengguna akses ke akun pengelola Google Ads API, dan menautkan semua akun Google Ads di akun pengelola tersebut.
- Pengguna menjalankan alat command line seperti
gcloudatau contoh kodeGenerateUserCredentialsuntuk memberi otorisasi aplikasi Anda agar dapat mengelola semua akun Google Ads mereka atas nama mereka.
Lakukan inisialisasi library menggunakan kredensial OAuth 2.0 pengguna sebagai berikut:
GoogleAdsConfig config = new GoogleAdsConfig()
{
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Lihat panduan alur kerja autentikasi pengguna tunggal untuk mempelajari lebih lanjut.
Alur autentikasi multi-pengguna
Alur kerja ini direkomendasikan jika aplikasi Anda mengizinkan pengguna untuk login dan
mengizinkan aplikasi Anda mengelola akun Google Ads mereka atas nama mereka. Aplikasi Anda
membuat dan mengelola kredensial pengguna OAuth 2.0 secara dinamis per sesi
atau permintaan pengguna, lalu menginisialisasi GoogleAdsClient dengan token refresh
pengguna aktif:
GoogleAdsConfig config = new GoogleAdsConfig()
{
LoginCustomerId = userSession.LoginCustomerId,
OAuth2ClientId = "INSERT_OAUTH_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH_CLIENT_SECRET_HERE",
OAuth2RefreshToken = userSession.RefreshToken
};
GoogleAdsClient client = new GoogleAdsClient(config);
Mulai v27.0.0 Google.Ads.GoogleAds, Anda juga dapat menyuntikkan objek ICredential atau GoogleCredential yang telah dikonfigurasi sebelumnya langsung di GoogleAdsConfig menggunakan properti Credentials.
Lihat panduan alur kerja autentikasi multi-pengguna untuk mempelajari lebih lanjut. Library klien .NET menyertakan dua contoh kode untuk referensi:
- Contoh kode
AuthenticateInAspNetCoreApplicationmengilustrasikan cara membuat aplikasi web yang mendapatkan autentikasi pengguna saat runtime untuk mengelola akun Google Ads mereka atas nama mereka. Aplikasi menggunakan kredensial OAuth 2.0 pengguna untuk mengambil kampanye di akun Google Ads mereka. - Contoh kode command line
GenerateUserCredentialsmengilustrasikan cara mendapatkan autentikasi pengguna saat runtime untuk mengelola akun Google Ads mereka atas nama mereka. Anda dapat menggunakan contoh kode ini sebagai referensi untuk membangun aplikasi desktop yang memerlukan autentikasi pengguna.
Bagaimana jika pengguna saya mengelola beberapa akun?
Pengguna biasanya mengelola lebih dari satu akun Google Ads, baik melalui akses langsung ke akun, atau melalui akun pengelola Google Ads. Library klien .NET menyediakan contoh kode berikut yang menunjukkan cara menangani kasus tersebut:
- Contoh kode
GetAccountHierarchymenunjukkan cara mengambil daftar semua akun dalam akun pengelola Google Ads. - Contoh kode
ListAccessibleCustomersmenunjukkan cara mengambil daftar semua akun yang memiliki akses langsung pengguna. Akun ini kemudian dapat digunakan sebagai nilai yang valid untuk setelanLoginCustomerId.
Kredensial Default Aplikasi
Library klien .NET (v24.1.0 dan yang lebih baru) juga mendukung autentikasi dengan
Kredensial Default Aplikasi.
Hal ini sangat berguna untuk pengembangan lokal atau untuk pengembangan terhadap Google API yang berbeda, karena Anda dapat menggunakan kembali kredensial yang sama, asalkan kredensial tersebut dapat mengakses cakupan OAuth 2.0 yang diperlukan.
Untuk Google Ads API, pastikan Kredensial Default Aplikasi Anda dapat mengakses cakupan OAuth 2.0 https://www.googleapis.com/auth/adwords.
Untuk menggunakan Kredensial Default Aplikasi, tetapkan opsi
UseApplicationDefaultCredentials ke true di GoogleAdsConfig Anda
(atau tetapkan variabel lingkungan USE_APPLICATION_DEFAULT_CREDENTIALS=true saat
memuat konfigurasi dengan config.LoadFromEnvironmentVariables()):
GoogleAdsConfig config = new GoogleAdsConfig()
{
UseApplicationDefaultCredentials = true,
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Lihat halaman konfigurasi untuk mengetahui detail selengkapnya tentang opsi yang tersedia untuk mengonfigurasi library klien .NET.