Konfigurasi

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

Mengonfigurasi library saat runtime

Cara yang lebih disukai untuk mengonfigurasi library klien adalah dengan menginisialisasi GoogleAdsConfig pada 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 Google.Ads.GoogleAds.Extensions paket di pada proyek Anda.

Jika Anda menggunakan salah satu opsi ini, setelan konfigurasi tidak akan diterapkan secara otomatis: Anda harus memuatnya secara eksplisit seperti yang ditunjukkan di bawah ini.

Mengonfigurasi menggunakan App.config

Semua setelan khusus untuk Google Ads API disimpan di GoogleAdsApi node dari file App.config. Konfigurasi umum App.config adalah sebagai berikut ini:

<?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 Metode LoadFromDefaultAppConfigSection pada objek GoogleAdsConfig:

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);

Menentukan file App.config terpisah

Jika tidak ingin membuat App.config berantakan, Anda dapat memindahkan konfigurasi khusus {i>library<i} ke dalam file konfigurasinya sendiri dengan menggunakan configSource saat ini.

Langkah 1: Tentukan configSource di App.config

Ubah App.config 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

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

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

Langkah 3: Perbaiki aturan build di csproj

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

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

Konfigurasi menggunakan file JSON kustom

Anda dapat menggunakan IConfigurationRoot untuk mengonfigurasi library klien.

Membuat 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": "",

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

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

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);

Konfigurasi menggunakan settings.json

Prosesnya di sini mirip dengan menggunakan JSON kustom, hanya saja kunci harus dalam bagian bernama GoogleAdsApi:

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

Selanjutnya, Anda dapat menggunakan instance IConfiguration di halaman Anda:

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 lingkungan yang didukung variabel.

Kolom konfigurasi

Berikut adalah daftar setelan yang didukung oleh library .NET Google Ads.

Setelan konektivitas

  • Timeout: Gunakan kunci ini untuk menyetel waktu tunggu layanan dalam milidetik. Tujuan 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 menyetel waktu tunggu hingga 2 jam atau lebih, tetapi API mungkin masih akan menghentikan permintaan yang berjalan lama, Error DEADLINE_EXCEEDED.
  • ProxyServer: Setel ini ke URL server proxy HTTP jika Anda menggunakan {i>proxy<i} untuk terhubung ke internet.
  • ProxyUser: Setel ini ke nama pengguna yang Anda perlukan untuk mengautentikasi server proxy. Biarkan kosong jika nama pengguna tidak diperlukan.
  • ProxyPassword: Setel ini ke sandi ProxyUser jika Anda menetapkan nilai untuk ProxyUser.
  • ProxyDomain: Setel ini ke domain untuk ProxyUser jika server proxy Anda mengharuskan penetapan salah satunya.
  • MaxReceiveMessageLengthInBytes: Gunakan setelan ini untuk meningkatkan batas maksimum ukuran respons API yang dapat ditangani oleh library klien. Default nilainya adalah 64 MB.
  • MaxMetadataSizeInBytes: Gunakan setelan ini untuk meningkatkan batas maksimum ukuran respons error API yang dapat ditangani oleh library klien. Tujuan nilai defaultnya adalah 16 MB.

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

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

Perhatikan bahwa error tersebut juga menunjukkan bahwa kode Anda menangani objek Respons besar (seperti respons SearchGoogleAdsResponse). Ini dapat berdampak kinerja pada kode Anda karena Objek Besar .NET Heap. Jika ini menjadi masalah kinerja, maka Anda mungkin harus mengeksplorasi cara mengatur ulang panggilan API atau mendesain ulang bagian-bagian dari aplikasi Anda.

Setelan OAuth2

Saat menggunakan OAuth2 untuk mengizinkan panggilan terhadap server Google Ads API, Anda harus menyetel 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 rahasia klien OAuth2 Anda.
  • OAuth2Scope: Tetapkan nilai ini ke cakupan berbeda jika Anda ingin memberi otorisasi Token OAuth2 untuk beberapa API. Setelan ini bersifat opsional.

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

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

Lihat panduan berikut untuk detail selengkapnya:

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

  • OAuth2PrnEmail: Setel nilai ini ke alamat email akun yang Anda gunakan melakukan peniruan identitas.
  • OAuth2SecretsJsonPath: Menetapkan nilai ini ke konfigurasi JSON OAuth2 .

Lihat alur akun layanan OAuth kami untuk mengetahui detail selengkapnya.

Setelan transportasi

  • UseGrpcCore: Tetapkan setelan ini ke true untuk menggunakan library Grpc.Core sebagai lapisan transport yang mendasarinya. Lihat dukungan gRPC untuk detail selengkapnya.

Setelan Google Ads API

Setelan berikut dikhususkan untuk Google Ads API.

  • DeveloperToken: Tetapkan string ini ke token developer Anda.
  • LoginCustomerId: Ini adalah ID pelanggan dari pelanggan yang diotorisasi untuk digunakan di permintaan, tanpa tanda hubung (-).
  • LinkedCustomerId: Header ini hanya diperlukan untuk metode yang mengupdate resource entitas jika diberi izin melalui Akun Tertaut UI Google Ads (referensi AccountLink di Google Ads API). Setel nilai ini ke ID pelanggan dari penyedia data yang memperbarui sumber daya dari ID pelanggan. Kolom ini harus ditetapkan tanpa tanda hubung (-). Pelajari lebih lanjut tentang Ditautkan Akun.