تبديل

يتم تعديل معظم الموارد (إنشاءها أو تعديلها أو إزالتها) باستخدام Mutate طريقة. يتمّ استدعاء طريقة Mutate كطلب HTTP POST إلى عنوان URL خاص بالمورد يتطابق مع نمط اسم المورد، بدون رقم تعريف المورد اللاحق. بدلاً من ذلك، يتم إرسال أرقام تعريف الموارد التي سيتم تغييرها في ملف طلب JSON الجسم. يتيح لك ذلك إرسال طلب واحد لواجهة برمجة التطبيقات يحتوي على عمليات متعددة على موارد مختلفة.

على سبيل المثال، يستخدم اسم مورد الحملة التنسيق التالي:

customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID

لاشتقاق عنوان URL المستخدَم لتغيير الحملات، احذف رقم تعريف المورد اللاحق و أضِف :mutate:

https://googleads.googleapis.com/v19/customers/CUSTOMER_ID/campaigns:mutate

تحتوي رسالة Mutate على عنصر JSON من المستوى الأعلى يتضمّن مصفوفة operations يمكن أن تحتوي على العديد من عناصر operation. يمكن أن تكون كل عملية بدورها أحد العمليات التالية: create أو update أو remove. هذه هي عمليات التحوُّل الوحيدة الممكنة.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    ...
  ]
}

تتيح معظم الخدمات آلاف العمليات في طلب واحد لواجهة برمجة التطبيقات. يوثّق دليل حدود النظامحدود حجم الطلبات.

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

إنشاء

تُنشئ عمليات الإنشاء كيانات جديدة ويجب أن تتضمّن تمثيلاً كاملاً لملف JSON الموارد التي تريد إنشاؤها.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
    "create": {
        "name": "An example campaign",
        "status": "PAUSED",
        "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/CAMPAIGN_BUDGET_ID",
        "advertisingChannelType": "SEARCH",
        "networkSettings": {
          "targetGoogleSearch": true,
          "targetSearchNetwork": true,
          "targetContentNetwork": true,
          "targetPartnerSearchNetwork": false
        },
        "target_spend": {}
      }
    }
  ]
}

تعديل

تُجري عمليات التعديل تعديلات متقطعة على مورد حالي. ما عليك سوى تحديد الحقول التي تريد تعديلها.

لتحديد الحقول التي تريد تعديلها، اضبط سمة updateMask على قائمة بأسماء الحقول مفصولة بفواصل. يكون ذلك مفيدًا بشكل خاص إذا كان لديك تمثيل JSON مكتمل لكائن (على سبيل المثال، كما هو معروض في طلب بيانات سابق من واجهة برمجة التطبيقات)، ولكنك تريد تغيير حقول معيّنة فقط. بدلاً من إزالة عنصر JSON، يمكنك ببساطة إدراج أسماء الحقول التي سيتم تعديلها في updateMask وإرسال عنصر JSON بالكامل.

يغيّر المثال أدناه name وstatus لحملة حالية تتضمّن resourceName المحدّد.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
      "updateMask": "name,status",
      "update": {
        "resourceName": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID",
        "name": "My renamed campaign",
        "status": "PAUSED",
      }
    }
  ]
}

إزالة

تؤدي عمليات الإزالة إلى حذف عنصر بشكلٍ فعّال، مع ضبط حالته في "إعلانات Google" على REMOVED. يجب إدخال resourceName المطلوب إزالته فقط.

POST /v19/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
      "remove": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID"
    }
  ]
}