設定

Google Ads API 用戶端程式庫提供多項設定, 可用來自訂程式庫行為

在執行階段設定程式庫

設定用戶端程式庫的方法,是初始化 GoogleAdsConfig 物件:

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

GoogleAdsClient client = new GoogleAdsClient(config);

其他設定選項

我們還提供了一些其他設定用戶端程式庫的選項: 啟用這些物件,請將 Nuget 參照新增至 Google.Ads.GoogleAds.Extensions

使用上述任一選項時,系統不會選取配置設定 會自動載入這些參數,如下所示。

使用 App.config 進行設定

Google Ads API 的所有設定都儲存在 GoogleAdsApiApp.config 檔案的節點。App.config 的一般設定如下: 如下:

<?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>

如要從 App.config 檔案載入設定,請呼叫 GoogleAdsConfig 物件的 LoadFromDefaultAppConfigSection 方法:

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

指定單獨的 App.config 檔案

如果不想讓 App.config 變得雜亂,可以 遷移至專屬的設定檔 configSource 資源。

步驟 1:在 App.config 中指定 configSource

App.config 修改為如下所示:

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

步驟 2:指定設定檔的內容

接著,使用您在 configSource 指定的名稱建立另一個設定檔。 並將設定節點從 App.config 移至這個檔案:

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

步驟 3:修正 csproj 中的建構規則

最後,在專案中加入新的設定檔。變更屬性 複製到「一律複製到輸出資料夾」

現在建構並執行專案。應用程式將會開始取得值 建立新的設定檔

使用自訂 JSON 檔案進行設定

您可以使用 IConfigurationRoot敬上 執行個體來設定用戶端程式庫。

建立 JSON 檔案

建立名為 GoogleAdsApi.json 的 JSON 檔案,其結構與 App.config 檔案。

{
    "Timeout": "2000",

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

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

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

載入設定

接著,將 JSON 檔案載入 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);

使用 settings.json 進行設定

這裡的程序與使用自訂 JSON 類似,差別在於 位於名為 GoogleAdsApi 的區段中:

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

接著,您可以在網頁中使用 IConfiguration 例項:

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

使用環境變數進行設定

您也可以使用環境變數來初始化 GoogleAdsClient

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

請參閱支援環境的完整清單 變數

設定欄位

以下是 Google Ads .NET 程式庫支援的設定清單。

連線設定

  • Timeout:請使用這個金鑰來設定服務逾時 (以毫秒為單位)。 系統會根據以下項目設定預設值:method_config/timeout googleads_grpc_service_config.json. 如要強制執行較短的時間限制,請設定較低的值 。您可以將逾時時間設為 2 小時以上,但 API 可能會 逾時狀況仍會逾時,並傳回 DEADLINE_EXCEEDED 錯誤。
  • ProxyServer:如果您使用 Proxy 連線至網際網路
  • ProxyUser:請設為您要進行驗證的使用者名稱 Proxy 伺服器如果不需要使用者名稱,請將這個欄位留空。
  • ProxyPassword:如果您設定了值,請設為 ProxyUser 的密碼 (ProxyUser)。
  • ProxyDomain:如果 Proxy 伺服器,請設為 ProxyUser 的網域 就必須設定一組參數
  • MaxReceiveMessageLengthInBytes:您可以使用這項設定調高上限 用戶端程式庫可處理的 API 回應大小。預設 值為 64 MB
  • MaxMetadataSizeInBytes:您可以使用這項設定調高上限 用戶端程式庫可處理的 API 錯誤回應大小。 預設值為 16 MB。

調整MaxReceiveMessageLengthInBytesMaxMetadataSizeInBytes 設定修正特定的 ResourceExhausted 錯誤。這些設定位址 Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)" 表單的錯誤。

在此範例中,錯誤因郵件大小 (423184132 bytes) 而發生錯誤 大於程式庫可處理的檔案大小 (67108864 bytes)。調高 MaxReceiveMessageLengthInBytes500000000,即可避免發生這項錯誤。

請注意,這項錯誤也表示您的程式碼大幅處理了 大型回應物件 (例如大型 SearchGoogleAdsResponse)。這個 可能會對程式碼的效能產生影響,因為 .NET 的大型物件 堆積。 如果是成效問題,您可能就要瞭解如何 重新整理 API 呼叫,或重新設計應用程式的各個部分。

OAuth2 設定

使用 OAuth2 授權對 Google Ads API 伺服器發出的呼叫時, 您必須設定下列設定鍵:

  • AuthorizationMethod:設為 OAuth2
  • OAuth2Mode:設為 APPLICATIONSERVICE_ACCOUNT
  • OAuth2ClientId:將這個值設為您的 OAuth2 用戶端 ID。
  • OAuth2ClientSecret:將這個值設為您的 OAuth2 用戶端密鑰。
  • OAuth2Scope:如要授權,請將這個值設為其他範圍 多個 API 適用的 OAuth2 權杖。這是選用設定。

如果您使用 OAuth2Mode == APPLICATION,則必須設定以下項目 額外設定金鑰

  • OAuth2RefreshToken:將這個值設為預先產生的 OAuth2 更新權杖 選擇重複使用 OAuth2 權杖。這是選用設定。
  • OAuth2RedirectUri:將這個值設為 OAuth2 重新導向網址。這項設定 為選用項目。

詳情請參閱下列指南:

如果使用 OAuth2Mode == SERVICE_ACCOUNT,則必須設定 下列額外的設定金鑰

  • OAuth2PrnEmail:將這個值設為您目前使用的帳戶電子郵件地址 冒用他人身分
  • OAuth2SecretsJsonPath:將此值設為 OAuth2 JSON 設定 檔案路徑

請參閱 OAuth 服務帳戶流程 指南。

交通運輸設定

  • UseGrpcCore:將這項設定設為 true,即可使用 Grpc.Core 程式庫做為 基礎傳輸層請參閱 gRPC 支援 指南

Google Ads API 設定

以下設定是 Google Ads API 專屬的設定。

  • DeveloperToken:請設為您的開發人員權杖。
  • LoginCustomerId:這是使用的授權客戶 ID 中不含連字號 (-)。
  • LinkedCustomerId:只有要更新 取得實體資源在 Google Ads 使用者介面 (Google Ads API 中有 AccountLink 項資源)。將這個值設為 更新指定資源的資料供應商客戶 ID 客戶 ID應設定不含連字號 (-)。進一步瞭解「已連結」 帳戶