يُعدّ استخدام الخدمة المخصّصة لأحد الموارد الطريقة الأكثر مباشرةً لإنشاء عناصر من نوع مورد واحد أو تعديلها أو إزالتها في Google Ads API.
نقاط نهاية التغيير
لكل مورد قابل للتعديل خدمة ونوع عملية مطابقان. لتعديل أحد الموارد باستخدام الخدمة المخصّصة له، املأ أحد الحقول التالية في العملية وأرسِله إلى نقطة نهاية التعديل الخاصة بالخدمة:
- إنشاء (
create): عنصر مرجعي جديد لإنشائه. - التعديل (
update): كائن المرجع المعدَّل، مصحوبًا بـupdate_maskيحدّد الحقول التي تم تغييرها. - إزالة (
remove): تمثّل هذه السمة السلسلةresource_nameالخاصة بالمرجع المستهدَف الذي تريد إزالته.
على سبيل المثال، لإنشاء Campaign جديد، أكمِل الخطوات التالية:
- أنشئ عنصر
Campaignباستخدام السمات التي اخترتها. - عيِّنها للحقل
createفيCampaignOperation. - أرسِل العملية في
MutateCampaignsRequestإلىCampaignService.MutateCampaigns.
ينطبق النمط نفسه على جميع الخدمات الخاصة بالموارد في Google Ads API:
-
AdGroup: مرِّرAdGroupOperationإلىAdGroupService.MutateAdGroups. -
CampaignCriterion: مرِّرCampaignCriterionOperationإلىCampaignCriterionService.MutateCampaignCriteria.
يوضّح حِمل JSON التالي لخدمة REST طلبًا إلى
CampaignService.MutateCampaigns:
{
"customerId": "CUSTOMER_ID",
"operations": [
{
"create": {
"name": "Interplanetary Cruise #1",
"advertisingChannelType": "SEARCH",
"status": "PAUSED",
"manualCpc": {},
"campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
"containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
}
}
],
"partialFailure": false,
"validateOnly": false
}
عمليات متعددة وقيود
بما أنّ الحقل operations في طلب التعديل يتكرّر، يمكن أن يحتوي طلب واحد على عمليات متعددة (تصل إلى 10,000 عملية لكل طلب) لنوع المورد هذا. يتم تلقائيًا تنفيذ جميع العمليات في الطلب بشكل ذري
ما لم تضبط partial_failure على true.
ومع ذلك، فإنّ خدمات الموارد الفردية لها قيدان مهمّان:
- نوع مورد واحد: لا يمكن لطلب موجّه إلى خدمة موارد أن يعدّل سوى الموارد التي تديرها تلك الخدمة المحدّدة.
- عدم استخدام معرّفات موارد مؤقتة أو مراجع متبادلة: تتم معالجة العمليات في طلب تغيير خاص بمورد بشكل مستقل. لا يمكنك تعيين أرقام تعريف سلبية مؤقتة (مثل
customers/CUSTOMER_ID/campaigns/-1) أو الرجوع إلى عناصر تم إنشاؤها حديثًا من عمليات أخرى في الطلب نفسه.
إذا كنت بحاجة إلى تغيير أنواع موارد متعددة في طلب واحد أو الإشارة إلى أسماء موارد مؤقتة في عمليات معتمدة، استخدِم GoogleAdsService.Mutate بدلاً من ذلك.
الاختلافات الخاصة بالإصدار
يجب مراعاة الاختلافات التالية بين إصدارات Google Ads API المتوافقة عند تعديل الموارد:
- خدمات أهداف مراحل النشاط: في الإصدار 25 والإصدارات الأحدث، يتم تعديل جميع أهداف مراحل النشاط، بما في ذلك
اكتساب عملاء جدد (
new_customer_acquisition_goal_settings) والاحتفاظ بالعملاء (retention_goal_settings) والاحتفاظ بالعملاء الأوفياء (loyalty_retention_goal_settings)، من خلالGoalService.MutateGoalsوCampaignGoalConfigService.MutateCampaignGoalConfigsباستخدام حقلoperationsمتكرّر عادي. يحلّ هذا المعيار محلّCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsوCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(اللذين يُستخدَمان لاكتساب العملاء الجدد في الإصدار 24 والإصدارات الأقدم ويقبلان الحقل الفرديoperation). - حقول التاريخ والوقت في الحملة: عند إنشاء
Campaignأو تعديله، يستخدم الإصدار 23 والإصدارات الأحدثstart_date_timeوend_date_time(yyyy-MM-dd HH:mm:ss)، ما يحلّ محلّ الحقلَينstart_dateوend_dateاللذين يتضمّنان التاريخ فقط والمستخدَمَين في الإصدار 22. - تغيير بيانات صحة شهادة المحتوى الاصطناعي: على الرغم من أنّ
Asset.synthetic_content_infoوAd.synthetic_content_infoيظهران في مخطط الإصدار 22 والإصدارات الأحدث، لا يمكن تغيير قيم الحقلَينsynthetic_content_info.advertiser_attestation.statusوsynthetic_content_info.advertiser_attestation.sourceإلا في الإصدار 23 والإصدارات الأحدث (تكون قيمةsystem_attestationدائمًاOUTPUT_ONLY). عند محاولة تغيير قيم الحقول الفرعيةadvertiser_attestationفي الإصدار 22، سيظهر خطأ في الحقل غير القابل للتغيير ("The field attempted to be mutated is immutable"أو"Field cannot be set").