Konfigurasi

Library klien Google Ads API menyediakan beberapa setelan konfigurasi yang dapat Anda gunakan untuk menyesuaikan perilaku library.

Mengonfigurasi library saat runtime

Cara yang lebih disukai untuk mengonfigurasi library klien adalah dengan melakukan inisialisasi objek GoogleAdsConfig saat runtime:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};

GoogleAdsClient client = new GoogleAdsClient(config);

Opsi konfigurasi alternatif

Kami juga menyediakan beberapa opsi tambahan untuk mengonfigurasi library klien: 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 memuat setelan tersebut secara eksplisit seperti yang ditunjukkan di bawah.

Mengonfigurasi menggunakan App.config

Semua setelan khusus untuk Google Ads API disimpan di node GoogleAdsApi file App.config. Konfigurasi standar App.config 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=""/>

    <!-- API-specific settings -->
    <add key="DeveloperToken" value="******"/>

    <!-- OAuth2 settings -->
    <add key = "OAuth2Mode" value="APPLICATION"/>
    <add key = "OAuth2ClientId" value = "******.apps.googleusercontent.com" />
    <add key = "OAuth2ClientSecret" value = "******" />
    <add key = "OAuth2RefreshToken" value = "******" />
  </GoogleAdsApi>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.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 berantakan, Anda dapat memindahkan konfigurasi khusus library ke file konfigurasinya sendiri menggunakan properti configSource.

Langkah 1: Tentukan configSource di App.config

Ubah App.config Anda agar terlihat seperti ini:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
  </configSections>
  <GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>

Langkah 2: Tentukan konten file konfigurasi Anda

Sekarang, buat file konfigurasi lain dengan nama yang Anda tentukan di configSource, dan pindahkan node konfigurasi dari App.config ke dalam file ini:

<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
  ... More settings.
</GoogleAdsApi>

Langkah 3: Perbaiki aturan build di csproj Anda

Terakhir, sertakan file konfigurasi baru dalam project Anda. Ubah properti file ini menjadi Always copy to output folder.

Sekarang build dan jalankan project Anda. Aplikasi Anda akan mulai mengambil nilai dari file konfigurasi baru.

Konfigurasi menggunakan file JSON kustom

Anda dapat menggunakan instance IConfigurationRoot untuk mengonfigurasi library klien.

Membuat file JSON

Buat file JSON bernama GoogleAdsApi.json yang memiliki struktur yang mirip dengan file App.config.

{
    "Timeout": "2000",

    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",

    "DeveloperToken": "******",

    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}

Memuat konfigurasi

Selanjutnya, muat file JSON ke 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);

Konfigurasi menggunakan settings.json

Proses di sini mirip dengan menggunakan JSON kustom, kecuali bahwa kunci harus berada di bagian yang bernama GoogleAdsApi:

{
    "GoogleAdsApi":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}

Selanjutnya, Anda dapat menggunakan instance IConfiguration di halaman:

IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);

Konfigurasi 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.

Kolom konfigurasi

Berikut adalah daftar 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 setelan method_config/timeout di googleads_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 menetapkan waktu tunggu hingga 2 jam atau lebih, tetapi API mungkin masih mengalami waktu tunggu habis untuk permintaan yang berjalan sangat lama dan menampilkan error DEADLINE_EXCEEDED.
  • ProxyServer: Tetapkan ini ke URL server proxy HTTP jika Anda menggunakan proxy untuk terhubung ke internet.
  • ProxyUser: Tetapkan ke nama pengguna yang Anda perlukan untuk melakukan autentikasi terhadap server proxy. Biarkan kosong jika nama pengguna tidak diperlukan.
  • ProxyPassword: Tetapkan ini ke sandi ProxyUser jika Anda menetapkan nilai untuk ProxyUser.
  • ProxyDomain: Tetapkan ini ke domain untuk ProxyUser jika server proxy Anda memerlukannya.
  • MaxReceiveMessageLengthInBytes: Gunakan setelan ini untuk meningkatkan ukuran maksimum respons API yang dapat ditangani library klien. Nilai default-nya adalah 64 MB.
  • MaxMetadataSizeInBytes: Gunakan setelan ini untuk meningkatkan ukuran maksimum respons error API yang dapat ditangani library klien. Nilai defaultnya adalah 16 MB.

Sesuaikan setelan MaxReceiveMessageLengthInBytes dan MaxMetadataSizeInBytes untuk memperbaiki error ResourceExhausted tertentu. Setelan ini mengatasi error dalam bentuk Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)".

Dalam contoh ini, error terjadi karena ukuran pesan (423184132 bytes) lebih besar dari yang dapat ditangani library (67108864 bytes). Tingkatkan MaxReceiveMessageLengthInBytes ke 500000000 untuk menghindari error ini.

Perhatikan bahwa error ini juga menunjukkan bahwa kode Anda menangani objek Response yang jauh lebih besar (seperti SearchGoogleAdsResponse yang besar). Hal ini dapat memiliki implikasi performa untuk 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 OAuth2 untuk memberikan otorisasi pada panggilan Anda terhadap server Google Ads API, Anda harus menetapkan kunci konfigurasi berikut:

  • AuthorizationMethod: Tetapkan ke OAuth2.
  • OAuth2Mode: Tetapkan ke APPLICATION atau SERVICE_ACCOUNT.
  • OAuth2ClientId: Tetapkan nilai ini ke client ID OAuth2 Anda.
  • OAuth2ClientSecret: Tetapkan nilai ini ke secret klien OAuth2 Anda.
  • OAuth2Scope: Tetapkan nilai ini ke cakupan yang berbeda jika Anda ingin memberikan otorisasi token OAuth2 untuk beberapa API. Setelan ini bersifat opsional.

Jika menggunakan OAuth2Mode == APPLICATION, Anda perlu menetapkan kunci konfigurasi tambahan berikut.

  • OAuth2RefreshToken: Tetapkan nilai ini ke token refresh OAuth2 yang dibuat sebelumnya jika Anda ingin menggunakan kembali token OAuth2. Setelan ini bersifat opsional.
  • OAuth2RedirectUri: Tetapkan nilai ini ke URL pengalihan OAuth2. Setelan ini bersifat opsional.

Lihat panduan berikut untuk mengetahui detail selengkapnya:

Jika menggunakan OAuth2Mode == SERVICE_ACCOUNT, Anda perlu menetapkan kunci konfigurasi tambahan berikut.

  • OAuth2PrnEmail: Tetapkan nilai ini ke alamat email akun yang Anda ikuti.
  • OAuth2SecretsJsonPath: Tetapkan nilai ini ke jalur file konfigurasi JSON OAuth2.

Lihat panduan Alur akun layanan OAuth untuk mengetahui detail selengkapnya.

Setelan transportasi

  • UseGrpcCore: Tetapkan setelan ini ke true untuk menggunakan library Grpc.Core sebagai lapisan transpor yang mendasarinya. Lihat Menggunakan library Grpc lama.

Setelan Google Ads API

Setelan berikut khusus untuk Google Ads API.

  • DeveloperToken: Tetapkan ke token developer Anda.
  • LoginCustomerId: Ini adalah ID pelanggan dari pelanggan yang diberi otorisasi untuk digunakan dalam permintaan, tanpa tanda hubung (-).
  • LinkedCustomerId: Header ini hanya diperlukan untuk metode yang memperbarui resource entity saat diberi otorisasi melalui Akun Tertaut di UI Google Ads (resource AccountLink di Google Ads API). Tetapkan nilai ini ke ID pelanggan penyedia data yang memperbarui resource ID pelanggan yang ditentukan. Nama harus ditetapkan tanpa tanda hubung (-). Pelajari Akun Tertaut lebih lanjut.