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
的所有設定都儲存在 GoogleAdsApi
中
App.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 MBMaxMetadataSizeInBytes
:您可以使用這項設定調高上限 用戶端程式庫可處理的 API 錯誤回應大小。 預設值為 16 MB。
調整
MaxReceiveMessageLengthInBytes
和MaxMetadataSizeInBytes
設定修正特定的ResourceExhausted
錯誤。這些設定位址Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
表單的錯誤。在此範例中,錯誤因郵件大小 (
423184132 bytes
) 而發生錯誤 大於程式庫可處理的檔案大小 (67108864 bytes
)。調高MaxReceiveMessageLengthInBytes
至500000000
,即可避免發生這項錯誤。請注意,這項錯誤也表示您的程式碼大幅處理了 大型回應物件 (例如大型
SearchGoogleAdsResponse
)。這個 可能會對程式碼的效能產生影響,因為 .NET 的大型物件 堆積。 如果是成效問題,您可能就要瞭解如何 重新整理 API 呼叫,或重新設計應用程式的各個部分。
OAuth2 設定
使用 OAuth2 授權對 Google Ads API 伺服器發出的呼叫時, 您必須設定下列設定鍵:
AuthorizationMethod
:設為OAuth2
。OAuth2Mode
:設為APPLICATION
或SERVICE_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應設定不含連字號 (-
)。進一步瞭解「已連結」 帳戶。