Google Ads .NET istemci kitaplığı, uygulamanızın Google Ads API ile etkileşimini basitleştirir ve minimum yapılandırmaya sahip olur. Ancak genel performans büyük ölçüde kitaplığın nasıl kullanıldığına ve uygulamanızla nasıl entegre olduğuna bağlıdır.
Bu kılavuz, .NET uygulamalarına özel performans optimizasyonlarını kapsamakta ve genel olarak Google Ads API için geçerli olan en iyi uygulamaları tamamlamaktadır.
Mümkün olduğunda GoogleAdsClient'ı yeniden kullanın
GoogleAdsClient
, API çağrıları yaparken kullanıcının oturumunu temsil eder. Aşağıdaki gibi optimizasyonlar sağlar:
- API hizmetleri tarafından kullanılan gRPC kanallarını önbelleğe alma. Bu, ilk API çağrıları yaparken kurulum süresini kısaltır.
- Mümkün olduğunda erişim jetonlarını yeniden kullanma. Bu, Google Ads .NET istemci kitaplığının erişim jetonlarını yenilemek için gerçekleştirmesi gereken gidiş dönüş sayısını azaltır.
Mümkün olduğunda yönetici düzeyindeki hesaplardan erişim jetonları kullanın
- Yönetici hesabı düzeyinde verilmiş bir erişim jetonunuz varsa ilgili hesap hiyerarşisi altındaki tüm Google Ads müşteri hesaplarına yönelik API çağrıları yapmak için bu jetonu kullanabilirsiniz. Bu,
GoogleAdsClient
örneklerinin yeniden kullanılmasıyla birlikte kullanıldığında istemci kitaplığının erişim jetonlarını yenilemek için gerçekleştirmesi gereken gidiş dönüş sayısını daha da azaltabilir.
Mümkün olduğunda Arama yerine SearchStream kullanın
GoogleAdsService.Search
, raporun tamamını indirmek için birden fazla sayfaya ayrılmış istek gönderebilir. Ancak GoogleAdsService.SearchStream
, tek bir istek gönderir ve rapor boyutundan bağımsız olarak Google Ads API ile kalıcı bir bağlantı başlatır. Uygulamanıza bağlı olarak SearchStream
, bir Search
yanıtının her bir sayfasını istemek için gereken gidiş-dönüş ağ süresini ortadan kaldırarak sayfa oluşturmaya kıyasla daha iyi performans sağlayabilir. Bu optimizasyon hakkında daha fazla bilgi edinmek için Arama ve Arama Akışı
bölümüne bakın.
Erişim jetonu yenilemelerini manuel olarak yönetme
Google Cloud Functions gibi belirli ortamlarda GoogleAdsClient
örneklerinin yeniden kullanılması uygun olmayabilir. Bu tür ortamlar, verileri korumak ve yeniden kullanmak için kendi en iyi uygulamalarına sahip olabilir. Bu gibi durumlarda, kendi erişim jetonu yenilemelerinizi aşağıdaki şekilde gerçekleştirmek için GoogleAdsConfig
sınıfını genişletebilirsiniz.
// 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);
Sürüm derlemesi için derleyin
Sunucuya dağıtırken Sürüm yapılandırmasını kullanarak uygulamanızı derlediğinizden emin olun. Hata ayıklama yapılandırmasını kullanırken uygulamanız optimizasyon olmadan sembolik hata ayıklama bilgileriyle eksiksiz bir şekilde derlenir.
Uygulamanız için profil oluşturma
Performans sorunlarını belirlemek için uygulamanızın hem CPU hem de bellek kullanımı profilini çıkarın. Visual Studio, uygulamanızın profilini çıkarmanıza yardımcı olacak Teşhis araçları sağlar. Kullanabileceğiniz başka ticari profil oluşturma araçları da vardır.
Eş zamansız yöntemler kullanma
Eşzamansız bekleme paradigmasını kullanan eşzamansız programlama, performans sorunlarını önlemeye ve uygulamanızın genel yanıt verme yeteneğini iyileştirmeye yardımcı olur. Google Ads .NET kitaplığı, tüm hizmetler ve RPC yöntemleri için eşzamansız yöntemler oluşturur.
Mümkün olduğunda günlük kaydını kapatın
Google Ads .NET kitaplığı, günlük kaydını varsayılan olarak devre dışı bırakır ve uygulamanızın daha iyi performans göstermesini sağlayan bir geç günlük kaydı yaklaşımı kullanır. Günlük kaydını etkinleştirirseniz üretim ortamında bu özelliği kapattığınızdan emin olun. Üretimde başarısız olan belirli istekleri izlemeniz gerekiyorsa uygulamanızın performansını olumsuz etkilemeden aşağıdaki adımlardan birini veya daha fazlasını yapabilirsiniz:
- Yalnızca özet günlüklerini etkinleştirin.
- Günlüklerin tamamını
ERROR
düzeyine ayarlayın. - Destek kanallarıyla paylaşabileceğiniz belirli ilgi alanlarına ilişkin istek kimliğini kaydedin.
Daha fazla bilgi edinmek için günlük kaydı kılavuzuna bakın.
SearchStream mi yoksa Arama yöntemi mi kullanacağınıza karar verme
Google Ads API, nesneleri almak için iki temel yol sağlar: Search
yöntemi (sayfalara ayırma yöntemini kullanır) ve SearchStream
(akış yöntemini kullanır).
SearchStream
, Search
ile kıyaslandığında daha iyi performans gösterir ancak Search
'ın tercih edildiği senaryolar vardır.
Bu iki yöntem hakkında daha fazla bilgi edinmek için akış raporları kılavuzuna bakın.
Hazır Çalıştır seçeneğini kullan
.NET Core 3.1, true
için bir PublishReadyToRun
ayarı belirterek ve ardından geçerli bir RuntimeIdentifier
belirterek ikili dosyayı yayınlayarak belirli bir platforma ve mimariye önceden derleme desteği ekler. Daha fazla bilgi edinmek için ReadyToRun
özelliğiyle ilgili kılavuza göz atın.
TieredCompilation kullan
TieredCompilation
, .NET'in hotspot'ları belirlemesine ve performansını iyileştirmesine olanak tanır. Katmanlı derleme, mümkün olduğunda önceden oluşturulmuş resmi kullanabildiğinden ReadyToRun
seçeneğiyle daha iyi sonuç verir. Daha fazla bilgi edinmek için TieredCompilation
sayfasındaki kılavuza göz atın.
Atık toplama (GC) uygulamanızda ince ayar yapma
.NET, çöp toplama (GC) için iki genel profil sağlar: bir iş istasyonu profili ve bir sunucu profili. Bu iki profilin performans açısından farklı performansları vardır. Google Ads .NET kitaplığını kullanan uygulamalar, sunucu profilinde çalışırken genellikle daha iyi performans gösterir. Aşağıdaki GC ayarlarında ince ayarlar yapmaktan yararlanabilirsiniz.
Sunucu atık toplama: Sunucu atık toplama, .NET çalışma zamanının birden çok iş parçacığı üzerinde çalışarak Google Ads API uygulamasına daha iyi performans sağlamasına olanak tanır. Daha fazla bilgi için bu kılavuza bakın. Aşağıdaki satırları uygulamanızın
.csproj
dosyasına ekleyerek sunucu atık toplama özelliğini etkinleştirebilirsiniz.<PropertyGroup> <ServerGarbageCollection>true</ServerGarbageCollection> </PropertyGroup>
Eşzamanlı çöp toplama: .NET GC'ye 2. nesilde çöp toplama için özel bir iş parçacığı sağlamak amacıyla eşzamanlı çöp toplama özelliğini etkinleştirebilirsiniz. Bu ayar, büyük boyutlu raporları işlerken yararlı olabilir. Aşağıdaki satırları uygulamanızın
.csproj
dosyasına ekleyerek eşzamanlı atık toplamayı etkinleştirebilirsiniz.<PropertyGroup> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection> </PropertyGroup>
Sanal makine atık toplama özelliğini koruma:
RetainVMGarbageCollection
ayarı, silinmesi gereken sanal bellek segmentlerinin ileride kullanılmak üzere bekleme listesine mi alınacağını yoksa işletim sistemine (OS) geri mi alınacağını yapılandırır. Aşağıdaki satırları uygulamanıza ekleyerek sanal bellek saklama özelliğini etkinleştirebilirsiniz.<PropertyGroup> <RetainVMGarbageCollection>true</RetainVMGarbageCollection> </PropertyGroup>
Bir iş istasyonu ile sunucu arasında kalan bir kurulum seçerek GC'nizde ince ayar yapabilirsiniz. İlgili tüm ayarlar .NET Core uygulamanızın runtimeconfig.json
dosyasında, bir ortam değişkeninde veya .NET SDK uygulamanızın App.config
öğesinde belirtilmiştir.