منابع جهش‌یافته

‫Google Ads API روش‌های متعددی برای تغییر منابع بسته به مورد استفاده شما ارائه می‌دهد:

  • تغییرات سرویس منبع: هر منبع تغییرپذیر سرویس اختصاصی‌ای دارد که عملیات را برای آن نوع منبع خاص اجرا می‌کند. برای مثال، منبع Campaign از نقطه پایانی CampaignService.MutateCampaigns برای ایجاد، به‌روزرسانی، یا برداشتن کمپین‌ها استفاده می‌کند.
  • تغییرات انبوه: نقطه پایانی GoogleAdsService.Mutate دنباله‌ای از عملیات تغییر را در چندین نوع منبع (و عملیات کنش پشتیبانی‌شده مانند رزرو یا نقل‌قول پویش‌ها) در یک درخواست همگام واحد قرار می‌دهد.
  • کارهای دسته‌ای ناهمگام: برای جهش‌های مقیاس بزرگ یا حجم‌های کاری طولانی‌مدت، BatchJobService عملیات را به‌صورت ناهمگام اجرا می‌کند بدون اینکه خطر اتمام مهلت درخواست همگام وجود داشته باشد. برخلاف GoogleAdsService.Mutate، BatchJobService همیشه تحت معناشناسی شکست جزئی اجرا می‌شود و از حالت validate_only یا عملیات کنش (book_campaigns_operation، quote_campaigns_operation) پشتیبانی نمی‌کند. ازآنجایی‌که شکست جزئی همیشه فعال است، BatchJobService عملیات منبعی را که سرویس‌های زیربنایی آن از شکست جزئی پشتیبانی نمی‌کنند (مانند CustomerOperation، CampaignConversionGoalOperation، ConversionGoalCampaignConfigOperation، CustomConversionGoalOperation، و CustomerConversionGoalOperation) با MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE رد می‌کند.

مزایای تغییرات انبوه

استفاده از GoogleAdsService.Mutate مزایای زیر را ارائه می‌دهد (برای راهنمایی پیاده‌سازی، به روال‌های مطلوب Mutate مراجعه کنید):

  • کنش‌های گروه‌بندی‌شده در سرویس‌های منبع مختلف: درحالی‌که فراخوانی‌های سرویس منبع تکی فقط عملیات مربوط به یک نوع منبع را می‌پذیرند، GoogleAdsService.Mutate به شما امکان می‌دهد چندین نوع منبع را در یک فراخوانی تغییر دهید.
  • نام‌های موقت منابع: می‌توانید شناسه‌های عدد صحیح منفی (مانند customers/CUSTOMER_ID/campaigns/-1) را به نهادهای والد تازه ایجادشده اختصاص دهید و به آن شناسه‌های موقت در عملیات‌های فرزند در همان درخواست ارجاع دهید.

با این قابلیت‌ها، می‌توانید از GoogleAdsService.Mutate برای ایجاد کل سلسله‌مراتب کمپین به‌صورت اتمی استفاده کنید تا همه عملیات باهم موفق شوند یا شکست بخورند، یا partial_failure را روی true تنظیم کنید تا عملیات معتبر را به‌طور مستقل انجام دهید.