النقل

تستند البنية الأساسية الجديدة للنصوص البرمجية في "إعلانات Google" إلى Google Ads API. بسبب البنية المختلفة لواجهة برمجة التطبيقات هذه، قد تحتاج إلى تحديث النصوص البرمجية الحالية. لقد بذلنا كل جهد لضمان أكبر قدر ممكن من التوافق مع الأنظمة القديمة، لذلك يجب أن تكون هذه التغييرات طفيفة.

التقارير

تجدر الإشارة إلى أنّ العديد من تقارير AWQL ستستمر في العمل. وخلف الكواليس، عند استخدام البنية الأساسية الجديدة، ستعمل النصوص البرمجية على تحويل طلب البحث في AWQL إلى GAQL (لغة طلب البحث الجديدة في Google Ads API)، وتشغيله على الواجهة الخلفية الجديدة، ثم تحويل النتائج إلى التنسيق الذي استخدمته في الأصل في تقارير AWQL. ستمر طلبات البحث مع GAQL كما هي.

لهذا السبب، ننصحك بمراجعة النصوص البرمجية وتعديل طلبات البحث في AdWords Express إلى GAQL كلما أمكن ذلك. يمكنك استخدام أداة نقل طلبات البحث التي تستخدم نفس منطق النصوص البرمجية لتحديد طلب بحث GAQL لطلب بحث AWQL معيّن، أو يمكنك استخدام أداة إنشاء طلبات البحث التفاعلية للمساعدة في إنشاء طلبات البحث.

في ما يلي بعض القيود على الترجمة التلقائية من AWQL إلى GAQL:

  • لا تتم ترجمة كل طلبات بحث AWQL بشكل واضح إلى طلبات بحث GAQL. في هذه الحالات، سيتم تسجيل رسالة خطأ تحتوي على بعض التفاصيل حول الخطأ الذي حدث، لمساعدتك في إصلاحها يدويًا.
  • بعض أنواع التقارير من AWQL لا تتوافق مع GAQL.
  • لا تتوافق GAQL مع "صفوف مرّات الظهور صفرية". سيؤدي تحديد أن التقرير يجب ألا يتضمن أي مرات ظهور سيؤدي إلى حدوث خطأ.
  • لا يمكن استخدام بعض الحقول الغامضة في عوامل التصفية. على سبيل المثال، يمكن أن يشير "العنوان" إلى أي عدد من حقول الإعلان المختلفة.
  • قد تعرض بعض الحقول نتائج بتنسيق مختلف، على سبيل المثال، تقسيم نتيجة واحدة إلى عدة أعمدة.

تنظيم أدوات الاختيار

عند جلب الموارد باستخدام النصوص البرمجية، من الشائع جدًا استخدام استدعاءات withCondition وorderBy لتقييد النتائج أو ترتيبها في المكرر. تستخدم الحقول في هذه الطلبات الآن أسماء Google Ads API الجديدة. على سبيل المثال، للفلترة حسب اسم الحملة، كان بإمكانك في السابق استخدام ما يلي:

.withCondition('CampaignName = "SOME_CAMPAIGN_NAME"')

الآن، يجب استخدام أسماء الحقول الجديدة لهذه الشروط كلما أمكن ذلك:

.withCondition('campaign.name = "SOME_CAMPAIGN_NAME"')

ومع ذلك، لقد بذلنا جهدًا لتضمين تحديد الأسماء القديمة للأسماء الجديدة، لذلك إذا كان النص البرمجي لا يزال يستخدم CampaignName، سيتم استبداله تلقائيًا بـ campaign.name في وقت التشغيل لضمان استمرار عمل النص البرمجي. إذا واجهت أيّ مشاكل في أسماء الأنماط القديمة، عدِّل نصوصك البرمجية لاستخدام أسماء الأنماط الجديدة كخطوة أولى لتحديد المشاكل وحلّها.

الحدود القصوى المسموح بها

العديد من الحدود هي نفسها كما كانت على البنية الأساسية القديمة، والتغييرات التي يتم إجراؤها هنا ستساعد بشكل عام في تحسين الأداء.

  • الحدود الزمنية هي نفسها. قد يتم تنفيذ النص البرمجي لمدة 30 دقيقة.
  • يعرض مُكرّر واحد 50,000 عنصر تلقائيًا، ولكن يمكن تجاهل هذا التكرار. في السابق، لم يكن بالإمكان تخصيص هذا الحدّ البالغ 50,000.
  • يمكن لأداة الاختيار الواحدة معالجة 10,000 رقم تعريف كحدّ أقصى (بدون تغيير).
  • ما مِن حدّ أقصى للبنية الأساسية الجديدة على عدد الكيانات التي يمكن معالجتها في نص برمجي واحد. وكان الحدّ الأقصى في السابق 250,000.
  • ليس للبنية الأساسية الجديدة حدّ أقصى لعدد الكلمات الرئيسية أو الإعلانات التي يمكن إنشاؤها في كل عملية تنفيذ. وكان الحدّ الأقصى في السابق 250,000.
  • يتم اقتطاع مخرجات التسجيل عند 100 كيلوبايت (بدون تغيير).
  • لم يتم تغيير حصص خدمات "برمجة تطبيقات Google" (SpreadsheetApp وMailApp وما إلى ذلك).
  • سيتم فرض حصص "إعلانات Google" كما لو كنت تستخدم واجهة برمجة التطبيقات. ويعني ذلك أنّ النص البرمجي سيخضع لحدود معدل واجهة برمجة التطبيقات، إلا أنّ ذلك يتيح مرونة أكبر للوصول إلى المزيد من التقارير أو إجراء المزيد من التغييرات في كل عملية تنفيذ.

التغييرات الأخرى

لم تعُد سمة ExecutionInfo تعرض getRemainingCreateQuota() أو getRemainingGetQuota()، لأنّ هاتين الحصص لم تعد سارية في التجربة الجديدة.