سرویس منابع تغییر می‌کند

استفاده از سرویس اختصاصی یک منبع، مستقیم‌ترین راه برای ایجاد، به‌روزرسانی یا حذف موجودیت‌های یک نوع منبع واحد در API گوگل ادز است.

نقاط پایانی را تغییر دهید

هر منبع تغییرپذیر دارای یک سرویس و نوع عملیات مربوطه است. برای تغییر یک منبع با استفاده از سرویس اختصاصی آن، یکی از فیلدهای زیر را در عملیات پر کنید و آن را به نقطه پایانی تغییر سرویس ارسال کنید:

  • ایجاد ( create ): یک شیء منبع جدید برای ایجاد.
  • به‌روزرسانی ( update ): شیء منبع اصلاح‌شده، همراه با یک update_mask که فیلدهای تغییر یافته را مشخص می‌کند.
  • حذف ( remove ): رشته‌ی resource_name منبع هدف برای حذف.

به عنوان مثال، برای ایجاد یک Campaign جدید، مراحل زیر را انجام دهید:

  1. یک شیء Campaign با ویژگی‌های انتخابی خود بسازید.
  2. آن را به فیلد create از تابع CampaignOperation اختصاص دهید.
  3. عملیات را در یک MutateCampaignsRequest به CampaignService.MutateCampaigns ارسال کنید.

همین الگو در مورد تمام سرویس‌های مختص منابع در API گوگل ادز اعمال می‌شود:

فایل داده‌ی 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" ).