Google Ads .NET 클라이언트 라이브러리를 사용하면 Google Ads API를 사용할 수 있습니다. 그러나 전반적으로 라이브러리를 사용하고 SDK와 통합하는 방법에 따라 크게 달라집니다. 있습니다.
이 가이드에서는 .NET 앱과 관련된 성능 최적화에 대해 설명합니다. 최적의 솔루션을 보완하여 관행 Google Ads API
가능하면 GoogleAdsClient를 재사용합니다.
GoogleAdsClient
는 API 호출 시의 사용자 세션을 나타냅니다. 이 API는
다음과 같은 최적화가 가능합니다.
- gRPC 채널 캐싱 API 서비스 간 트래픽입니다 따라서 초기 API를 만들 때 설정 시간이 줄어듭니다. 있습니다.
- 가능한 경우 액세스 토큰 재사용 이렇게 하면 왕복 이동 횟수가 줄어듭니다. Google Ads .NET 클라이언트 라이브러리가 액세스 토큰을 갱신하기 위해 수행해야 하는 기본 작업입니다.
가능한 경우 관리자 수준 계정의 액세스 토큰 사용
- 관리자 계정 수준에서 발급된 액세스 토큰이 있는 경우 해당 토큰을 사용할 수 있습니다.
해당 계정의 모든 Google Ads 고객 계정에 대해 API 호출 수행
계층 구조로 구성됩니다
GoogleAdsClient
인스턴스 재사용과 함께 사용하면 다음과 같은 이점이 있습니다. 클라이언트 라이브러리가 수행해야 하는 왕복 횟수를 더욱 줄여 새로고침 액세스 토큰을 사용할 수 있습니다.
가능하면 검색 대신 SearchStream 사용
GoogleAdsService.Search
에서 수행할 수 있는 작업
페이지 매김 요청을 여러 개 전송하여 전체 보고서를 다운로드합니다.
GoogleAdsService.SearchStream
단일 요청을 보내고 Google Ads API와 영구 연결을 시작합니다.
할 수 있습니다. 왕복 네트워크 시간을 없애줌
다음에 따라 Search
응답의 각 개별 페이지를 요청해야 함
앱에서 SearchStream
가 페이징에 비해 향상된 성능을 제공할 수 있습니다. 자세한 내용은
검색 vs.
SearchStream을 사용하여
자세히 알아보세요.
수동으로 액세스 토큰 갱신 관리
Google Cloud와 같은 특정 환경
함수가 포함된 경우
여러 함수를 재사용하기는
인스턴스 GoogleAdsClient
개 이러한 환경에는 자체적인 최고의
데이터 유지 및 재사용을 위한 권장사항입니다. 이 경우
GoogleAdsConfig
클래스를 사용하여 다음과 같이 자체 액세스 토큰 새로고침을 실행합니다.
// Create your own config class by extending the GoogleAdsConfig class.
class MyGoogleAdsConfig : GoogleAdsConfig
{
public MyGoogleAdsConfig() : base()
{
// Disable the library's in-built channel caching mechanism.
this.UseChannelCache = false;
}
protected override ICredential CreateCredentials()
{
// TODO: Create your own ICredentials object here. You may refer to the
// default implementation of GoogleAdsConfig::CreateCreateCredentials
// for an example.
}
}
// Use your own config class when initializing the GoogleAdsClient instance.
MyGoogleAdsConfig myconfig = new MyGoogleAdsConfig();
GoogleAdsClient client = new GoogleAdsClient(myconfig);
출시 빌드용 컴파일
출시 버전”을 사용하여 앱을 컴파일해야 합니다. 구성 선택할 수 있습니다 디버그 구성을 사용할 때 앱은 전체 기호화된 디버그 정보로 컴파일되고 최적화되지 않습니다.
앱 프로파일링
CPU 및 메모리 사용량을 모두 프로파일링하여 성능을 파악하세요. 병목 현상입니다 Visual Studio는 진단 도구 앱을 프로파일링할 수 있습니다. 다른 기업용 프로필도 도구 있습니다.
비동기 메서드 사용
async-await를 사용한 비동기 프로그래밍 패러다임 성능 병목 현상을 피하고 운영 체제의 전반적인 응답성을 향상시키는 데 있습니다. Google Ads .NET 라이브러리는 모든 서비스에 대한 비동기 메서드를 생성합니다. 사용할 수 있습니다
비동기 메서드 취소
callSettings
매개변수를 사용하여
CancellationToken
비동기 메서드에 대해 알아보겠습니다.
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
cancellationTokenSource.CancelAfter(3000);
CallSettings callSettings = CallSettings.FromCancellationToken(cancellationTokenSource.Token);
string query = "SELECT campaign.name FROM campaign";
var request = new SearchGoogleAdsStreamRequest()
{
CustomerId = customerId.ToString(),
Query = query,
};
GoogleAdsServiceClient googleAdsService = client.GetService(
Services.V17.GoogleAdsService);
googleAdsService.SearchStream(request,
delegate (SearchGoogleAdsStreamResponse resp)
{
foreach (GoogleAdsRow googleAdsRow in resp.Results)
{
// Process the row.
}
}, callSettings
);
가능한 경우 로깅 사용 중지
Google Ads .NET 라이브러리에서 기본적으로 로깅을 사용 중지하고 지연 로깅을 사용합니다. 앱 성능이 향상됩니다. 로깅을 사용 설정하면 프로덕션 환경에서는 이 기능을 사용 중지해야 합니다. 모든 포드의 상태를 프로덕션에서 실패한 특정 요청의 경우 다음과 같은 조치를 취할 수 있습니다.
- 요약 로그만 사용 설정합니다.
- 전체 로그를
ERROR
수준으로 설정합니다. - 공유할 수 있는 특정 관심 요청의 요청 ID 저장 소통하세요
자세한 내용은 로깅 가이드를 참조하세요.
SearchStream 또는 Search 메서드 사용 여부 결정
Google Ads API에서는 두 가지 주요 방법으로 객체를 검색할 수 있는데, 하나는 Search
메서드입니다.
(페이지로 나누기 사용) 및 SearchStream
(스트리밍 사용)
SearchStream
는 Search
보다 더 나은 성능을 제공하지만
Search
이 바람직한 상황입니다.
자세히 알아보려면 스트리밍 보고서 가이드를 참고하세요. 두 가지 방법에 대해 알아보도록 하겠습니다.
ReadyToRun 옵션 사용
.NET Core 3.1은 특정 플랫폼에 바이너리를 사전 컴파일하기 위한 지원을 추가합니다.
PublishReadyToRun
설정을 true
로 지정하여 아키텍처 및 아키텍처에 관해 자세히 알아볼 수 있습니다.
그런 다음 유효한 RuntimeIdentifier
를 지정하여 바이너리를 게시합니다.
있습니다. ReadyToRun
의 가이드를 참조하세요.
기능을 사용하여
자세히 알아보세요.
TieredCompilation 사용
TieredCompilation
를 사용하면 .NET이 핫스팟을 식별하고
확인할 수 있습니다 단계식 컴파일은 ReadyToRun
옵션을 사용할 때 더 잘 작동합니다.
가능한 경우 사전 생성된 이미지를 사용할 수 있습니다.
TieredCompilation
를 참조하세요.
가비지 컬렉션 (GC) 미세 조정
.NET은 가비지 컬렉션 (GC)을 위한 두 가지 일반적인 프로필인 워크스테이션을 제공합니다. 두 개의 터널, 이렇게 4개입니다 이 두 프로필은 실적이 다르기 때문에 장단점이 있습니다. Google Ads .NET 라이브러리를 사용하는 앱은 실행할 때 더 나은 실적을 내는 경향이 있음 서버 프로필에 저장됩니다 다음과 같은 GC 설정을 미세 조정하면 도움이 됩니다.
서버 가비지 컬렉션: .NET에서 서버 가비지 컬렉션을 허용함 Google Ads API 앱의 성능을 높이려면 다음과 같이 하세요. 여러 스레드에서 작동합니다. 자세한 내용은 여기 가이드 를 참조하세요. 다음 명령어로 서버 가비지 컬렉션을 사용 설정할 수 있습니다. 앱의
.csproj
파일에 다음 줄을 추가합니다.<PropertyGroup> <ServerGarbageCollection>true</ServerGarbageCollection> </PropertyGroup>
동시 가비지 컬렉션: 동시 실행 가비지 컬렉션 .NET GC에 가비지 컬렉션을 위한 전용 스레드를 제공합니다. 이 설정은 크기가 큰 보고서를 처리할 때 유용할 수 있습니다. 다음과 같은 작업을 할 수 있습니다. 다음 줄을 앱의
.csproj
파일<PropertyGroup> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection> </PropertyGroup>
VM 가비지 컬렉션 유지:
RetainVMGarbageCollection
설정 삭제해야 하는 가상 메모리 세그먼트를 저장할지 여부를 나중에 사용하기 위해 대기 목록에 남아 있거나, 또는 운영 중인 시스템 (OS)에 연결되어 있습니다. 다음을 추가하여 가상 메모리 보관을 사용 설정할 수 있습니다. 몇 줄만 실행하면 됩니다<PropertyGroup> <RetainVMGarbageCollection>true</RetainVMGarbageCollection> </PropertyGroup>
다음 사이의 설정값으로 GC를 미세 조정할 수 있습니다.
워크스테이션 및 서버입니다 모든 관련
설정
.NET Core 앱의 runtimeconfig.json
파일에서 지정됩니다.
변수 또는 .NET SDK 앱의 App.config
를 지정할 수 있습니다.