Library klien Google Ads API menyediakan beberapa setelan konfigurasi yang dapat Anda gunakan untuk menyesuaikan perilaku library.
Mengonfigurasi library saat runtime
Cara yang lebih disarankan untuk mengonfigurasi library klien adalah dengan melakukan inisialisasi objek
GoogleAdsConfig saat runtime:
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_CLIENT_ID.apps.googleusercontent.com",
OAuth2ClientSecret = "INSERT_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Opsi konfigurasi alternatif
Library ini juga menyediakan opsi tambahan untuk memuat setelan konfigurasi. Untuk
mengaktifkannya, tambahkan referensi NuGet ke
paket Google.Ads.GoogleAds.Extensions di project Anda.
Jika Anda menggunakan salah satu opsi ini, setelan konfigurasi tidak akan diambil
secara otomatis; Anda harus memuatnya secara eksplisit seperti yang ditunjukkan di bagian
berikut. Pastikan untuk menangani pengecualian I/O file (seperti
FileNotFoundException atau UnauthorizedAccessException) saat memuat setelan
dari file atau aliran eksternal.
Menggunakan App.config
Semua setelan khusus untuk Google Ads API disimpan di node GoogleAdsApi
pada file App.config. Konfigurasi App.config standar adalah sebagai berikut:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="GoogleAdsApi"
type="System.Configuration.DictionarySectionHandler" />
</configSections>
<GoogleAdsApi>
<!-- Set the service timeout in milliseconds. -->
<add key="Timeout" value="2000" />
<!-- Proxy settings for library. -->
<add key="ProxyServer" value="http://localhost:8888" />
<add key="ProxyUser" value="" />
<add key="ProxyPassword" value="" />
<add key="ProxyDomain" value="" />
<!-- OAuth2 settings -->
<add key="OAuth2Mode" value="APPLICATION" />
<add key="OAuth2ClientId"
value="INSERT_CLIENT_ID.apps.googleusercontent.com" />
<add key="OAuth2ClientSecret" value="INSERT_CLIENT_SECRET" />
<add key="OAuth2RefreshToken" value="INSERT_REFRESH_TOKEN" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
Untuk memuat setelan konfigurasi dari file App.config, panggil metode
LoadFromDefaultAppConfigSection pada objek GoogleAdsConfig:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Menentukan file App.config terpisah
Jika tidak ingin App.config Anda berantakan, Anda dapat memindahkan
konfigurasi khusus library ke file konfigurasinya sendiri menggunakan
properti configSource:
Tentukan
configSourcediApp.configAnda. UbahApp.configAnda untuk mereferensikan file konfigurasi eksternal:<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" /> </configSections> <GoogleAdsApi configSource="GoogleAdsApi.config" /> </configuration>Tentukan konten file konfigurasi Anda. Buat file konfigurasi lain dengan nama yang Anda tentukan di
configSource(GoogleAdsApi.config), dan pindahkan node konfigurasiGoogleAdsApidariApp.configke file ini:<?xml version="1.0" encoding="utf-8" ?> <GoogleAdsApi> <!-- More settings. --> </GoogleAdsApi>Perbarui aturan build di
.csprojAnda. Sertakan file konfigurasi baru dalam project Anda dan tetapkan properti Copy to Output Directory ke Copy always. Bangun ulang dan jalankan project agar aplikasi Anda mengambil nilai dari file konfigurasi baru.
Menggunakan file JSON kustom
Anda dapat menggunakan instance IConfigurationRoot untuk mengonfigurasi
library klien.
Buat file JSON
Buat file JSON bernama GoogleAdsApi.json yang memiliki struktur serupa dengan file
App.config:
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
Memuat konfigurasi
Selanjutnya, muat file JSON ke dalam IConfigurationRoot:
ConfigurationBuilder builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);
Menggunakan settings.json
Proses di sini mirip dengan menggunakan file JSON kustom, kecuali kunci
harus berada di dalam bagian bernama GoogleAdsApi:
{
"GoogleAdsApi": {
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
Selanjutnya, ekstrak bagian GoogleAdsApi dari instance
IConfiguration aplikasi Anda (misalnya, disuntikkan oleh ASP.NET Core atau dibangun dengan
ConfigurationBuilder):
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Atau, Anda dapat memuat file settings.json secara langsung berdasarkan jalur dengan
config.LoadFromSettingsJson(filePath, "GoogleAdsApi"), atau dari
variabel lingkungan GOOGLE_ADS_CONFIGURATION_FILE_PATH
(EnvironmentVariableNames.CONFIG_FILE_PATH) menggunakan
config.TryLoadFromEnvironmentFilePath.
Menggunakan variabel lingkungan
Anda juga dapat melakukan inisialisasi GoogleAdsClient menggunakan variabel lingkungan:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Lihat daftar lengkap variabel lingkungan yang didukung.
Menggunakan aliran generik
Anda juga dapat memuat konfigurasi, atau bagian-bagiannya, dari stream generik, termasuk yang dienkripsi:
GoogleAdsConfig config = new GoogleAdsConfig()
{
// Set some configuration properties in code.
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file and dispose of the streams properly.
using (CryptoStream strm = GetEncryptedCredentialsStream())
using (StreamReader rdr = new StreamReader(strm))
{
// Configure the OAuth credentials from the encrypted stream.
config.LoadOAuth2SecretsFromStream(rdr);
}
GoogleAdsClient client = new GoogleAdsClient(config);
Kolom konfigurasi
Bagian berikut mencantumkan setelan yang didukung oleh library .NET Google Ads.
Setelan konektivitas
Timeout: Gunakan kunci ini untuk menetapkan waktu tunggu layanan dalam milidetik. Nilai default ditetapkan berdasarkan setelanmethod_config/timeoutdigoogleads_grpc_service_config.json. Tetapkan nilai yang lebih rendah jika Anda perlu menerapkan batas yang lebih singkat pada waktu maksimum untuk panggilan API. Anda dapat menyetel waktu tunggu hingga 2 jam atau lebih, tetapi API mungkin masih mengalami waktu tunggu untuk permintaan yang berjalan sangat lama dan menampilkan errorDEADLINE_EXCEEDED.ProxyServer: Tetapkan ini ke URL server proxy HTTP jika Anda menggunakan proxy untuk terhubung ke internet.ProxyUser: Tetapkan ini ke nama pengguna yang Anda perlukan untuk mengautentikasi terhadap server proxy. Biarkan kosong jika nama pengguna tidak diperlukan.ProxyPassword: Tetapkan ini ke sandiProxyUserjika Anda menetapkan nilai untukProxyUser.ProxyDomain: Tetapkan ini ke domain untukProxyUserjika server proxy Anda memerlukan penetapan domain.MaxReceiveMessageLengthInBytes: Gunakan setelan ini untuk meningkatkan ukuran maksimum respons API yang dapat ditangani oleh library klien. Nilai default-nya adalah 64 MB.MaxMetadataSizeInBytes: Gunakan setelan ini untuk meningkatkan ukuran maksimum respons error API yang dapat ditangani oleh library klien. Nilai defaultnya adalah 16 MB.
Sesuaikan setelan MaxReceiveMessageLengthInBytes dan MaxMetadataSizeInBytes
untuk memperbaiki error ResourceExhausted tertentu. Setelan ini mengatasi
kesalahan dalam bentuk:
Status(StatusCode="ResourceExhausted",Detail="Received
message larger than max (423184132 versus 67108864)"
Dalam contoh ini, error disebabkan oleh ukuran pesan (423184132 bytes)
yang lebih besar daripada yang dapat ditangani oleh library (67108864 bytes). Tingkatkan
MaxReceiveMessageLengthInBytes menjadi 500000000 untuk menghindari error ini. Perhatikan
bahwa error ini juga menunjukkan bahwa kode Anda menangani objek respons yang sangat besar (seperti SearchGoogleAdsResponse yang besar).
Hal ini dapat memengaruhi performa kode Anda karena Large Object Heap .NET. Jika hal ini menjadi masalah performa, Anda mungkin harus mempelajari cara mengatur ulang panggilan API atau mendesain ulang bagian aplikasi.
Setelan OAuth2
Saat menggunakan OAuth 2.0 untuk mengizinkan panggilan Anda terhadap server Google Ads API, Anda harus menyetel kunci konfigurasi berikut:
- Tetapkan
AuthorizationMethodkeOAuth2. OAuth2Mode: Tetapkan keAPPLICATIONatauSERVICE_ACCOUNT.OAuth2ClientId: Tetapkan nilai ini ke client ID OAuth 2.0 Anda.OAuth2ClientSecret: Tetapkan nilai ini ke rahasia klien OAuth 2.0 Anda.OAuth2Scope: Tetapkan nilai ini ke cakupan yang berbeda jika Anda ingin mengizinkan token OAuth 2.0 untuk beberapa API. Setelan ini bersifat opsional.UseApplicationDefaultCredentials: Tetapkan nilai ini ketrueuntuk mengautentikasi menggunakan Kredensial Default Aplikasi (didukung diGoogle.Ads.GoogleAdsv24.1.0dan yang lebih baru;config.LoadFromEnvironmentVariables()membaca variabel lingkunganUSE_APPLICATION_DEFAULT_CREDENTIALStanpa awalan).Credentials: (Hanya runtime, didukung div27.0.0dan yang lebih baru) Menyuntikkan instanceICredentialatauGoogleCredentialyang telah dibuat sebelumnya langsung diGoogleAdsConfigsaat runtime.
Jika Anda menggunakan OAuth2Mode == APPLICATION, Anda harus menyetel kunci konfigurasi tambahan berikut:
OAuth2RefreshToken: Tetapkan nilai ini ke token refresh OAuth 2.0 yang telah dibuat sebelumnya jika Anda ingin menggunakan kembali token OAuth 2.0. Setelan ini bersifat opsional.OAuth2RedirectUri: Tetapkan nilai ini ke URL pengalihan OAuth 2.0. Setelan ini bersifat opsional.
Lihat panduan berikut untuk mengetahui detail selengkapnya:
Jika Anda menggunakan OAuth2Mode == SERVICE_ACCOUNT, Anda harus menyetel kunci konfigurasi tambahan berikut:
OAuth2SecretsJsonPath: Tetapkan nilai ini ke jalur file kunci JSON OAuth 2.0.OAuth2PrnEmail: Tetapkan nilai ini ke alamat email akun yang Anda tiru identitasnya saat menggunakan delegasi di seluruh domain Google Workspace. Setelan ini bersifat opsional.
Lihat panduan Alur akun layanan OAuth untuk mengetahui detail selengkapnya.
Setelan transportasi
UseGrpcCore: Tetapkan setelan ini ketrueuntuk menggunakan libraryGrpc.Coresebagai lapisan transportasi pokok. Lihat Menggunakan libraryGrpc.Core.
Setelan Google Ads API
Setelan berikut khusus untuk Google Ads API:
DeveloperToken: Opsional div27.3.0dan yang lebih baru (GOOGLE_ADS_DEVELOPER_TOKEN). Token developer dihentikan pada 9 September 2026; di server API, tingkat akses ditentukan oleh project Google Cloud Anda, terlepas dari versi library klien, dan server API mengabaikan headerdeveloper-token(hingga versi utama Google Ads API mendatang menolaknya). Untuk menghilangkan atau menghapusDeveloperTokendari konfigurasi Anda, gunakanGoogle.Ads.GoogleAdsv27.3.0atau yang lebih baru, yang menghapus validasiDeveloperTokensisi klien lokal (versi sebelumnya memerlukanDeveloperTokenyang tidak kosong untuk validasi lokal).LoginCustomerId: Ini adalah ID pelanggan dari pelanggan resmi yang akan digunakan dalam permintaan, tanpa tanda hubung (-).LinkedCustomerId: Header ini hanya diperlukan untuk metode yang memperbarui resource entity saat diberi izin melalui Akun Tertaut di UI Google Ads (resourceAccountLinkdi Google Ads API). Tetapkan nilai ini ke ID pelanggan penyedia data yang memperbarui resource ID pelanggan yang ditentukan. ID harus ditetapkan tanpa tanda hubung (-). Pelajari lebih lanjut Akun Tertaut.