اکثر منابع با استفاده از متد Mutate اصلاح (ایجاد، بهروزرسانی یا حذف) میشوند. متد Mutate به عنوان یک HTTP POST به یک URL مخصوص منبع که با الگوی نام منبع مطابقت دارد، بدون شناسه منبع بعدی، فراخوانی میشود. در عوض، شناسههای منابعی که باید تغییر داده شوند، در بدنه درخواست JSON ارسال میشوند. این به شما امکان میدهد یک فراخوانی API واحد ارسال کنید که شامل چندین عملیات روی منابع مختلف است.
برای مثال، نام منبع یک کمپین از قالب زیر استفاده میکند:
customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID
برای استخراج URL مورد استفاده برای کمپینهای جهشدهنده، شناسه منبع انتهایی را حذف کرده و :mutate اضافه کنید:
https://googleads.googleapis.com/v22/customers/CUSTOMER_ID/campaigns:mutate
یک پیام Mutate شامل یک شیء JSON سطح بالا با یک آرایه operations است که میتواند شامل اشیاء operation زیادی باشد. هر عملیات، به نوبه خود، میتواند یکی از موارد زیر باشد: create ، update یا remove . اینها تنها عملیاتهای mutate ممکن هستند.
POST /v22/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": [ ... ] }
اکثر سرویسها از هزاران عملیات در یک فراخوانی API پشتیبانی میکنند. راهنمای محدودیتهای سیستم ، محدودیتهای مربوط به اندازه درخواستها را مستند میکند.
عملیات درون یک درخواست API واحد به طور پیشفرض به صورت یک مجموعه از اقدامات اجرا میشوند، به این معنی که یا همه آنها با هم موفق میشوند یا اگر هر عملیات واحد با شکست مواجه شود، کل دسته با شکست مواجه میشود. برخی سرویسها از ویژگی partialFailure برای تغییر این رفتار پشتیبانی میکنند. برای اطلاعات دقیقتر در مورد معناشناسی عملیات جهش، به منابع جهش مراجعه کنید.
ایجاد کردن
عملیات Create، موجودیتهای جدیدی تولید میکنند و باید شامل یک نمایش کامل JSON از منبعی باشند که قصد ایجاد آن را دارید.
POST /v22/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 کاملاً شکلگرفته از یک شیء دارید (برای مثال، همانطور که توسط یک فراخوانی API قبلی برگردانده شده است)، اما فقط میخواهید فیلدهای خاصی را تغییر دهید. به جای هرس کردن شیء JSON، میتوانید نام فیلدهایی را که باید تغییر کنند در updateMask فهرست کنید و کل شیء JSON را ارسال کنید.
مثال زیر name و status یک کمپین موجود با داشتن resourceName داده شده را تغییر میدهد.
POST /v22/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", } } ] }
حذف
عملیات حذف، عملاً یک شیء را حذف میکند و وضعیت تبلیغات گوگل آن را به REMOVED تغییر میدهد. فقط resourceName که قرار است حذف شود، مورد نیاز است.
POST /v22/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" } ] }