Google Ads API 클라이언트 라이브러리는 라이브러리 동작을 맞춤설정하는 데 사용할 수 있는 여러 구성 설정을 제공합니다.
런타임에 라이브러리 구성
클라이언트 라이브러리를 구성하는 가장 좋은 방법은 런타임에 GoogleAdsConfig
객체를 초기화하는 것입니다.
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
대체 구성 옵션
클라이언트 라이브러리를 구성하는 몇 가지 추가 옵션도 제공됩니다. 이러한 옵션을 사용 설정하려면 프로젝트의 Google.Ads.GoogleAds.Extensions
패키지에 Nuget 참조를 추가하세요.
이러한 옵션 중 하나를 사용하면 구성 설정이 자동으로 선택되지 않습니다. 아래와 같이 명시적으로 로드해야 합니다.
App.config를 사용하여 구성
Google Ads API
에 관한 모든 설정은 App.config
파일의 GoogleAdsApi
노드에 저장됩니다. 일반적인 구성 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 파일 만들기
App.config
파일과 유사한 구조의 GoogleAdsApi.json
라는 JSON 파일을 만듭니다.
{
"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을 사용한 구성
여기서 프로세스는 키가 GoogleAdsApi
라는 섹션에 있어야 한다는 점을 제외하고 맞춤 JSON을 사용하는 것과 유사합니다.
{
"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
: 이 키를 사용하여 서비스 제한 시간을 밀리초 단위로 설정합니다. 기본값은 googleads_grpc_service_config.json의method_config/timeout
설정에 따라 설정됩니다. API 호출의 최대 시간에 더 짧은 제한을 적용해야 하는 경우 더 낮은 값을 설정합니다. 제한 시간을 2시간 이상으로 설정할 수 있지만 API에서 여전히 매우 오래 실행되는 요청의 제한 시간이 초과되어DEADLINE_EXCEEDED
오류가 반환될 수 있습니다.ProxyServer
: 프록시를 사용하여 인터넷에 연결하는 경우 HTTP 프록시 서버 URL로 설정합니다.ProxyUser
: 프록시 서버에 대해 인증하는 데 필요한 사용자 이름으로 설정합니다. 사용자 이름이 필요하지 않은 경우 이 입력란을 비워 둡니다.ProxyPassword
:ProxyUser
의 값을 설정하는 경우ProxyUser
의 비밀번호로 설정합니다.ProxyDomain
: 프록시 서버에서 설정이 필요한 경우ProxyUser
의 도메인으로 설정합니다.MaxReceiveMessageLengthInBytes
: 이 설정을 사용하여 클라이언트 라이브러리가 처리할 수 있는 API 응답의 최대 크기를 늘립니다. 기본값은 64MB입니다.MaxMetadataSizeInBytes
: 이 설정을 사용하여 클라이언트 라이브러리가 처리할 수 있는 API 오류 응답의 최대 크기를 늘립니다. 기본값은 16MB입니다.
특정
ResourceExhausted
오류를 수정하려면MaxReceiveMessageLengthInBytes
및MaxMetadataSizeInBytes
설정을 조정합니다. 이 설정은Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
형식의 오류를 해결합니다.이 예에서 오류는 메시지 크기 (
423184132 bytes
)가 라이브러리가 처리할 수 있는 크기 (67108864 bytes
)보다 크기 때문에 발생합니다. 이 오류를 방지하려면MaxReceiveMessageLengthInBytes
를500000000
로 늘리세요.이 오류는 코드가 매우 큰 Response 객체 (예: 큰
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 리디렉션 URL로 설정합니다. 이 설정은 선택사항입니다.
자세한 내용은 다음 가이드를 참고하세요.
OAuth2Mode == SERVICE_ACCOUNT
를 사용하는 경우 다음 추가 구성 키를 설정해야 합니다.
OAuth2PrnEmail
: 이 값을 명의 도용하려는 계정의 이메일 주소로 설정합니다.OAuth2SecretsJsonPath
: 이 값을 OAuth2 JSON 구성 파일 경로로 설정합니다.
자세한 내용은 OAuth 서비스 계정 흐름 가이드를 참고하세요.
운송 설정
UseGrpcCore
:Grpc.Core
라이브러리를 기본 전송 레이어로 사용하려면 이 설정을true
로 설정합니다. 기존 Grpc 라이브러리 사용을 참고하세요.
Google Ads API 설정
다음 설정은 Google Ads API에만 적용됩니다.
DeveloperToken
: 개발자 토큰으로 설정합니다.LoginCustomerId
: 요청에 사용할 승인된 고객의 고객 ID입니다(하이픈(-
) 제외).LinkedCustomerId
: 이 헤더는 Google Ads UI (Google Ads API의AccountLink
리소스)에서 연결된 계정을 통해 권한이 부여된 경우 항목의 리소스를 업데이트하는 메서드에만 필요합니다. 이 값을 지정된 고객 ID의 리소스를 업데이트하는 데이터 제공업체의 고객 ID로 설정합니다. 하이픈 없이 설정해야 합니다 (-
). 연결된 계정에 대해 자세히 알아보기