تبسّط مكتبة برامج .NET من "إعلانات Google" تفاعلات تطبيقك مع Google Ads API بأقلّ إعدادات من جانبك. ومع ذلك، فإن القيمة الإجمالية على كيفية استخدام المكتبة ودمجها مع التطبيق.
يتناول هذا الدليل عمليات تحسين الأداء الخاصة بتطبيقات .NET يكمل أفضل الممارسات التي تسري بوجهٍ عام على Google Ads API:
إعادة استخدام GoogleAdsClient كلما أمكن ذلك
يمثّل GoogleAdsClient
جلسة المستخدم عند إجراء طلبات البيانات من واجهة برمجة التطبيقات. إنه يوفر
تحسينات مثل:
- التخزين المؤقت لقنوات gRPC تستخدمها خدمات واجهة برمجة التطبيقات. ويؤدي ذلك إلى تقليل وقت الإعداد عند إنشاء واجهة برمجة تطبيقات أولية الاتصالات.
- إعادة استخدام رموز الدخول متى أمكن يقلل هذا من عدد رحلات الذهاب والعودة الذي يتعين على مكتبة برامج .NET من إعلانات Google تنفيذها لإعادة تحميل رموز الدخول.
استخدام رموز الدخول من حساب على مستوى الحساب الإداري متى أمكن
- إذا كان لديك رمز دخول تم إصداره على مستوى الحساب الإداري، يمكنك استخدامه.
إجراء طلبات بيانات من واجهة برمجة التطبيقات ضد كل حسابات عملاء "إعلانات Google" ضمن هذا الحساب
التسلسل الهرمي. عند الدمج مع إعادة استخدام
GoogleAdsClient
مثيل، يمكن أن يؤدي ذلك إلى ما يلي: إلى تقليل عدد الرحلات ذهابًا وإيابًا التي يتعين على مكتبة العميل إجراؤها لإعادة تحميل رموز الدخول.
استخدام SearchStream بدلاً من "بحث Google" كلما أمكن ذلك
بينما بإمكان GoogleAdsService.Search
إرسال عدة طلبات مقسّمة إلى صفحات لتنزيل التقرير بأكمله
GoogleAdsService.SearchStream
إرسال طلب واحد وبدء اتصال دائم بخدمة Google Ads API
بغض النظر عن حجم التقرير. من خلال إزالة وقت الذهاب والعودة للشبكة
يكون مطلوبًا لطلب كل صفحة فردية من ردّ Search
، استنادًا إلى
تطبيقك، ربما يقدم SearchStream
أداءً محسّنًا بدلاً من ترقيم الصفحات. عرض
البحث مقابل
"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 أدوات التشخيص للمساعدة في ملف تعريف تطبيقك. هناك أيضًا ملفات شخصية تجارية أخرى الأدوات المتوفرة.
استخدام طرق غير متزامنة
البرمجة غير المتزامنة باستخدام وقت الانتظار غير المتزامن مفهوم تساعد في تجنب المؤثِّرات السلبية في الأداء وتحسين الاستجابة الشاملة تطبيقك. تنشئ مكتبة .NET من "إعلانات Google" طرقًا غير متزامنة لجميع الخدمات وطرق RPC.
إلغاء الطرق غير المتزامنة
يمكنك استخدام مَعلمة 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
);
إيقاف التسجيل عندما يكون ذلك ممكنًا
أوقفت مكتبة .NET في "إعلانات Google" عملية التسجيل بشكل تلقائي وتستخدم التسجيل الكسول مما يمنح تطبيقك أداءً أفضل. في حال تفعيل خيار التسجيل تأكَّد من إيقافها في بيئة الإنتاج. إذا كنت بحاجة إلى مراقبة بالنسبة إلى بعض الطلبات التي أخفقت في مرحلة الإنتاج، يمكنك تنفيذ خطوة واحدة أو أكثر من الخطوات التالية بدون التأثير سلبًا في أداء تطبيقك:
- فعِّل سجلّات الملخص فقط.
- اضبط السجلات الكاملة على مستوى
ERROR
. - حفظ معرّف الطلب للطلبات المحدّدة التي تهمّك والتي يمكنك مشاركتها مع قنوات الدعم
اطّلِع على دليل التسجيل لمعرفة المزيد من المعلومات.
تحديد ما إذا كنت تريد استخدام طريقة SearchStream أو البحث
توفّر 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): محطة عمل وملف تعريف الخادم. هذان الملفان الشخصيان لهما اختلاف في الأداء المفاضلات تميل التطبيقات التي تستخدم مكتبة .NET من "إعلانات Google" إلى تحقيق أداء أفضل عند تشغيلها في ملف شخصي للخادم. يمكنك الاستفادة من ضبط إعدادات تجميع البيانات المهملة التالية.
جمع البيانات غير المرغوب فيها للخادم: تسمح عملية جمع البيانات غير المرغوب فيها للخادم باستخدام .NET لتحسين أداء تطبيق Google Ads API من خلال تعمل على سلاسل متعددة. عرض هذه الدليل لمزيد من التفاصيل. يمكنك تفعيل ميزة جمع البيانات غير المرغوب فيها للخادم عن طريق إضافة الأسطر التالية إلى ملف
.csproj
في تطبيقك.<PropertyGroup> <ServerGarbageCollection>true</ServerGarbageCollection> </PropertyGroup>
جمع البيانات غير المرغوب فيها بشكل متزامن: يمكنك تفعيل الخيار التزامن مع البيانات غير المرغوب فيها. جمع القمامة لمنح .NET GC سلسلة محادثات مخصصة لجمع البيانات غير المرغوب فيها في الجيل الثاني. ويمكن أن يفيد هذا الإعداد عند معالجة التقارير ذات الأحجام الكبيرة. يمكنك تشغيل عملية جمع البيانات المهملة المتزامنة بإضافة الأسطر التالية إلى الملف
.csproj
للتطبيق.<PropertyGroup> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection> </PropertyGroup>
الاحتفاظ بجمع البيانات غير المرغوب فيها للأجهزة الافتراضية:
RetainVMGarbageCollection
الإعداد لضبط ما إذا كان يتم وضع أجزاء من الذاكرة الافتراضية التي يجب حذفها في قائمة وضع الاستعداد لاستخدامها في المستقبل، أو تم إصدارها مرة أخرى إلى نظام التشغيل نظام التشغيل (OS). يمكنك تفعيل الاحتفاظ بالذاكرة الافتراضية من خلال إضافة الأسطر التالية إلى تطبيقك.<PropertyGroup> <RetainVMGarbageCollection>true</RetainVMGarbageCollection> </PropertyGroup>
يمكنك ضبط تجميع البيانات المهملة من خلال ضبط إعداد يتراوح بين
محطة عمل وخادم. جميع المعلومات ذات الصلة
الإعدادات
محددة في ملف runtimeconfig.json
الخاص بتطبيق .NET Core، وهي بيئة
أو App.config
في تطبيق .NET SDK.