استفاده از سرویس اختصاصی یک منبع، مستقیمترین راه برای ایجاد، بهروزرسانی یا حذف موجودیتهای یک نوع منبع واحد در API گوگل ادز است.
نقاط پایانی را تغییر دهید
هر منبع تغییرپذیر دارای یک سرویس و نوع عملیات مربوطه است. برای تغییر یک منبع با استفاده از سرویس اختصاصی آن، یکی از فیلدهای زیر را در عملیات پر کنید و آن را به نقطه پایانی تغییر سرویس ارسال کنید:
- ایجاد (
create): یک شیء منبع جدید برای ایجاد. - بهروزرسانی (
update): شیء منبع اصلاحشده، همراه با یکupdate_maskکه فیلدهای تغییر یافته را مشخص میکند. - حذف (
remove): رشتهیresource_nameمنبع هدف برای حذف.
به عنوان مثال، برای ایجاد یک Campaign جدید، مراحل زیر را انجام دهید:
- یک شیء
Campaignبا ویژگیهای انتخابی خود بسازید. - آن را به فیلد
createاز تابعCampaignOperationاختصاص دهید. - عملیات را در یک
MutateCampaignsRequestبهCampaignService.MutateCampaignsارسال کنید.
همین الگو در مورد تمام سرویسهای مختص منابع در API گوگل ادز اعمال میشود:
-
AdGroup: یکAdGroupOperationبهAdGroupService.MutateAdGroupsارسال کنید. -
CampaignCriterion: یکCampaignCriterionOperationبهCampaignCriterionService.MutateCampaignCriteriaارسال کنید.
فایل دادهی REST JSON زیر، درخواستی به 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 یک درخواست mutate تکرار میشود، یک درخواست واحد میتواند شامل چندین عملیات (تا 10،000 عملیات در هر درخواست) برای آن نوع منبع باشد. به طور پیشفرض، تمام عملیات موجود در درخواست به صورت اتمی اجرا میشوند، مگر اینکه partial_failure روی true تنظیم کنید.
با این حال، خدمات منابع فردی دو محدودیت مهم دارند:
- نوع منبع واحد: یک درخواست به یک سرویس منبع فقط میتواند منابعی را که توسط آن سرویس خاص مدیریت میشوند، تغییر دهد.
- بدون شناسههای منبع موقت یا ارجاع متقابل: عملیات در یک فراخوانی جهشی مختص به منبع، به طور مستقل پردازش میشوند. شما نمیتوانید شناسههای منفی موقت (مانند
customers/CUSTOMER_ID/campaigns/-1) اختصاص دهید یا در همان درخواست به موجودیتهای تازه ایجاد شده از سایر عملیات ارجاع دهید.
اگر نیاز دارید چندین نوع منبع را در یک درخواست واحد تغییر دهید یا به نامهای منبع موقت در عملیات وابسته ارجاع دهید، به جای آن GoogleAdsService.Mutate استفاده کنید.
تفاوتهای خاص نسخه
هنگام تغییر منابع، تفاوتهای زیر را در نسخههای پشتیبانیشدهی API گوگل ادز در نظر داشته باشید:
- سرویسهای هدف چرخه عمر: در نسخه ۲۵ و بعد از آن، تمام اهداف چرخه عمر - شامل جذب مشتری جدید (
new_customer_acquisition_goal_settings)، حفظ مشتری (retention_goal_settings) و حفظ وفاداری (loyalty_retention_goal_settings) - از طریقGoalService.MutateGoalsوCampaignGoalConfigService.MutateCampaignGoalConfigsبا استفاده از یک فیلدoperationsتکراری استاندارد، تغییر میکنند. این جایگزینCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsوCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(که برای جذب مشتری جدید در نسخه ۲۴ و قبل از آن استفاده میشوند و یک فیلدoperationمفرد را میپذیرند). - فیلدهای تاریخ و زمان کمپین: هنگام ایجاد یا بهروزرسانی یک
Campaign، نسخه ۲۳ و بالاتر،start_date_timeوend_date_time(yyyy-MM-dd HH:mm:ss) استفاده کنید و فیلدهایstart_dateوend_dateکه فقط تاریخ دارند و در نسخه ۲۲ استفاده میشدند را جایگزین کنید. - تغییرپذیری گواهی محتوای مصنوعی: اگرچه
Asset.synthetic_content_infoوAd.synthetic_content_infoدر طرحواره نسخه ۲۲ و بعد از آن ظاهر میشوند، فیلدهایsynthetic_content_info.advertiser_attestation.statusوsynthetic_content_info.advertiser_attestation.sourceفقط در نسخه ۲۳ و بعد از آن قابل تغییر هستند (system_attestationهمیشهOUTPUT_ONLYاست). تلاش برای تغییر زیرفیلدهایadvertiser_attestationدر نسخه ۲۲، خطای immutable-field را برمیگرداند ("The field attempted to be mutated is immutable"یا"Field cannot be set").