استخدام معرّفات مؤقتة

أسماء الموارد المؤقتة

تتيح BatchJobService استخدام أسماء موارد مؤقتة يمكن الرجوع إليها في العمليات اللاحقة ضمن مهمة الدفعة نفسها، بما في ذلك في طلبات AddBatchJobOperations متسلسلة متعددة تم تحميلها باستخدام sequence_token. يتيح لك ذلك إنشاء حملة ومجموعاتها الإعلانية والإعلانات والمعايير التابعة لها في مهمة مجمّعة واحدة قبل تعيين أرقام التعريف من جهة الخادم. في القواعد العامة والمثال التاليَين، يشير الطلب الفردي إلى BatchJob كاملة على مستوى جميع عمليات تحميل AddBatchJobOperations.

يمكنك إجراء ذلك من خلال تحديد resource_name للمورد الجديد لاستخدام معرّف سالب. على سبيل المثال، لنفترض أنّك أنشأت حملة وحدّدت اسم المورد الخاص بها على أنّه customers/<YOUR_CUSTOMER_ID>/campaigns/-1. عند إنشاء المجموعة الإعلانية في عملية لاحقة، يمكنك الرجوع إليها باستخدام اسم المورد هذا، وسيتم تلقائيًا استبدال -1 الذي حدّدته بالمعرّف الفعلي للحملة التي تم إنشاؤها.

في ما يلي بعض النقاط التي يجب وضعها في الاعتبار عند استخدام أسماء الموارد المؤقتة:

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

مثال

لنفترض أنّك تريد إضافة حملة ومجموعة إعلانية وإعلان في طلب واحد من واجهة برمجة التطبيقات. يمكنك إنشاء بنية لطلبك مشابهة لما يلي:

mutate_operations: [
  {
    campaign_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1",
        ...
      }
    }
  },
  {
    ad_group_operation: {
      create: {
        resource_name: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2",
        campaign: "customers/<YOUR_CUSTOMER_ID>/campaigns/-1"
        ...
      }
    }
  },
  {
    ad_group_ad_operation: {
      create: {
        ad_group: "customers/<YOUR_CUSTOMER_ID>/adGroups/-2"
        ...
      }
    }
  },
]

يتم استخدام رقم تعريف مؤقت جديد للمجموعة الإعلانية، لأنّه لا يمكننا إعادة استخدام -1 الذي استخدمناه للحملة. ونشير أيضًا إلى هذه المجموعة الإعلانية عند إنشاء إعلان خاص بالمجموعة الإعلانية. تشير المجموعة الإعلانية نفسها إلى اسم المورد الذي حدّدناه للحملة في عملية سابقة في الطلب، بينما لا تكون resource_name في ad_group_ad_operation ضرورية لأنّه لا تشير إليها أي عملية أخرى.

معالجة الأخطاء في المهام المجمّعة

بما أنّ العمليات العادية في مهمة مجمّعة يتم تنفيذها مع تفعيل الفشل الجزئي (باستثناء ما يحدث ضمن الدُفعات الفرعية الذرية)، إذا تعذّر التحقّق من صحة مصدر رئيسي يتضمّن معرّفًا مؤقتًا، ستتعذّر أي عمليات تابعة تشير إلى هذا المعرّف المؤقت مع ظهور الخطأ NewResourceCreationError.TEMP_ID_RESOURCE_HAD_ERRORS. يؤدي إعادة استخدام معرّف سلبي نفسه في عمليات create متعددة ضمن مهمة الدفعة نفسها إلى عرض الخطأ NewResourceCreationError.DUPLICATE_TEMP_IDS. لا تكون المعرّفات المؤقتة صالحة إلا عند إنشاء موارد (create) أو الإشارة إلى موارد رئيسية تم إنشاؤها حديثًا، مثلاً، يؤدي تمرير معرّف مؤقت سالب في AdGroupCriterionOperation.remove عند طلب AddBatchJobOperations إلى عرض RequestError.RESOURCE_NAME_MALFORMED.