همانطور که در راهنمای ساختار API بحث شده است، هر منبع سطح بالا در API گوگل ادز دارای یک سرویس خاص از نوع منبع است که از اصلاح نمونههای منبع پشتیبانی میکند.
این راهنما از CampaignService
برای نشان دادن اصلاح اشیاء Campaign
استفاده خواهد کرد، اما همین مفاهیم در مورد سایر سرویسهای خاص از نوع منبع نیز صدق میکند.
تغییر اشیاء
هر سرویس با نوع منبع خاص، یک متد mutate خواهد داشت که درخواست mutate را میپذیرد. این درخواست شامل موارد زیر است:
-
customerId
- مجموعهای از عملیات
- یک تنظیم نوع محتوای پاسخ که تعیین میکند آیا منبع تغییرپذیر یا فقط نام منبع باید پس از تغییر برگردانده شود.
برای مثال، متد MutateCampaigns
از CampaignService
یک MutateCampaignsRequest
میپذیرد که شامل موارد زیر است:
-
customerId
- مجموعهای از اشیاء
CampaignOperation
- فیلد
response_content_type
که نوع پاسخ ترجیحی را نشان میدهد.
عملیات
یک شیء عملیاتی مانند CampaignOperation
به شما امکان میدهد با تنظیم فیلد operation
آن، عملی را که میخواهید روی یک منبع واحد انجام دهید، مشخص کنید. این فیلد، یکی از فیلدهای تشکیل شده از ویژگیهای زیر است که نوع آن، نوع منبع است:
-
create
- یک نمونه جدید از منبع ایجاد میکند.
-
update
- منبع را بهروزرسانی میکند تا با ویژگیهای منبع
update
مطابقت داشته باشد. وقتی این فیلد تنظیم شد، بایدupdate_mask
عملیات را نیز تنظیم کنید، که به API تبلیغات گوگل میگوید کدام ویژگیها را در طول عملیات بهروزرسانی تغییر دهد. هر کتابخانه کلاینت یک متد کمکی یا کمکی دارد کهupdate_mask
برای شما تولید میکند، همانطور که در کتابخانههای کلاینت ما نشان داده شده است. -
remove
- منبع را حذف میکند.
از آنجایی که فیلد operation
، یک فیلد oneof
است، نمیتوانید از یک عملیات واحد برای تغییر چندین شیء استفاده کنید. برای مثال، اگر میخواهید یک کمپین ایجاد کنید و کمپین دیگری را حذف کنید، دو نمونه از CampaignOperation
را به درخواست خود اضافه کنید: یکی با مجموعه create
و دیگری با مجموعه remove
.
عملیات دستهای
اگرچه یک عملیات واحد فقط میتواند یک منبع را ایجاد، بهروزرسانی یا حذف کند، اما یک درخواست mutate میتواند شامل چندین عملیات باشد. شما باید عملیات خود را در یک درخواست mutate واحد ترکیب کنید، نه اینکه چندین درخواست mutate ارسال کنید که هر کدام شامل یک عملیات واحد باشند.
برای مثال، اگر میخواهید ده کمپین ایجاد کنید، باید یک MutateCampaignsRequest
ارسال کنید که دارای ده شیء CampaignOperation
باشد.
پاسخهای جهشی
آنچه در پاسخ برگردانده میشود بستگی به آنچه در response_content_type
درخواست mutate ارسال شده است، دارد. برای مثال، اگر MUTABLE_RESOURCE
مشخص شده باشد، پاسخ فقط شامل فیلدهای قابل تغییر در کمپین خواهد بود. سپس میتوانید بدون نیاز به بازسازی آن، mutates های بعدی را روی آن شیء منبع انجام دهید.
خطاهای جهشی
عملیات موجود در یک درخواست تغییر شکل داده شده، تنها در صورتی روی حساب گوگل ادز شما اعمال میشود که هر عملیات در درخواست با موفقیت انجام شود. برای مشاهده لیستی از خطاهای رایج و نحوه رفع آنها ، راهنمای خطاهای رایج را بررسی کنید.